В статье рассказываем про отправку, обновление статуса, редактирование и удаление сообщений.
Вы можете использовать встроенный интерфейс Wazzup для переписки. Так вам не придётся разрабатывать, дорабатывать, поддерживать свои интерфейсы для обработки диалогов.
При работе с перечисленными методами используйте в заголовках токен дочернего аккаунта client_access_token, который получили с помощью упрощенной авторизации или OAuth: Authorization: Bearer client_access_token
POST /v2/messages — отправить сообщение.PATCH /v2/messages/{message_id} — редактировать сообщение.DELETE /v2/messages/{message_id} — удалить сообщение (только для поддерживаемых транспортов).Отправка сообщений асинхронна. В случае успешной отправки, вы получаете request_id. Наличие request_id не гарантирует доставку, оно сообщает о том что Wazzup принял ваше сообщение в обработку. Итог обработки и реальный message_id вы получите с вебхуком, обновляющим статус сообщения.
В одном запросе на отправку сообщения нельзя передать одновременно текст (параметр text) и вложение (attachment). При таком запросе вернется ошибка: "Cannot provide more that one of text, attachment or template". Используйте разные запросы, чтобы отправить текст и файл.
Метод POST /v2/messages
Параметры:
| Параметр. Обязательные отмечены * | Тип параметра | Описание параметра |
channel_id * |
string(uuid) |
ID канала |
quoted_message_id |
string(uuid) |
ID цитируемого сообщения |
recipient * |
object |
Получатель сообщения |
recipient.chat_type * |
string |
Тип чата. Доступные значения:
|
recipient.chat_id |
string |
Вариант идентификации для всех типов чата — ID чата, то есть аккаунт контакта в мессенджере.
|
recipient.username |
string |
Только для Telegram. Имя пользователя в Telegram, без @ в начале. Можно использовать при отправке сообщений через Telegram, если неизвестен chatId |
recipient.phone |
string |
Только для Telegram, MAX. Телефон контакта в международном формате, без + и иных символов: только цифры с корректным кодом страны. Может использоваться при отправке сообщений через Telegram, если неизвестен chatId |
recipient.crm_contact_name |
string |
Имя контакта в CRM |
text |
string |
Текст сообщения. Одно из полей text или attachment должно быть заполнено. Отправить в одном запросе text и attachment нельзя |
attachment |
object |
Вложение. Одно из полей text или attachment должно быть заполнено. Отправить в одном запросе text и attachment нельзя |
attachment.url * |
string |
Прямая ссылка на файл |
attachment.name |
string |
Название файла |
attachment.mimetype |
string(mime-type) |
MIME-тип файла |
attachment.size |
number |
Размер файла |
attachment.sha1 |
string(hex) |
Хэш SHA1 |
crm_user_id |
string |
ID пользователя в CRM |
reset_unanswered |
boolean |
Сбросить ли счетчик неотвеченных. Чтобы сообщение не сбрасывало счетчик, укажите false |
| Для шаблонов WABA | ||
template |
object |
Объект шаблона |
template.id * |
string(uuid) |
Код шаблона WABA. Как получить коды шаблонов WABA |
template.values |
array(string) |
Значения переменных шаблона |
template.buttons |
array(object) |
Кнопки, прикрепленные к шаблону WABA. При работе с шаблонами объект buttons пригодится, только если хотите привязать к кнопкам полезную нагрузку. Тексты кнопок, которые отправятся с шаблоном WABA, прописывать не надо. |
template.buttons.text |
string |
Текст кнопки |
template.buttons.type |
string |
Тип кнопки |
template.buttons.payload * |
string |
Payload кнопки |
| Для интерактивных сообщений WABA и Telegram Bot | ||
keyboard |
object |
Интерактивные кнопки |
| Для интерактивных сообщений WABA | ||
keyboard.buttons * |
array(object) |
Массив объектов с кнопками. Не более 10. Если кнопок больше 10, возьмем первые 10. |
keyboard.buttons.text |
string |
Текст кнопки. Ограничение — 20 символов |
keyboard.buttons.type |
string |
Тип кнопки |
keyboard.buttons.payload * |
string |
Payload кнопки |
| Для сообщений Telegram Bot | ||
keyboard.reply_markup |
string |
Тип Telegram-клавиатуры: inline, reply |
keyboard.one_time_keyboard |
boolean |
Если значение true, то кастомная клавиатура скрывается (не удаляется) после нажатия кнопки |
keyboard.resize_keyboard |
boolean |
Изменение размера |
keyboard.selective |
boolean |
Селективная клавиатура |
keyboard.remove_keyboard |
boolean |
Используется для удаления кастомной клавиатуры при передаче значения true |
keyboard.buttons[].text |
string |
Для inline-кнопок. Текст кнопки. Ограничение — 64 символа |
keyboard.buttons[].url |
string(url) |
Для inline-кнопок. URL, который будет открываться при нажатии кнопки |
keyboard.buttons[].callback_data |
string |
Для inline-кнопок. Payload callback. Данные, которые будут отправлены в обратном запросе боту при нажатии кнопки, 1-64 байта |
keyboard.buttons[].text * |
string |
Для reply-кнопок. Текст кнопки. Ограничение — 64 символа |
| Для сообщений MAX-бота | ||
keyboard.buttons * |
array of arrays |
Кнопки в виде двумерного массива |
keyboard.buttons[].type * |
string |
Тип кнопки. Возможные значения: callback, link, message |
keyboard.buttons[].text * |
string |
Текст кнопки для всех типов |
keyboard.buttons[].payload * |
string |
Payload кнопки. Только для типа callback |
keyboard.buttons[].intent |
string |
Интенция кнопки. Возможные значения: default, positive, negative |
keyboard.buttons[].url * |
string |
Ссылка в кнопке. Только для типа link |
Пример отправки текстового сообщения:
curl -L 'https://tech.wazzup24.com/v2/messages'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"channel_id": "020e3f61-e5df-447f-8ef9-ce8258e92c7a",
"recipient": {
"chat_type": "whatsapp",
"chat_id": "79999999999"
},
"text": "Hello World"
}'
Пример отправки сообщения с контентом:
curl -L 'https://tech.wazzup24.com/v2/messages'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"channel_id": "020e3f61-e5df-447f-8ef9-ce8258e92c7a",
"recipient": {
"chat_type": "whatsapp",
"chat_id": "79385005913"
},
"attachment": {
"url": "https://drive.google.com/uc?export=download&id=123456test",
"name": "new.pdf",
"mimetype": "application/pdf",
"size": 86176,
"sha1": "153e030466873745ce4a66da02d0610a7ee6ce4f",
},
"crm_user_id": "crm-123"
}'
Пример отправки шаблона:
curl -L 'https://tech.wazzup24.com/v2/messages'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"channel_id": "020e3f61-e5df-447f-8ef9-ce8258e92c7a",
"recipient": {
"chat_type": "whatsapp",
"chat_id": "79385005913"
},
"template": {
"id": "385bf0c5-9f2a-4f9f-be85-9b84d797cf95",
"values": [
"https://drive.google.com/uc?export=download&id=123456test"
]
},
"buttons": [
{
"text": "Спасибо!",
"type": "text",
"payload": "yes"
},
{
"text": "Мне нужно еще!",
"type": "text",
"payload": "yes"
},
{
"text": "Мне нужно еще 2!",
"type": "text",
"payload": "yes"
}
]
}'
Пример ответа:
{
"data": {
"request_id": "9820d14f-66ae-4170-997f-0f06c0800664",
"chat_id": 79385005913
},
"meta": {
"timestamp": 1759492896
}
}
Результат: Запрос на отправку принят. Вы получите вебхук со статусом доставки.
Каналы, на которых доступно редактирование:
Редактировать сообщение можно в течение 15 минут после доставки. Узнайте в нашей инструкции больше о том, как работает редактирование сообщений.
Метод PATCH /v2/messages/{message_id}
Path-параметрыmessage_id — ID сообщения, которое нужно изменить.
| Body-параметр. Обязательные отмечены * | Тип | Описание |
|---|---|---|
text |
string |
Текст сообщения. Одно из полей text или attachment должно быть заполнено. |
attachment |
object |
Объект с вложением. Одно из полей text или attachment должно быть заполнено. |
attachment.url * |
string |
Прямая ссылка на файл. |
attachment.name |
string |
Название файла. |
attachment.mimetype |
string($mime-type) |
MIME-тип файла. |
attachment.size |
number |
Размер файла. |
attachment.sha1 |
string($hex) |
Хэш файла SHA-1. |
crm_user_id |
string |
ID пользователя в CRM, который изменяет сообщение |
Пример:
curl -L -X PATCH 'https://tech.wazzup24.com/v2/messages/8e074add-828d-4f35-afcc-99ccbfa9d0ae'
-H 'Authorization: Bearer <client_access_token>'
-H 'Content-Type: application/json'
-d '{
"text": "Отредактированное сообщение"
}'
Пример ответа:
{
"data": {
"message_id": "8e074add-828d-4f35-afcc-99ccbfa9d0ae",
"chat_id": "1234567890"
},
"meta": {
"timestamp": 1759397203
}
}
Результат: Сообщение message_id: 8e074add-828d-4f35-afcc-99ccbfa9d0ae отредактировано.
Каналы, на которых доступно удаление сообщений:
Сообщение удаляется в мессенджере у отправителя и собеседника. При этом в iframe Wazzup сообщение будет отображаться с отметкой, что удалено.
Узнайте в нашей инструкции больше о том, как работает удаление сообщений.
Метод DELETE /v2/messages/{message_id}
Path-параметрыmessage_id — ID сообщения, которое нужно удалить.
Пример:
curl -L -X DELETE 'https://tech.wazzup24.com/v2/messages/8a3f7a93-2b25-45da-8695-671bd56439e5' -H 'Authorization: Bearer <client_access_token>'
Пример ответа:
{
"data": {
"message_id": "8a3f7a93-2b25-45da-8695-671bd56439e5",
"chat_id": "1234567890"
},
"meta": {
"timestamp": 1759397203
}
}
Результат: Сообщение message_id: 8a3f7a93-2b25-45da-8695-671bd56439e5 удалено.
*Запрещены и признаны экстремистскими на территории РФ