Этот метод возвращает текущий статус подключения канала связи, к которому привязан API-токен: на связи ли мессенджер, ожидает авторизации, ограничен и т.д. Запрос удобен для мониторинга интеграций, проверки готовности канала перед отправкой сообщений и для отображения состояния в вашей CRM или панели администратора.
В отличие от методов отправки и чтения сообщений, этот запрос не требует состояния authorized — вы получите актуальное значение state даже если канал ещё не подключён. Для обзора всех каналов аккаунта сразу используйте получение списка каналов связи.
Ответ при успехе не содержит поля err — только объект с полем state. Это отличает метод от большинства других запросов API.
Поддерживаемые мессенджеры
WhatsApp, MAX Personal, Telegram Personal, Telegram Bot и другие.
Метод привязан к каналу, для которого выдан токен: тип мессенджера определяется настройками этого канала в WAMM.chat.
Пример запроса:
GET https://wamm.chat/api2/state/{token}/ Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| token | string | Да | API-токен канала из раздела Настройки > Управление > API. |
Ответ при успехе
{"state":"authorized"} Возможные значения поля state (неполный список):
authorized— канал на связи, готов к работеsuspended— подключение ограничено (часть операций API по-прежнему доступна)notAuthorized— не авторизован, требуется подключение (QR-код или код)starting— идёт запуск или переподключениеinit— инициализация каналаblocked— канал заблокирован
Точный набор значений зависит от типа канала и провайдера мессенджера.
Возможные ошибки
| Код ошибки | Описание |
|---|---|
| token fail | Токен отсутствует, неверный или канал не в статусе оплаты active (в т.ч. архивный канал) |
Примеры использования
function getChannelState($token) {
$url = "https://wamm.chat/api2/state/" . rawurlencode($token) . "/";
$response = file_get_contents($url);
if ($response === false) {
echo "Не удалось выполнить запрос к серверу";
return null;
}
$json = json_decode($response, true);
if (!is_array($json)) {
echo "Не удалось обработать ответ от сервера";
return null;
}
if (isset($json['err'])) {
echo "Ошибка: " . $json['err'];
return null;
}
if (isset($json['state'])) {
return $json['state'];
}
echo "Неожиданный формат ответа";
return null;
}
$token = "YOUR_TOKEN";
$state = getChannelState($token);
if ($state !== null) {
if ($state === 'authorized') {
echo "Канал на связи, можно отправлять сообщения";
} elseif ($state === 'suspended') {
echo "Канал ограничен, состояние: " . $state;
} else {
echo "Канал не готов к отправке, состояние: " . $state;
}
}