Просмотров: 7008 (Статистика ведётся с 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