Этот метод позволяет отправлять текстовые сообщения получателям через доступные каналы связи (WhatsApp, Telegram, MAX, и т.д.). Можно включать в сообщения ссылки, эмодзи и форматирование. Метод удобен для отправки уведомлений, информационных сообщений и непосредственно общения с клиентами.
При отправке автоматически проверяется наличие аккаунта в мессенджере по указаному телефону или ID чата, никнейму, в зависимости от мессенджера.
Сообщение ставится в очередь отправки; в ответе вы получаете msg_id для проверки статуса через получение статуса сообщения или WebHook.
Перед отправкой выполняется проверка получателя в мессенджере (номер, ID чата или ник — в зависимости от канала). Отдельно вызывать проверку наличия мессенджера не обязательно. При первом обращении к новому абоненту контакт в WAMM.chat создаётся автоматически (кроме ботов — см. ниже).
Поддерживаемые мессенджеры
Метод доступен для каналов: WhatsApp, MAX Personal, Telegram Personal, Telegram Bot, MAX Bot.
- Telegram Personal и MAX Personal — в параметре
phoneможно передать номер, ID чата или никнейм. - Telegram Bot и MAX Bot — получатель должен уже быть в контактах WAMM.chat (диалог начат в интерфейсе или контакт добавлен через API контактов).
- Канал должен быть в статусе
authorizedилиsuspended; при других статусах подключения вернётсяacc not authorized.
Пример запроса
GET https://wamm.chat/api2/msg_to/{token}/?phone={phone}&text={text} или
GET https://wamm.chat/api2/msg_to/{token}/{phone}/{text} Параметр text также можно передать в POST (тело запроса).
Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| token | string | Да | API-токен из раздела «Настройки → Управление → API» (канал с активной оплатой) |
| phone | string | Да | Номер в международном формате (например, 79001234567). Для Telegram и MAX — ID чата или никнейм. |
| text | string | Да | Текст до 4500 символов, UTF-8, в URL — urlencode. Перенос строки: %0A. Коды :sm01:…:sm28: — см. смайлы. |
| delay | integer | Нет | Пауза до следующего исходящего сообщения в очереди (секунды). Фиксированные значения: 15, 20, 30, 45, 60, 120, 180. Без параметра — обычно 8–12 секунд между сообщениями |
| quote_msg_id | integer | Нет | ID сообщения в WAMM.chat (msg_id из ответа отправки), на которое нужен ответ-цитата |
При нескольких запросах подряд сообщения выстраиваются в очередь с указанным или стандартным интервалом. На тестовом тарифе — не более 30 исходящих сообщений по API в сутки.
Ответ при успехе
{"err":0,"msg_id":1234567} msg_id — идентификатор сообщения в WAMM.chat (используйте его в msg_state, quote_msg_id и при разборе WebHook).
Возможные ошибки
Код ошибки (err) | Описание |
|---|---|
| token fail | Неверный токен или канал в архиве |
| acc not authorized | Канал не готов к отправке (не в статусе authorized / suspended) |
| phone fail | Некорректный или пустой идентификатор получателя |
| no WhatsApp on the number | Нет WhatsApp на указанном номере (канал WhatsApp) |
| no Account on the number | Нет аккаунта / контакта для Telegram, MAX и др. |
| phone not checked for WhatsApp, please retry | Не удалось проверить номер в WhatsApp — повторите запрос |
| phone not checked, please retry | Не удалось проверить получателя (Telegram, MAX и др.) — повторите запрос |
| text fail | Пустой текст после обработки |
| text fail, more 4500 | Текст длиннее 4500 символов |
| quote_msg_id fail, not found | Сообщение для цитирования не найдено в этом канале |
| chat banned | Чат заблокирован в WAMM.chat |
| Limit 30 send messages per 1 day on TEST accounts | Превышен дневной лимит API на тестовом тарифе |
Примеры использования
function sendMessage($token, $phone, $text) {
$url = 'https://wamm.chat/api2/msg_to/' . rawurlencode($token) . '/?phone=' . rawurlencode($phone) . '&text=' . rawurlencode($text);
$response = file_get_contents($url);
if ($response === false) {
echo 'Не удалось выполнить запрос к серверу';
return;
}
$json = json_decode($response, true);
if (!isset($json['err'])) {
echo 'Не удалось обработать ответ от сервера';
return;
}
if ($json['err'] === 0 && isset($json['msg_id'])) {
echo 'Сообщение отправлено, msg_id: ' . $json['msg_id'];
} else {
echo 'Ошибка: ' . $json['err'];
}
}
$token = 'YOUR_TOKEN';
$phone = '79001234567';
$text = 'Тестовое сообщение';
sendMessage($token, $phone, $text);