Message Box | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Подсказка | ||
---|---|---|
| ||
Данный кейс поддерживается телеграм ботом LiveDemo - уникальный айди – ID этого кейса: 139952299. |
В данной этой статье мы разберем, каким образом можно отправить сообщение с inline-кнопками в Telegram.
Что такое inline-кнопка
...
В отличие от обычных кнопок, которые используются для выбора вариантов ответов в диалоге с ботом, inline-кнопки используются для перехода по ссылкам, и . Они размещаются прямо под сообщением бота.
Пример того, как выглядит сообщение Сообщение с inline-кнопками:
Типы inline-кнопок
API Telegram позволяет создавать inline-кнопки двух типов:1)
- Кнопка для перехода по ссылке
...
- . Ссылка, связанная с кнопкой, будет открыта во внешнем браузере.
...
- Кнопка для открытия веб-приложения (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}& |
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.0.text |
reply_markup.inline_keyboard.0.0.url |
reply_markup.inline_keyboard.0.1.text |
reply_markup.inline_keyboard.0.1.url |
Для распределения кнопок в несколько строк, необходимо заменить замените первый ноль на номер строки. Нумерация строк также начинается с нуля. В каждой строке своя нумерация кнопок. Например, для отправки двух кнопок в две строки поля будут такие:
Название поля |
---|
reply_markup.inline_keyboard.0.0.text |
reply_markup.inline_keyboard.0.0.url |
reply_markup.inline_keyboard.1.0.text |
reply_markup.inline_keyboard.1.0.url |
Таким образом можно добавлять по несколько кнопок в каждую строку. Например, с 4 3 кнопками и нумерацией 0.0, 0.1, 1.0 , 1.1 можно получить такой результат:
Так Таким образом вы можете отправить сообщение с inline-кнопками в Telegram.
Пример работы
...
Нажатие Нажмите на кнопку со ссылкой на сайт:.
При подтверждении ссылка откроется в браузере.
Нажатие на кнопку веб-приложения:
При подтверждении ссылка откроется как веб-приложение внутри Telegram:
Откроется окошко подтверждения, нажмите ОК, чтобы открыть веб-приложение внутри Telegram.
Откроется веб-приложение.