22  /  46

Работа с сообщениями

Просмотров: 3109 (Статистика ведётся с 06.02.2017)

Обратите внимание! Все методы указаны с использованием функции restCommand - это метод отправки данных в Битрикс24, данный метод есть в примере ЭхоБота, и представлен здесь в качестве примера. Вы можете использовать свою функцию или javascript-метод BX24.callMethod или bitrix24-php-sdk.


Обратите внимание! Данные методы работы с сообщениями обычно применяются, когда пользователь что-то пишет, поэтому нужно обязательно обрабатывать событие ONIMBOTMESSAGEADD.


Отправка сообщения от чат-бота

Rest-метод: imbot.message.add

Вызов метода:
$result = restCommand('imbot.message.add', Array(

    'BOT_ID' => 39, // Идентификатор чат-бота, от которого идет запрос, можно не указывать, если чат-бот всего один
    'DIALOG_ID' => 1, // Идентификатор диалога, это либо USER_ID пользователя, либо chatXX - где XX идентификатор чата, передается в событии ONIMBOTMESSAGEADD и ONIMJOINCHAT
    'MESSAGE' => 'answer text' // Тест сообщения
    'ATTACH' => '' // Вложение, необязательное поле
    'KEYBOARD' => '' // Клавиатура, необязательное поле
    'MENU' => '' // Контекстное меню, необязательное поле 
    'SYSTEM' => 'N' // Отображать сообщения в виде системного сообщения, необязательное поле, по умолчанию 'N'
    'URL_PREVIEW' => 'Y' // Преобразовывать ссылки в rich-ссылки, необязательное поле, по умолчанию 'Y'

), $_REQUEST["auth"]);

Вы можете публиковать сообщение от имени бота в приватные диалоги (будут показаны как системное сообщение). Для этого вместо DIALOG_ID укажите USER_FROM_ID и USER_TO_ID.

Результат выполнения: идентификатор сообщения MESSAGE_ID или ошибка.

Ссылки по теме:

Как работать с набираемыми клавиатурами
Как работать с вложениями
Форматирование сообщения
Событие на получение чат-ботом сообщения ONIMBOTMESSAGEADD

Возможные ошибки:

Код ошибкиОписание ошибки
BOT_ID_ERROR Чат-бот не найден.
APP_ID_ERROR Чат-бот не принадлежит этому приложению, работать можно только с чат-ботами, установленными в рамках приложения.
DIALOG_ID_EMPTY Не передан идентификатор диалога.
MESSAGE_EMPTY Не передан текст сообщения.
ATTACH_ERROR Весь переданный объект вложения не прошел валидацию.
ATTACH_OVERSIZE Превышен максимально допустимый размер вложения (30 Кб).
KEYBOARD_ERROR Весь переданный объект клавиатуры не прошел валидацию.
KEYBOARD_OVERSIZE Превышен максимально допустимый размер клавиатуры (30 Кб).
MENU_ERROR Весь переданный объект меню не прошел валидацию.
MENU_OVERSIZE Превышен максимально допустимый размер меню (30 Кб).
WRONG_REQUEST Что-то пошло не так.


Отправка изменения сообщения чат-бота

Rest-метод: imbot.message.update

