Данный метод возвращает список каналов связи (мессенджеров), подключённых к вашему аккаунту WAMM.chat. В ответе — тип канала, статус оплаты и подключения, имя канала, номер или идентификатор, а также URL Webhook, если он задан. Метод удобен для мониторинга интеграций, выбора api_id перед отправкой сообщений и проверки, какие каналы готовы к работе.

Запрос выполняется по любому действующему API-токену организации: в списке будут все каналы аккаунта, а не только канал, к которому привязан токен. Для списка операторов используйте получение списка пользователей; для проверки готовности одного канала к отправке — отдельный запрос по токену канала.

Отправка и приём сообщений по API описаны в разделах отправка сообщений и получение сообщений.


Поддерживаемые мессенджеры

Метод не привязан к одному мессенджеру: в списке могут быть все типы каналов аккаунта — WhatsApp, Telegram Personal, Telegram Bot, MAX Personal, MAX Bot, Avito и другие. Поле api_tip в ответе указывает тип каждого канала. Наличие канала в списке не означает, что для него доступны все операции API (отправка, редактирование и т.д.) — это зависит от типа канала и его состояния.


Пример запроса:

GET https://wamm.chat/api2/channel_list/{token}/

с фильтром (необязательно):

GET https://wamm.chat/api2/channel_list/{token}/{filter}

Примеры: .../channel_list/ВАШ_ТОКЕН/active, .../channel_list/ВАШ_ТОКЕН/one.


Параметры запроса
ПараметрТипОбязательныйОписание
tokenstringДаAPI-токен канала из раздела Настройки > Управление > API. Токен должен быть действителен (канал с оплатой active).
filterstringНетФильтр списка (второй сегмент URL после токена):
active — каналы с оплатой active;
archive — архивные каналы;
statusOn — active и подключение authorized;
statusOff — active, но не на связи (state ≠ authorized);
one — только канал, соответствующий переданному токену.
Без filter — все каналы организации (active и archive).

Ответ при успехе
{
    "err": 0,
    "data": [
        {
            "api_id": "100",
            "api_tip": "whatsapp",
            "pay_state": "active",
            "phone": "79001234567",
            "api_tag": "Основной WhatsApp",
            "state": "authorized",
            "hook": "https://example.com/webhook/wamm"
        },
        {
            "api_id": "110",
            "api_tip": "tg",
            "pay_state": "active",
            "phone": "79181234567",
            "api_tag": "Telegram",
            "state": "authorized",
            "hook": ""
        }
    ]
}

Описание полей ответа
ПолеОписание
api_idИдентификатор канала в WAMM.chat
api_tipТип канала: whatsapp, tg, tg_bot, max_num, max_bot, vk, avito и др.
pay_stateСтатус оплаты: active или archive
phoneНомер телефона или идентификатор, привязанный к каналу
api_tagОтображаемое имя канала в личном кабинете
stateСтатус подключения к мессенджеру: authorized (на связи), suspended, init, notAuthorized, starting, blocked и др.
hookТекущий URL Webhook для канала (пустая строка, если не задан)

Возможные ошибки
Код ошибки, значение «err»Описание
token failТокен недействителен, отсутствует или канал не в статусе оплаты active
fail get dataСписок пуст (нет каналов по выбранному фильтру) или данные не получены

Примеры использования
function getChannelList($token, $filter = '') {
    $url = 'https://wamm.chat/api2/channel_list/' . rawurlencode($token) . '/';
    if ($filter !== '') {
        $url .= rawurlencode($filter);
    }

    $response = file_get_contents($url);
    if ($response === false) {
        echo "Не удалось выполнить запрос к серверу";
        return null;
    }

    $json = json_decode($response, true);
    if (!isset($json['err'])) {
        echo "Не удалось обработать ответ от сервера";
        return null;
    }

    if ($json['err'] === 0 && isset($json['data'])) {
        return $json['data'];
    }

    echo "Ошибка: " . $json['err'];
    return null;
}

$token = 'YOUR_TOKEN';
$channels = getChannelList($token, 'active');

if ($channels !== null) {
    foreach ($channels as $channel) {
        echo "ID: {$channel['api_id']}, тип: {$channel['api_tip']}, "
           . "телефон: {$channel['phone']}, state: {$channel['state']}\n";
    }
}