1.3.4 • Published 9 months ago

js_zalo_viet v1.3.4

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

HOANGVIET

This is an unofficial Zalo API for personal account. It work by simulating the browser to interact with Zalo Web. We developed this library based on zca-js library so don't ask why they are the same

disclaimer: We are not responsible if your account is locked or banned by Zalo. Use it at your own risk.

Basic Usages

Login

import { Zalo } from "HOANGVIET";

const zalo = new Zalo(
    {
        cookie: "your_cookie_here",
        imei: "your_imei_here",
        userAgent: "your_user_agent_here",
    },
    {
        selfListen: false,
        checkUpdate: true,
    },
);

const api = await zalo.login();

Alternative: We also support J2TEAM Cookies extension:

import { Zalo } from "HOANGVIET";

const zalo = new Zalo(
    {
        cookie: JSON.parse(fs.readFileSync("./cookies.json", "utf-8")),
        imei: "your_imei_here",
        userAgent: "your_user_agent_here",
    },
    {
        selfListen: false,
        checkUpdate: true,
    },
);

const api = await zalo.login();
  • cookie: Your Zalo cookie. You can get it by using J2TEAM Cookies extension or by using browser developer tools.
  • imei: Your IMEI created by Zalo. You can get it using browser developer tools: localStorage.getItem('z_uuid') or localStorage.getItem('sh_z_uuid').
  • userAgent: Your browser user agent. Better be from the same browser you get cookie.
  • selfListen: Listen for messages sent by yourself. Default is false.
  • checkUpdate: Check for HOANGVIET update. Default is true.

Listen for new messages

import { Zalo, MessageType } from "HOANGVIET";

const zalo = new Zalo(credentials);
const api = await zalo.login();

api.listener.on("message", (message) => {
    const isPlainText = typeof message.data.content === "string";

    switch (message.type) {
        case MessageType.DirectMessage: {
            if (isPlainText) {
                await ......;
            }
            break;
        }
        case MessageType.GroupMessage: {
            if (isPlainText) {
                await ......;
            }
            break;
        }
    }
});

api.listener.start();

Note: Only one web listener can be started at a time. If you open Zalo in the browser while the listener is running, the listener will be stopped.

Contributing

We welcome contributions from the community.

License

This project is licensed under the MIT License - see the LICENSE file for details.

1.3.4

9 months ago