Вызов метода:
$result = restCommand('imbot.message.update', Array(

    'BOT_ID' => 39, // Идентификатор чат-бота, от которого идет запрос, можно не указывать, если бот всего один
    'MESSAGE_ID' => 1, // Идентификатор сообщения
    'MESSAGE' => 'answer text' // Текст сообщения, необязательное поле, если передать пустое значение - сообщение будет удалено
    'ATTACH' => '' // Вложение, необязательное поле
    'KEYBOARD' => '' // Клавиатура, необязательное поле
    'MENU' => '' // Контекстное меню, необязательное поле 
    'URL_PREVIEW' => 'Y' // Преобразовывать ссылки в rich-ссылки, необязательное поле

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Ссылки по теме:

Как работать с набираемыми клавиатурами
Как работать с вложениями
Форматирование сообщения
Событие на получение чат-ботом сообщения ONIMBOTMESSAGEADD

Возможные ошибки:

Код ошибкиОписание ошибки
BOT_ID_ERROR Чат-бот не найден.
APP_ID_ERROR Чат-бот не принадлежит этому приложению, работать можно только с чат-ботами, установленными в рамках приложения.
MESSAGE_EMPTY Не передан текст сообщения.
CANT_EDIT_MESSAGE У вас нет доступа к этому сообщению или время на его модификацию истекло (после публикации прошло более 3-х суток).
ATTACH_ERROR Весь переданный объект вложения не прошел валидацию.
ATTACH_OVERSIZE Превышен максимально допустимый размер вложения (30 Кб).
KEYBOARD_ERROR Весь переданный объект клавиатуры не прошел валидацию.
KEYBOARD_OVERSIZE Превышен максимально допустимый размер клавиатуры (30 Кб).
MENU_ERROR Весь переданный объект меню не прошел валидацию.
MENU_OVERSIZE Превышен максимально допустимый размер меню (30 Кб).


Удаление сообщения чат-бота

Rest-метод: imbot.message.delete

Вызов метода:
$result = restCommand('imbot.message.delete', Array(

    'BOT_ID' => 39, // Идентификатор чат-бота, от которого идет запрос, можно не указывать, если бот всего один
    'MESSAGE_ID' => 1, // Идентификатор сообщения
    'COMPLETE' => 'N', //  Если сообщение нужно удалить полностью, без следов, то необходимо указать Y (необязательный параметр)

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
BOT_ID_ERROR Чат-бот не найден.
APP_ID_ERROR Чат-бот не принадлежит этому приложению, работать можно только с чат-ботами, установленными в рамках приложения.
MESSAGE_ID_ERROR Не передан идентификатор сообщения.
CANT_EDIT_MESSAGE У вас нет доступа к этому сообщению.


Установка «Мне нравится»

Rest-метод: imbot.message.like

Вызов метода:
$result = restCommand('imbot.message.like', Array(

    'BOT_ID' => 39, // Идентификатор чат-бота, от которого идет запрос, можно не указывать, если чат-бот всего один
    'MESSAGE_ID' => 1, // Идентификатор сообщения (любое сообщение, отправленное в личных диалогах или в групповых чатах, где присутствует чат-бот)
    'ACTION' => 'auto' // Действие, связанное с методом: plus - поставит метку «Мне нравится»; minus - снимет метку «Мне нравится»; auto - автоматически вычислит, нужно поставить или снять метку. Если не указывать, будет работать в режиме auto

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
BOT_ID_ERROR Чат-бот не найден.
APP_ID_ERROR Чат-бот не принадлежит этому приложению, работать можно только с чат-ботами, установленными в рамках приложения.
MESSAGE_ID_ERROR Не передан идентификатор сообщения.
WITHOUT_CHANGES После вызова состоянии статуса «Мне нравится» не изменилось.


Отправка сообщения «Чат-бот пишет сообщение...»

Rest-метод: imbot.chat.sendTyping

Вызов метода:
$result = restCommand('imbot.chat.sendTyping', Array(

    'BOT_ID' => 39, // Идентификатор чат-бота, от которого идет запрос, можно не указывать, если бот всего один
    'DIALOG_ID' => 1, // Идентификатор диалога, это либо USER_ID пользователя, либо chatXX - где XX идентификатор чата, передается в событии ONIMBOTMESSAGEADD и ONIMJOINCHAT

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Ссылки по теме:

Событие на получение чат-ботом сообщения ONIMBOTMESSAGEADD
Событие на получение информации чат-ботом о включении его в чат (или личную переписку) ONIMJOINCHAT

Возможные ошибки:

Код ошибкиОписание ошибки
BOT_ID_ERROR Чат-бот не найден.
DIALOG_ID_EMPTY Не передан идентификатор диалога.


1
Курсы разработаны в компании «1С-Битрикс»