← К документации

IM

Последние диалоги и уведомления

Список recent, его пагинация и отличие получателя уведомления от автора сообщения.

Последние диалоги пользователя

BX24.init(function () {
    BX24.callMethod("im.recent.list", {
    "SKIP_OPENLINES": "N",
    "SKIP_DIALOG": "N",
    "SKIP_CHAT": "N"
}, function (result) {
        if (result.error()) {
            console.error(result.error());
            return;
        }
        console.log(result.data());
    });
});

Recent — список недавних диалогов текущего пользователя, а не каталог всех чатов портала. Для продолжения списка применяется контракт im.recent.list, в том числе дата последнего сообщения; нельзя подставлять сюда общий цикл start += 50.

Уведомления — отдельный API

Уведомление адресовано получателю. Выборка MessageTable с AUTHOR_ID = ID пользователя найдёт написанные им сообщения, а не все полученные уведомления.

Для системной отправки используется im.notify.system.add. Он принимает USER_ID получателя и MESSAGE; сессионная авторизация этого метода не поддерживается. Вебхук и токен приложения имеют собственные условия, в том числе для CLIENT_ID, TAG и SUB_TAG.

Один и тот же тег может заменять предыдущие уведомления. Это нужно учитывать, если вы рассчитываете сохранить отдельное уведомление на каждое событие.

Внутренние таблицы

В коробке RecentTable хранит состояние списка recent, а не нормализованный REST-ответ. Поля CHAT_ID, CHAT_TYPE или MESSAGE_ID нельзя предполагать по названиям из ответа API: карту таблицы проверяют в установленном модуле.

Источники