Просмотров: 10571
Дата последнего изменения: 17.05.2022
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
4
5
Регистрация команды для обработки чат-ботом
Обратите внимание! Метод указан с использованием функции
restCommand - это метод отправки данных в
Битрикс24, данный метод есть в примере
ЭхоБота и представлен здесь в качестве примера. Вы можете использовать свою функцию или javascript-метод
BX24.callMethod или
bitrix24-php-sdk.
Обратите внимание! Для обработки команды нужно, чтобы в приложении была обработка события добавления команды
ONIMCOMMANDADD.
Вызов метода
$result = restCommand('imbot.command.register', Array(
'BOT_ID' => 62, // Идентификатор чат-бота владельца команды
'COMMAND' => 'echo', // Текст команды, которую пользователь будет вводить в чатах
'COMMON' => 'Y', // Если указан Y, то команда доступна во всех чатах, если N - то доступна только в тех, где присутствует чат-бот
'HIDDEN' => 'N', // Скрытая команда или нет - по умолчанию N
'EXTRANET_SUPPORT' => 'N', // Доступна ли команда пользователям Экстранет, по умолчанию N
'CLIENT_ID' => '', // Строковый идентификатор чат-бота, используется только в режиме Вебхуков
'LANG' => Array( // Массив переводов, обязательно указывать как минимум для RU и EN
Array('LANGUAGE_ID' => 'en', 'TITLE' => 'Get echo message', 'PARAMS' => 'some text'), // Язык, описание команды, какие данные после команды нужно вводить.
),
'EVENT_COMMAND_ADD' => 'http://www.hazz/chatApi/bot.php', // Ссылка на обработчик для команд
), $_REQUEST["auth"]);
Важно! Обязательно указывать массив переводов LANG
как минимум для RU и EN. Если нет фразы для BY, UA, KZ, то показываются по умолчанию фразы RU, если в RU нет фразы - команда скрывается. Для остальных языков то же самое - если нет фраз, то по умолчанию показываются фразы EN, если в EN нет фразы, то команда скрывается в публичной части.
Результат выполнения
Идентификатор команды COMMAND_ID
или ошибка.
Ссылки по теме
Возможные коды ошибок
Код |
Описание |
EVENT_COMMAND_ADD |
Ссылка обработчик события невалидная или не указана. |
COMMAND_ERROR |
Не указан текст команды, на которую должен откликаться чат-бот. |
BOT_ID_ERROR |
Чат-бот не найден. |
APP_ID_ERROR |
Чат-бот не принадлежит этому приложению. Работать можно только с чат-ботами, установленными в рамках приложения. |
LANG_ERROR |
Не переданы языковые фразы для видимой команды. |
WRONG_REQUEST |
Что-то пошло не так. |
|
Внимание! Если планируется устанавливать более одной команды для чат-бота: Bitrix24 Rest накладывает ограничение на работу с обработчиками событий - обработчик может быть только один на одно приложение. Поэтому при регистрации второй команды ссылки на обработчики EVENT_COMMAND_ADD должны быть такими же, как и у первой команды.
Если необходимо обрабатывать несколько команд в рамках одного приложения, то необходимо предусмотреть это внутри обработчика событий. Для этого при поступлении события передается массив команд, чтобы можно было корректно их обработать.