Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 2 Следующий »

В данной статье мы разберем, каким образом можно отправить сообщение с inline-кнопками в Telegram.

Что такое inline-кнопка?

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

Типы inline-кнопок

API Telegram позволяет создавать inline-кнопки двух типов:
1) Кнопка для перехода по ссылке:
Ссылка, связанная с кнопкой, будет открыта во внешнем браузере.
2) Кнопка для открытия веб-приложения (WebApp):
Ссылка, связанная с кнопкой, будет открыта как веб-приложение внутри встроенного в Telegram окна.

Как отправить сообщение с inline-кнопкой?

Для отправки такого сообщения потребуется использовать метод отправки сообщения в блоке запроса к серверу. Разберем подробнее:

Фрагмент сценария

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

Параметры блоков

1) Перед блоком запроса к серверу требуется установить блок результата, так как для отправки сообщения с помощью API потребуется создать несколько переменных и присвоить им значения:
bot_token - токен бота Telegram, который можно получить при создании бота в BotFather. Подробнее про создание бота в Telegram: Создание бота
chat_id - идентификатор чата, в который будет отправлено сообщение. Существует два возможных значения: для отправки сообщения в текущий чат, используется системная переменная {messengerUserId}. Для отправки сообщения в другой чат, можно ввести идентификатор нужного чата. Получить его можно с помощью IDBot в Telegram.
text - Текст отправляемого сообщения.

2) Затем необходимо установить блок запроса к серверу со следующими параметрами:
Тип запроса - POST
URL - https://api.telegram.org/bot{bot_token}/sendMessage?chat_id={chat_id}&parse_mode=Markdown&text={text}
Тип содержимого - json
В теле запроса передается текст кнопки, и ссылка, которая открывается при нажатии кнопки. Для каждой кнопки требуются два поля в теле запроса:
Для кнопки перехода по ссылке:
reply_markup.inline_keyboard.0.0.text - Текст кнопки.
reply_markup.inline_keyboard.0.0.url - Ссылка, которая откроется при нажатии кнопки.
Для кнопки открытия веб-приложения:
reply_markup.inline_keyboard.0.0.text - Текст кнопки.
reply_markup.inline_keyboard.0.0.web_app.url - Ссылка, которая откроется как веб-приложение внутри Telegram при нажатии кнопки.
Для отправки нескольких кнопок, необходимо добавить по два своих поля в теле запроса, заменяя в их названии второй ноль на нумерацию кнопки. Счет начинается с нуля, поэтому у первой кнопки будет номер 0. Например, для отправки второй кнопки поля будут такие:
reply_markup.inline_keyboard.0.1.text
reply_markup.inline_keyboard.0.1.url

Таким образом вы можете отправить сообщение с inline-кнопками в Telegram.

Пример работы фрагмента

  • Нет меток