Разметка для меню приложения ОЛ Телеграм

Мы уже рассказывали о том, что приложение ОЛ Телеграм дает возможность создать собственное меню для Телеграм-бота. 

Если вкратце, внутри настроек меню вы можете указать текст ответов на определенные ключевые слова, а также код кнопок. 


В этой инструкции покажем, как работать с разметкой более детально.


***


Отправка кнопки в чат 

Стандартный код кнопки - текст в двойных квадратных скобках. Стандартное создание кнопок вызывает одноразовую клавиатуру. Это значит, что клавиатура исчезнет после нажатия на кнопку (если только по нажатию на кнопку вы не настроите вызов других кнопок).

В настройках:

В телеграме:

В этом примере видно, что когда в поле "сообщение" задан только код кнопки, бот пришлет кнопку И пустое сообщение 

Чтобы такого не было, можно указать текст перед кодом кнопки

Результат

Постоянная клавиатура

Постоянная клавиатура не исчезнет после нажатия на какую-то кнопку.

Чтобы создать такую, в поле Сообщение настроек меню введите конструкцию:

[#СохранятьКлавиатуру#][[Кнопка1]][[Кнопка2]]

В настройках:

В Телеграм:


Если впоследствии вам потребуется убрать клавиатуру, используйте команду

[#УбратьКлавиатуру#] 

В настройках:

В Телеграм:

Reply - окно. Ответ на выделенное сообщение

Телеграм умеет делать красивые ответы на сообщения, когда вы видите, на что именно был ответ:

Когда вы делаете такой ответ в чате и только готовитесь написать свое сообщение, вы видите вот такую картину:

Нечно подобное можно сделать с чат-ботом: можно настроить так, чтобы ваш ответ был на какое-то конкретное сообщение от бота. Более того, вы сможете редактировать плейсхолдер внутри поля для ввода ответа, например, подсказать какие-то варианты, и на каждый вариант настроить дальнейшие реакции бота.

Когда мы хотим, чтобы ответ был на определенное сообщение, потребуется задать в настройках Ожидание ответа. 

Код для ожидания ответа:

[[#ЖдатьОтвета#]]

Когда мы хотим поменять текст плейсхолдера, потребуется указать собственный текст после блока Подсказка.

Код для собственного текста плейсхолдера:

[#Подсказка|ВАШ ТЕКСТ#]

Проще всего осознать все это на примере:

Пускай у нас будет такая конструкция: Если пользователь выберет в меню вариант "База Знаний", бот должен попросить его уточнить запрос и внутри плейсхолдера дать варианты уточнений: цена, преимущества, другое. 

Внутри настроек задаем такую конструкцию:



На стороне Телеграм пишем в чат указанный ключ "База Знаний" и получаем вот такой ответ:

Ответное сообщение от бота сразу выделилось как реплай, в поле для ввода текста видим заданную нами подсказку.

Придумайте ответы для бота на каждый из вариантов, который вы задаете внутри подсказки, чтобы улучшить работу автоответчика. 

Внимание! Реплаи работают, если ваше сообщение ПОЛНОСТЬЮ совпадает со значением, указанным в поле Ключ. 

В нашем примере мы создали реплай на ключ "база знаний", соответственно, если написать другое окончание ("базу знаний"), или текст, внутри которого будет ключ ("расскажи про приложение база знаний"), запрограммированный ответ не появится.


Кнопки со ссылками

Чтобы создать кнопку, по нажатию на которую бот предложит открыть ссылку, требуется использовать модификатор #ВстроеннаяКлавиатура#. 

[#ВстроеннаяКлавиатура#][[ТЕКСТ ВНУТРИ КНОПКИ|url=ССЫЛКА]]

В результате получатся inline-кнопки (кнопки внутри чата, не под полем ввода сообщения).

Пример:

В Телеграме:


Телеграм функция Callback. Ключевые слова для запуска бизнес-процессов

Вы можете использовать функцию телеграм-ботов callback_data, чтобы сохранять с ее помощью ключевые фразы, по которым можно будет запускать бизнес-процессы. 

callback_data (str | Any, optional) – Данные для отправки в callback-запросе боту при нажатии кнопки, UTF-8 1-64 байт. Если экземпляр бота допускает произвольные данные обратного вызова, можно передать что угодно.

Для работы с callback_data требуется использовать модификатор #ВстроеннаяКлавиатура#. В результате получатся inline-кнопки (кнопки внутри чата, не под полем ввода сообщения).

Создайте кнопку в меню, используя конструкцию:

[#ВстроеннаяКлавиатура#][[ВАШ ТЕКСТ|callback_data=ВАШ ТЕКСТ 2]]

Например,

В телеграм в ответ на текст, заданный в поле Ключ, бот пришлет кнопку с указанным текстом

По нажатию на кнопку в универсальный список ОЛ Telegram - Сообщения запишется значение, указанное в callback_data=ВАШ ТЕКСТ 2. (В нашем примере это callback_data=close6)


Вы сможете настраивать бизнес-процессы, используя эти данные, а также задавать разметку кнопок не только в настройках меню приложения, но и в самих блоках бизнес-процессов.


Инлайн Кнопки (Inline), по нажатию добавляющие текст в поле сообщения

Кнопки, которые находятся внутри чата. С помощью разметки, описанной ниже, в приложении Открытые Линии Телеграм можно делать и такие кнопки.

Для работы с callback_data требуется использовать модификатор #ВстроеннаяКлавиатура#.

Чтобы создать inline-кнопку, по нажатию на которую в поле сообщения вставится текст, используйте следующую конструкцию:

[#ВстроеннаяКлавиатура#][[ВАШ ТЕКСТ|inline_query=ВАШ ПРЕФИКС]]

В итоге, по нажатию на кнопку в чат попадет текст из префикса. Например:

В Телеграм:

Кнопка запроса телефонного номера или местоположения

Вы можете отправить в чат свои контакт либо местопложение.

Внимание! Вызов работает только в личных сообщениях с ботом. Отправка локации работает только в мобильном приложении Телеграм, с десктопа пока нет возможности отправлять

Код кнопки для получения локации

[[ВАШ ТЕКСТ|request_location]]

Код кнопки для получения контакта

[[ВАШ ТЕКСТ|request_contact]]

Пример конструкции в настройках приложения

Что получается в Телеграм:

При нажатии на кнопку Локация (сейчас работает только с мобильной версией Телеграм) получается так:

При нажатии на кнопку Контакт получается так:

Полученные сообщения вы сможете форварднуть из чата с ботом в любые другие чаты или группы.