Перейти к содержанию

Как принять и обработать уведомления используя сервер#

Установка#

npm i @green-api/whatsapp-api-client

Import#

Есть несколько способов импортировать библиотеку в проект Используя классический javascript

const whatsAppClient = require("@green-api/whatsapp-api-client");
Используя ES6 javascript
import whatsAppClient from "@green-api/whatsapp-api-client";
Используя typescript
import * as whatsAppClient from "@green-api/whatsapp-api-client";

Как инициализировать объект#

Храните Ваши авторизационные данные отдельно от кода. Библиотека позволяет создать файл с произвольным именем и местом в следующем формате:

API_TOKEN_INSTANCE = "MY_API_TOKEN_INSTANCE"
ID_INSTANCE = "MY_ID_INSTANCE"
Передать ключи, можно используя пример ниже:
const restAPI = whatsAppClient.restAPI(({
    credentialsPath: "examples\\credentials"
}))

Примеры#

Полный пример можно посмотреть по ссылке: ReceiveWebhook.js

Как принять и обработать уведомления используя сервер#

Работает только в node js с на базе express

import whatsAppClient from '@green-api/whatsapp-api-client'
import express from "express";
import bodyParser from 'body-parser';

(async () => {
    try {

        // Устанавливаем http url ссылку, куда будут отправляться вебхуки. 
        // Ссылка должна иметь публичный адрес.
        await restAPI.settings.setSettings({
            webhookUrl: 'MY_HTTP_SERVER:3000/webhooks'
        });

        const app = express();
        app.use(bodyParser.json());
        const webHookAPI = whatsAppClient.webhookAPI(app, '/webhooks')

        // Подписываемся на событие вебхука при получении сообщения
        webHookAPI.onIncomingMessageText((data, idInstance, idMessage, sender, typeMessage, textMessage) => {
            console.log(`outgoingMessageStatus data ${data.toString()}`)
        });

        // Запускаем веб сервер, имеющий публичный адрес
        app.listen(3000, async () => {
            console.log(`Started. App listening on port 3000!`)

            const restAPI = whatsAppClient.restAPI(({
                idInstance: MY_ID_INSTANCE,
                apiTokenInstance: MY_API_TOKEN_INSTANCE
            }));
            // Отправляем тестовое сообщение, для того чтобы сработали события вебхуков
            const response = await restAPI.message.sendMessage("79999999999@c.us", null, "hello world");

        });
    } catch (error) {
        console.error(error);
        process.exit(1);
    }
})();

Полный список примеров#

Описание Модуль
Пример отправки текста используя Async SendWhatsAppMessageAsync.js
Пример отправки текста используя Callback SendWhatsAppMessageCallback.js
Пример отправки картинки по URL SendWhatsAppFileUrl.js
Пример отправки картинки загрузкой с диска SendWhatsAppFileUpload.js
Пример получения входящего уведомления методом receiveNotification ReceiveNotifications.js
Пример получения входящих уведомлений через webhook service REST API StartReceivingNotifications.js
Пример получения входящих уведомлений на сервер ReceiveWebhook.js
Пример получения QR кода по HTTP getQRCode.js
Пример получения QR кода по websocket getQRCodeWebsocket.js