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