GREEN-API WhatsApp SDK Library v2#
TypeScript/JavaScript SDK для взаимодействия с GREEN-API.
Установка#
npm install @green-api/whatsapp-api-client-js-v2
# или
yarn add @green-api/whatsapp-api-client-js-v2
API#
Документация к REST API находится по ссылке. Библиотека является обёрткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.
Авторизация#
Чтобы отправить сообщение или выполнить другие методы GREEN-API, аккаунт WhatsApp в приложении телефона должен быть в авторизованном состоянии. Для авторизации инстанса перейдите в личный кабинет и сканируйте 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: '1234567890@c.us',
message: 'Привет от GREEN-API SDK!'
});
Отправка файла по URL#
await client.sendFileByUrl({
chatId: '1234567890@c.us',
file: {
url: 'https://example.com/file.pdf',
fileName: 'document.pdf'
},
caption: 'Посмотри этот файл'
});
Создание опроса#
await client.sendPoll({
chatId: '1234567890@c.us',
message: 'Какой ваш любимый цвет?',
options: [
{optionName: 'Красный'},
{optionName: 'Синий'},
{optionName: 'Зеленый'}
],
multipleAnswers: false
});
Управление группами#
// Создание группы
const group = await client.createGroup({
groupName: 'Моя тестовая группа',
chatIds: ['1234567890@c.us', '0987654321@c.us']
});
// Добавление участника
await client.addGroupParticipant({
groupId: group.chatId,
participantChatId: '1122334455@c.us'
});
Получение уведомлений#
// Получение уведомления с таймаутом 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: '1234567890@c.us',
idMessage: 'ID_СООБЩЕНИЯ_С_ФАЙЛОМ'
});
console.log('URL файла:', fileData.downloadUrl);
Работа со статусами WhatsApp (Бета)#
// Отправка текстового статуса
await client.sendTextStatus({
message: "Привет от GREEN-API SDK!",
backgroundColor: "#228B22", // Зеленый фон
font: "SERIF",
participants: ["1234567890@c.us"] // Опционально: ограничить видимость для конкретных контактов
});
// Отправка медиа-статуса
await client.sendMediaStatus({
urlFile: "https://example.com/image.jpg",
fileName: "image.jpg",
caption: "Посмотрите на этот вид!",
participants: ["1234567890@c.us"]
});
// Получение статистики статуса
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: '1234567890@c.us',
idMessage: 'BAE5367237E13A87',
message: 'Это отредактированный текст сообщения'
});
console.log('ID отредактированного сообщения:', editResult.idMessage);
// Удаление сообщения для всех
await client.deleteMessage({
chatId: '1234567890@c.us',
idMessage: 'BAE5F4886F6F2D05'
});
// Удаление сообщения только для отправителя
await client.deleteMessage({
chatId: '1234567890@c.us',
idMessage: 'BAE5F4886F6F2D05',
onlySenderDelete: true
});
Методы SDK#
SDK предоставляет следующие группы методов:
-
Методы отправки сообщений
sendMessage
- отправка текстового сообщенияsendFileByUrl
- отправка файла по URLsendFileByUpload
- отправка файла с загрузкойsendPoll
- создание опросаforwardMessages
- пересылка сообщенийsendLocation
- отправка местоположенияsendContact
- отправка контактаuploadFile
- загрузка файла
-
Методы управления аккаунтом
reboot
- перезагрузкаlogout
- выход из аккаунтаgetStateInstance
- получение состояния инстансаgetQR
- получение QR-кодаgetSettings
- получение настроекsetSettings
- установка настроекgetWaSettings
- получение настроек WhatsAppsetProfilePicture
- установка фото профиляgetAuthorizationCode
- получение кода авторизации
-
Методы очереди сообщений
showMessagesQueue
- отображение очереди сообщенийclearMessagesQueue
- очистка очереди сообщений
-
Сервисные методы
readChat
- отметить чат как прочитанныйcheckWhatsapp
- проверка наличия WhatsAppgetAvatar
- получение аватараgetContacts
- получение контактовgetContactInfo
- получение информации о контактеarchiveChat
- архивирование чатаunarchiveChat
- разархивирование чатаsetDisappearingChat
- настройка исчезающих сообщенийeditMessage
- редактирование сообщенияdeleteMessage
- удаление сообщения
-
Методы управления группами
createGroup
- создание группыupdateGroupName
- обновление имени группыgetGroupData
- получение данных группыaddGroupParticipant
- добавление участникаremoveGroupParticipant
- удаление участникаsetGroupAdmin
- назначение администратораremoveAdmin
- снятие прав администратораsetGroupPicture
- установка фото группыleaveGroup
- выход из группы
-
Методы журнала
getMessage
- получение сообщенияgetChatHistory
- получение истории чатаlastIncomingMessages
- последние входящие сообщенияlastOutgoingMessages
- последние исходящие сообщения
-
Методы получения сообщений
receiveNotification
- получение уведомления из очередиdeleteNotification
- удаление уведомления из очередиdownloadFile
- скачивание файла сообщения
-
Методы статусов (Бета)
sendTextStatus
- отправка текстового статусаsendVoiceStatus
- отправка голосового статусаsendMediaStatus
- отправка медиа-статусаdeleteStatus
- удаление статусаgetStatusStatistic
- получение статистики статусаgetIncomingStatuses
- получение входящих статусовgetOutgoingStatuses
- получение исходящих статусов
-
Методы API партнера
getInstances
- получение всех инстансовcreateInstance
- создание инстансаdeleteInstanceAccount
- удаление инстанса
Лицензия#
MIT