npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@green-api/whatsapp-api-client-js-v2

v1.0.2

Published

whatsapp-api-client-js-v2

Readme

GREEN-API WhatsApp SDK v2

TypeScript/JavaScript SDK для взаимодействия с GREEN-API WhatsApp шлюзом.

Установка

npm install @green-api/whatsapp-api-client-js-v2
# или
yarn add @green-api/whatsapp-api-client-js-v2

API

Документация к REST API находится по ссылке{:target="_blank"}. Библиотека является обёрткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.

Авторизация

Чтобы отправить сообщение или выполнить другие методы GREEN-API, аккаунт WhatsApp в приложении телефона должен быть в авторизованном состоянии. Для авторизации инстанса перейдите в личный кабинет{:target="_blank"} и сканируйте QR-код с использованием приложения WhatsApp.

Начало работы

Для использования SDK необходимо создать экземпляр GreenApiClient с вашими данными инстанса GREEN-API:

import { GreenApiClient } from '@green-api/whatsapp-api-client-js-v2';

const client = new GreenApiClient({
    idInstance: 12345,
    apiTokenInstance: 'ваш-api-токен'
});

Для доступа к API Партнера используйте GreenApiPartnerClient (вы должны иметь ключ партнера):

import { GreenApiPartnerClient } from '@green-api/whatsapp-api-client-js-v2';

const partnerClient = new GreenApiPartnerClient({
    partnerToken: 'ваш-партнерский-токен',
    partnerApiUrl: 'https://api.green-api.com' // Опционально, по умолчанию этот URL
});

Примеры использования

Отправка текстового сообщения

await client.sendMessage({
    chatId: '[email protected]',
    message: 'Привет от GREEN-API SDK!'
});

Отправка файла по URL

await client.sendFileByUrl({
    chatId: '[email protected]',
    file: {
        url: 'https://example.com/file.pdf',
        fileName: 'document.pdf'
    },
    caption: 'Посмотри этот файл'
});

Создание опроса

await client.sendPoll({
    chatId: '[email protected]',
    message: 'Какой ваш любимый цвет?',
    options: [
        {optionName: 'Красный'},
        {optionName: 'Синий'},
        {optionName: 'Зеленый'}
    ],
    multipleAnswers: false
});

Управление группами

// Создание группы
const group = await client.createGroup({
    groupName: 'Моя тестовая группа',
    chatIds: ['[email protected]', '[email protected]']
});

// Добавление участника
await client.addGroupParticipant({
    groupId: group.chatId,
    participantChatId: '[email protected]'
});

Получение уведомлений

// Получение уведомления с таймаутом 30 секунд
const notification = await client.receiveNotification(30);
if (notification) {
    console.log('Получено уведомление:', notification.body.typeWebhook);

    // Обработка уведомления
    if (notification.body.typeWebhook === 'incomingMessageReceived') {
        // Обработка входящего сообщения
        console.log('Сообщение:', notification.body.messageData);
    }

    // Удаление уведомления из очереди после обработки
    await client.deleteNotification(notification.receiptId);
}

// Скачивание файла из сообщения
const fileData = await client.downloadFile({
    chatId: '[email protected]',
    idMessage: 'ID_СООБЩЕНИЯ_С_ФАЙЛОМ'
});
console.log('URL файла:', fileData.downloadUrl);

Работа со статусами WhatsApp (Бета)

// Отправка текстового статуса
await client.sendTextStatus({
    message: "Привет от GREEN-API SDK!",
    backgroundColor: "#228B22", // Зеленый фон
    font: "SERIF",
    participants: ["[email protected]"] // Опционально: ограничить видимость для конкретных контактов
});

// Отправка медиа-статуса
await client.sendMediaStatus({
    urlFile: "https://example.com/image.jpg",
    fileName: "image.jpg",
    caption: "Посмотрите на этот вид!",
    participants: ["[email protected]"]
});

// Получение статистики статуса
const stats = await client.getStatusStatistic({
    idMessage: "BAE5F4886F6F2D05"
});
console.log(`Статус просмотрели ${stats.length} контактов`);

// Получение входящих статусов от контактов
const statuses = await client.getIncomingStatuses({minutes: 60}); // За последний час
statuses.forEach(status => {
    console.log(`Статус от ${status.senderName} в ${new Date(status.timestamp * 1000)}`);
});

