Метод позволяет получить актуальный статус ранее отправленного сообщения (доставлено, прочитано, отправляется и т.д.). Это полезно для отслеживания прогресса доставки важных сообщений и аналитики взаимодействия с вашими клиентами. Метод можно использовать в интеграциях для обновления статусов отправленных уведомлений в вашей системе.
Также есть механизм WebHook, который позволяет получать в вашу систему сообщения и их статусы онлайн, без запросов по API.
Поддерживаемые мессенджеры
Метод API получение статуса сообщения доступен для мессенджеров: WhatsApp, MAX Personal, Telegram Personal, Telegram Bot.
Пример запроса:
GET https://wamm.chat/api2/msg_state/{token}/?msg_id={msg_id}
или
GET https://wamm.chat/api2/msg_state/{token}/{msg_id}
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
token | string | Да | API-токен, полученный в настройках |
msg_id | integer | Да | Идентификатор сообщения, полученный при отправке |
Ответ при успехе
{
"err": 0,
"msg_data": {
"msg_id": "1234567",
"phone": "79001234567",
"state": "viewed"
}
}
Описание полей ответа
Поле | Описание |
---|---|
msg_id | Идентификатор сообщения |
phone | Номер телефона получателя |
state | Статус сообщения (deleted, viewed, delivered, not sent, sent, failed, noAccount, notInGroup и другие) |
Возможные ошибки
Код ошибки | Описание |
---|---|
token fail | Ошибка в токене |
acc not authorized | Подключение не авторизовано |
msg_id fail | Ошибка в номере сообщения |
msg not be | Не найден номер сообщения |
Примеры использования
curl -X GET "https://wamm.chat/api2/msg_state/YOUR_TOKEN/?msg_id=1234567"
function getMessageStatus($token, $msg_id) {
// Подготавливаем URL запроса
$url = "https://wamm.chat/api2/msg_state/$token/?msg_id=$msg_id";
// Выполняем запрос
$response = file_get_contents($url);
// Обрабатываем ответ
if ($response !== false) {
// Преобразуем ответ в массив
$json_response = json_decode($response, true);
// Проверяем наличие ошибок
if (isset($json_response['err'])) {
if ($json_response['err'] == 0 && isset($json_response['msg_data'])) {
$status = $json_response['msg_data']['state'];
echo "Статус сообщения: " . $status;
return $status;
} else {
echo "Ошибка: " . $json_response['err'];
return null;
}
} else {
echo "Не удалось обработать ответ от сервера";
return null;
}
} else {
echo "Не удалось выполнить запрос к серверу";
return null;
}
}
// Используем функцию для получения статуса сообщения
$token = "YOUR_TOKEN";
$msg_id = 1234567;
$status = getMessageStatus($token, $msg_id);
// Обрабатываем статус
if ($status !== null) {
switch ($status) {
case 'sending':
echo "Сообщение отправляется";
break;
case 'viewed':
echo "Сообщение просмотрено";
break;
case 'received':
echo "Сообщение получено";
break;
case 'delivered':
echo "Сообщение доставлено";
break;
case 'not sent':
echo "Сообщение не отправлено";
break;
case 'deleted':
echo "Сообщение удалено";
break;
default:
echo "Статус сообщения: " . $status;
}
}