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: карту таблицы проверяют в установленном модуле.