API партнера (Управление инстансами)

// Получение всех инстансов
const instances = await partnerClient.getInstances();
console.log(`Всего инстансов: ${instances.length}`);
console.log(`Активных инстансов: ${instances.filter(i => !i.deleted).length}`);

// Создание нового инстанса
const instance = await partnerClient.createInstance({
    name: "Маркетинговая кампания",
    incomingWebhook: "yes",
    outgoingWebhook: "yes",
    delaySendMessagesMilliseconds: 3000
});
console.log(`Создан инстанс с ID: ${instance.idInstance}`);
console.log(`API Токен: ${instance.apiTokenInstance}`);

// Удаление инстанса
const result = await partnerClient.deleteInstanceAccount({
    idInstance: instance.idInstance
});
if (result.deleteInstanceAccount) {
    console.log("Инстанс успешно удален");
}

Редактирование и удаление сообщений

// Редактирование сообщения
const editResult = await client.editMessage({
    chatId: '[email protected]',
    idMessage: 'BAE5367237E13A87',
    message: 'Это отредактированный текст сообщения'
});
console.log('ID отредактированного сообщения:', editResult.idMessage);

// Удаление сообщения для всех
await client.deleteMessage({
    chatId: '[email protected]',
    idMessage: 'BAE5F4886F6F2D05'
});

// Удаление сообщения только для отправителя
await client.deleteMessage({
    chatId: '[email protected]',
    idMessage: 'BAE5F4886F6F2D05',
    onlySenderDelete: true
});

Методы SDK

SDK предоставляет следующие группы методов:

  1. Методы отправки сообщений

    • sendMessage - отправка текстового сообщения
    • sendFileByUrl - отправка файла по URL
    • sendFileByUpload - отправка файла с загрузкой
    • sendPoll - создание опроса
    • forwardMessages - пересылка сообщений
    • sendLocation - отправка местоположения
    • sendContact - отправка контакта
    • uploadFile - загрузка файла
  2. Методы управления аккаунтом

    • reboot - перезагрузка
    • logout - выход из аккаунта
    • getStateInstance - получение состояния инстанса
    • getQR - получение QR-кода
    • getSettings - получение настроек
    • setSettings - установка настроек
    • getWaSettings - получение настроек WhatsApp
    • setProfilePicture - установка фото профиля
    • getAuthorizationCode - получение кода авторизации
  3. Методы очереди сообщений

    • showMessagesQueue - отображение очереди сообщений
    • clearMessagesQueue - очистка очереди сообщений
  4. Сервисные методы

    • readChat - отметить чат как прочитанный
    • checkWhatsapp - проверка наличия WhatsApp
    • getAvatar - получение аватара
    • getContacts - получение контактов
    • getContactInfo - получение информации о контакте
    • archiveChat - архивирование чата
    • unarchiveChat - разархивирование чата
    • setDisappearingChat - настройка исчезающих сообщений
    • editMessage - редактирование сообщения
    • deleteMessage - удаление сообщения
  5. Методы управления группами

    • createGroup - создание группы
    • updateGroupName - обновление имени группы
    • getGroupData - получение данных группы
    • addGroupParticipant - добавление участника
    • removeGroupParticipant - удаление участника
    • setGroupAdmin - назначение администратора
    • removeAdmin - снятие прав администратора
    • setGroupPicture - установка фото группы
    • leaveGroup - выход из группы
  6. Методы журнала

    • getMessage - получение сообщения
    • getChatHistory - получение истории чата
    • lastIncomingMessages - последние входящие сообщения
    • lastOutgoingMessages - последние исходящие сообщения
  7. Методы получения сообщений

    • receiveNotification - получение уведомления из очереди
    • deleteNotification - удаление уведомления из очереди
    • downloadFile - скачивание файла сообщения
  8. Методы статусов (Бета)

    • sendTextStatus - отправка текстового статуса
    • sendVoiceStatus - отправка голосового статуса
    • sendMediaStatus - отправка медиа-статуса
    • deleteStatus - удаление статуса
    • getStatusStatistic - получение статистики статуса
    • getIncomingStatuses - получение входящих статусов
    • getOutgoingStatuses - получение исходящих статусов
  9. Методы API партнера

    • getInstances - получение всех инстансов
    • createInstance - создание инстанса
    • deleteInstanceAccount - удаление инстанса

Лицензия

MIT