Набираемые клавиатуры позволят пользователю взаимодействовать с чат-ботом, просто нажимая на кнопки.
Клавиатура – это часть сообщения, при создании сообщения нужно добавить ключ KEYBOARD и передать параметры.
Методы, которые поддерживают клавиатуру:
Рассмотрим на примере это сообщение:
restCommand('imbot.command.answer', Array( "COMMAND_ID" => $command['COMMAND_ID'], "MESSAGE_ID" => $command['MESSAGE_ID'], "MESSAGE" => "Hello! My name is EchoBot :)[br] I designed to answer your questions!", "KEYBOARD" => Array( Array( "TEXT" => "Bitrix24", "LINK" => "http://bitrix24.com", "BG_COLOR" => "#29619b", "TEXT_COLOR" => "#fff", "DISPLAY" => "LINE", ), Array( "TEXT" => "BitBucket", "LINK" => "https://bitbucket.org/Bitrix24com/rest-bot-echotest", "BG_COLOR" => "#2a4c7c", "TEXT_COLOR" => "#fff", "DISPLAY" => "LINE", ), Array("TYPE" => "NEWLINE"), // перенос строки Array("TEXT" => "Echo", "COMMAND" => "echo", "COMMAND_PARAMS" => "test from keyboard", "DISPLAY" => "LINE"), Array("TEXT" => "List", "COMMAND" => "echoList", "DISPLAY" => "LINE"), Array("TEXT" => "Help", "COMMAND" => "help", "DISPLAY" => "LINE"), ) ), $_REQUEST["auth"]);
Клавиатура - это набор кнопок, каждая кнопка может состоять из следующих ключей:
Обязательными полями является TEXT и либо поле LINK, либо поле COMMAND.
Если указан ключ LINK, то кнопка становится внешней ссылкой. Если указаны поля COMMAND и COMMAND_PARAMS, то кнопка является действием и отправляет команду чат-боту, не публикуя ее в чат.
Если указаны поля APP_ID и APP_PARAMS, то кнопка откроет окно с приложением для чата.
Если необходимо сделать две строки с кнопками в ряд, то для их разделения нужно добавить кнопку со следующим содержимым: "TYPE" => "NEWLINE"
.
Для обработки нажатия кнопок клавиатуры, используются команды.
"HIDDEN" => "Y"
).
В кнопке указывается следующие ключи:
"COMMAND" => "page", // команда, которая будет отправлена чат-боту "COMMAND_PARAMS" => "1", // параметры для команды
Нажатие на кнопку сгенирирует событие ONIMCOMMANDADD.
Внутри этого события нужно либо создать новое сообщение, либо отредактировать старое (тем самым формируя эффект постраничной навигации).
Готовый пример, можно посмотреть в обновленной версии ЭхоБота,
Приложение для чата, запускаемые из контекстного меню, работают по принципам Контекстного приложения.