Метод msg_get_last возвращает до 100 последних сообщений канала, к которому привязан API-токен (входящие и исходящие, без служебных записей журнала). Удобен для периодической синхронизации переписки с CRM, отчётов и аналитики: опрашивайте API с интервалом в несколько минут и на своей стороне отсекайте уже обработанные сообщения по полю msg_id. Опциональный параметр from_me позволяет получить только входящие или только исходящие сообщения.

Историю по одному контакту или чату смотрите в методе Получение сообщений по номеру телефона (msg_get). Для доставки событий в реальном времени настройте WebHook — тогда опрос API не обязателен. Актуальный статус исходящего сообщения можно запросить отдельно: Получение статуса сообщения.


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

Метод доступен для каналов: WhatsApp, MAX Personal, Telegram Personal, Telegram Bot (и других типов, подключённых к WAMM.chat с API-токеном).


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

GET https://wamm.chat/api2/msg_get_last/{token}/?col={count}

или

GET https://wamm.chat/api2/msg_get_last/{token}/{count}

Фильтр по направлению (необязательно):

GET https://wamm.chat/api2/msg_get_last/{token}/?col=20&from_me=0

Параметры запроса
ПараметрТипОбязательныйОписание
tokenstringДаAPI-токен канала (Настройки > Управление > API)
colintegerДаКоличество сообщений (от 1 до 100). В URL можно передать в query col или вторым сегментом пути после токена. По умолчанию в коде — 20, если не указано иное
from_meintegerНет1 — только исходящие, 0 — только входящие. Если параметр не передан — все сообщения

Ответ при успехе
{
    "err": 0,
    "msg_data": [
        {
            "msg_id": 1234567,
            "from_me": 1,
            "from_api": 1,
            "phone_acc": "79001112233",
            "phone": "79001234567",
            "phone_real": "",
            "chat_name": "Иван Петров",
            "tip_msg": "textMessage",
            "msg_text": "Добрый день!",
            "msg_link": "",
            "date_ins": "2023-05-24 19:52:00",
            "state": "delivered",
            "rassilka_id": 1234
        },
        {
            "msg_id": 1234566,
            "from_me": 0,
            "from_api": 0,
            "phone_acc": "79001112233",
            "phone": "79001234567",
            "phone_real": "",
            "chat_name": "Иван Петров",
            "tip_msg": "textMessage",
            "msg_text": "Здравствуйте!",
            "msg_link": "",
            "date_ins": "2023-05-24 19:50:15",
            "state": "received",
            "rassilka_id": null
        }
    ]
}

Описание полей ответа
ПолеОписание
msg_idУникальный идентификатор сообщения в WAMM.chat
from_meНаправление: 0 — входящее, 1 — исходящее
from_apiОтправлено через API: 0 — нет, 1 — да
phone_accНомер или идентификатор подключённого к WAMM канала (аккаунта отправителя)
phoneКонтакт / чат: номер в международном формате; для Telegram и MAX часто ID чата
phone_realТелефон или никнейм контакта, если известен (для Telegram/MAX, когда phone — ID чата)
chat_nameИмя контакта или название чата
tip_msgТип: textMessage, file_link (файл/медиа), documentMessage и др.; вложения часто приходят как file_link
msg_textТекст сообщения; для файлов без текста может быть файл
msg_linkСсылка на файл или медиа (если есть)
date_insДата и время отправки или получения (YYYY-MM-DD HH:MM:SS, часовой пояс сервера — Москва)
stateСтатус: для входящих обычно received; для исходящих — sending или значение доставки (sent, delivered, viewed, read и др.)
rassilka_idID рассылки, если сообщение отправлено из рассылки; иначе null

Обновление статуса исходящих сообщений в реальном времени приходит на WebHook (событие msg_state с полем date_upd), а не в ответе этого метода.


Возможные ошибки
Код ошибкиОписание
token failТокен недействителен, отсутствует или канал не в статусе оплаты active
acc not authorizedКанал не готов к работе (нет связи). Чтение доступно при состоянии authorized или suspended
col fail or more 100Параметр col не указан, меньше 1 или больше 100
msgs not beСообщения не найдены (пустая выборка)

Примеры использования
function getLastMessages($token, $count, $fromMe = null) {
    $url = "https://wamm.chat/api2/msg_get_last/$token/?col=" . (int)$count;

    if ($fromMe !== null) {
        $url .= "&from_me=" . ((int)$fromMe ? 1 : 0);
    }

    $response = @file_get_contents($url);
    if ($response === false) {
        return false;
    }

    $data = json_decode($response, true);
    if (!is_array($data) || !isset($data['err'])) {
        return false;
    }

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

    return false;
}

$token = "YOUR_TOKEN";
$messages = getLastMessages($token, 20);
$incomingOnly = getLastMessages($token, 50, 0);