С сожалением сообщаем вам, что эта статья потеряла свою актуальность. Возможно описываемая услуга перестала предоставляться или изменились условия работы API.
Сейчас Chat API предлагает самый доступный и автоматизированный messengers Business API на рынке с Многопользовательским Чатом, Визуальным конструктором ботов, готовыми интеграциями приложений и другими полезными функциями.
Это надежный способ познакомить более чем 2-миллиардную аудиторию мессенджера с вашим бизнесом или продуктом: привлечение клиентов в messengers стало проще.
Спасибо, что посетили наш сайт. Успехов во всех делах!
REST API позволяет принимать и отправлять сообщения через аккаунт messengers. Зарегистрировать аккаунт messengers API
Параметры в GET запросах передавайте через query string. Параметры в POST запросах — через JSON-encoded тело запроса. Токен авторизации всегда передается в query string (?token=xxxxxx).
К каждому запросу необходимо прибавить токен в GET параметре token.
API messengers работает на основе протокола messengers WEB и исключает бан как при использовании библиотек от mgp25 и подобных. Несмотря на это, Ваш аккаунт может быть забанен анти-спам системой messengers после нескольких нажатий кнопки "в спам".
Руководства по созданию messengers бота на PHP , на Python , на Node.JS , на C# и на Java. Бот в связке с Google таблицами.
Business API ДокументацияПолучить статус аккаунта и QR код для авторизации. Повторная авторизация нужна только в случае смены устройства или ручного нажатия "Выйти из всех устройств" на телефоне. Держите приложение WhastsApp открытым во время авторизации.
init | это начальный статус |
loading | загрузка, повторите через 30 секунд |
got qr code | есть QR код и нужно его сфотографировать в приложении messengers перейдя в Меню > messengers Web > Добавить.
QR код действителен в течении одной минуты.
Пример отображения base64 картинки на странице.
Вручную проще получить изображение QR-кода |
.
authenticated | авторизация пройдена успешно |
{
"accountStatus": "got qr code",
"qrCode": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ....."
}
Прямая ссылка на QR-код в виде изображения, а не base64.
Создание группы и отправка сообщения в созданную группу. Если хост iPhone, то наличие всех в списке контактов обязательно.
Группа будет добавлена в очередь на отправку и рано или поздно создана, даже если телефон отключен от интернета или авторизация не пройдена.
Обновление от 2 октября 2018: параметр chatId будет заполнен, если удалось создать группу на вашем телефоне в течении 20 секунд.
groupName | Название группы, строка, обязательное. |
phones |
Массив телефонов, начинающийся с кода страны. Свой номер добавлять не надо.
Для России и Казахстана это всегда 7, затем 10 цифр. Пример: 79995253422. |
messageText | Текст сообщения, строка |
{
"phones": ["19497775100","79680565372"],
"messageText": "Safari is the new IE",
"groupName": "Browsers",
}
Отправка сообщения в новый или существующий чат. Сообщение будет добавлено в очередь на отправку и доставлено даже если телефон отключен от интернета или авторизация не пройдена.
Нужен только один из двух параметров для определения адресата - chatId или phone.
phone | Обязателен если не указан chatId | Номер телефона, начинающийся с кода страны. Для России и Казахстана это всегда 7, затем 10 цифр. Сообщения на номера телефона с 8 не будут доставлены. Пример: 79995253422. |
chatId | Обязателен если не указан phone | ID чата из списка сообщений. Примеры: [email protected] для личных сообщений и [email protected] для группы. Используется вместо параметра phone |
body | Обязателен | Текст сообщения, любая строка включая emoji 🍏 |
{
"phone": "19497775100",
"body": "Hello, brother! 🍏"
}
{
"chatId": "[email protected]",
"body": "Hello, brother!"
}
{
"sent": true,
"message": "ok"
}
Отправка файла в новый или существующий чат. Сообщение будет добавлено в очередь на отправку и доставлено даже если телефон отключен от интернета или авторизация не пройдена.
Нужен только один из двух параметров для определения адресата - chatId или phone.
phone | Обязателен если не указан chatId | Смотрите POST /sendMessage |
chatId | Обязателен если не указан phone | Смотрите POST /sendMessage |
body | Обязателен |
Ссылка на файл, например https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg
Или файл в base64, например data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ... Или файл в поле формы |
filename | Обязательно | Имя отправляемого файла, например 1.jpg или hello.xlsx |
caption | Не обязательно | Текст под фотографией |
{
"chatId": "[email protected]",
"body": "https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg",
"filename": "cover.jpg"
}
{
"phone": "19497775100",
"body": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAMAAACeL25MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI3OEY5RkZENjkwQjExRTg4NENBQjE1QkFGNzEzOEQ5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI3OEY5RkZFNjkwQjExRTg4NENBQjE1QkFGNzEzOEQ5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Qjc4RjlGRkI2OTBCMTFFODg0Q0FCMTVCQUY3MTM4RDkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Qjc4RjlGRkM2OTBCMTFFODg0Q0FCMTVCQUY3MTM4RDkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz60+8CVAAAADFBMVEX/zc2ampr/ZmYwMDB/wIlPAAAAGUlEQVR42mJgZmQAQkYGBgYmJiYwwQgQYAAAzQAVpgHCIgAAAABJRU5ErkJggg==",
"filename": "4x4pixel.jpg"
}
{
"sent": true,
"message": "ok"
}
Получить список сообщений. Для получения только новых сообщений передайте параметр lastMessageNumber из последнего запроса.
Файлы из сообщений гарантированно хранятся лишь 10 дней и могут быть удалены. Скачивайте файлы сразу при получении на свой сервер.
lastMessageNumber | Параметр lastMessageNumber из предыдущего запроса |
last | Отображает последние 100 сообщений. Если передан этот параметр, то lastMessageNumber игнорируется. |
// GET /messages?lastMessageNumber=99:
{
"messages:" [{
//уникальный ID
"id": "[email protected]_DF38E6A25B42CC8CCE57EC40F",
//текст сообщения для типа "chat" или ссылка на скачивание файла для "ptt", "image", "audio" и "document"
"body": "Окей.",
//Тип сообщения - "chat" - текстовое, "image" - изображение, "ptt" - голосовое, "document" - текстовый документ, "audio" - аудио файл, "call_log" - звонок
"type": "chat",
//Имя отправителя
"senderName": "Ilya",
//true - исходящее, false - входящее
"fromMe": true,
//ID автора сообщения, полезно для групп
"author": "[email protected]",
//время отправления, unix timestamp
"time": 1504208593,
//ID чата
"chatId": "[email protected]",
//порядковый номер сообщения в базе данных
"messageNumber": 100
}, {
//...
}],
"lastMessageNumber": 199 //Следующий запрос должен быть /messages?lastMessageNumber=199
}
Устанавливает URL для получения webhook уведомлений о новых сообщениях и о статусах доставки исходящих сообщений (ack).
webhookUrl | Http или https URL для получения оповещений. Для тестирования рекомендуем использовать requestb.in. |
{
"set": true,
"webhookUrl": "https://requestb.in/1f9aj261"
}
{ // It has the same JSON payload as /messages has
// Sending to POST JSON body
"messages": [{
//unique id
"id": "[email protected]_DF38E6A25B42CC8CCE57EC40F",
//text message for type "chat" or link to download the file for "ptt", "image", "audio" and "document"
"body": "Ok!",
//type of the message - "chat" - text, "image" - image, "ptt" - voice, "document" - text document, "audio" - audio file, "call_log" - call
"type": "chat",
//Sender name
"senderName": "Ilya",
//true - outgoing, false - incoming
"fromMe": true,
//Author ID of the message, useful for groups
"author": "[email protected]",
//send time, unix timestamp
"time": 1504208593,
//chat ID
"chatId": "[email protected]",
//sequence number of the message in the database
"messageNumber": 100
}, {
//...
}],
"ack": [{//message delivered
"id": "[email protected]_DF38E6A25B42CC8CCE57EC40F",
"queueNumber": 100
"chatId": "[email protected]",
"status": "delivered",
},{//message viewed
"id": "[email protected]_DF38E6A25B42CC8CCE57EC40F",
"queueNumber": 100
"chatId": "[email protected]",
"status": "viewed",
}, {
//...
}],
}
Возвращает текущий webhook url.
{
"set": true,
"webhookUrl": "https://requestb.in/1f9aj261"
}
Включить или выключить получение уведомлений о доставке и прочтении отправленных сообщений ack в webhook. Так же работает GET метод по тому же адресу.
ackNotificationsOn | 1 (true) или 0 (false) . |
{
"set": true,
"webhookUrl": "https://requestb.in/1f9aj261"
}
Выйти из аккаунта и запросить новый QR-код.
{
"result": "Logout request sent to messengers"
}
Перезагрузить Ваш инстанс messengers.
{
"success": true
}
Показать список сообщений, которые стоят в очереди на отправку, но еще не отправлены.
{
"totalMessages":2,
"first100":[
{
"id":1,
"body":"Hey!",
"type":"text",
"chatId":"[email protected]",
"last_try":1528320463436,
"metadata":"{}"
},
]
}
Очистить очередь на отправку сообщений. Этот метод нужен когда вы случайно отправили тысячи сообщений подряд.
{
"message":"Cleared 2 messages",
"messageTextsExample":[
"Hello world",
"Hello world"
]
}