Инлайн-кнопки
В канале Telegram есть возможность добавить инлайн-кнопки. Такие кнопки будут отображаться не под полем ввода, а над.
Возможность добавить инлайн-кнопки есть только в Telegram, другие каналы такую функциональность не поддерживают.
Обычные кнопки располагаются под полем ввода текста («Написать сообщение…»). Количество кнопок в строке определяется автоматически, в зависимости от количества кнопок и объема текста в них. На одном экране может быть не более восьми кнопок:
Инлайн-кнопки располагаются над полем ввода текста:
Как использовать инлайн-кнопки?
Возьмем, к примеру, такой экран. Изначально кнопки на нем будут отображаться в Telegram как обычные кнопки:
Есть два способа превратить эти обычные кнопки в инлайн-кнопки.
Добавить на нужный экран кнопку со ссылкой
Чтобы обычные кнопки превратились в Инлайн-кнопки, добавьте на этот же экран хотя бы одну кнопку-ссылку. Например, вы можете добавить ссылку на ваш сайт.
Для этого:
- нажмите + КНОПКА
- введите название кнопки и нажмите Enter
- нажмите на значок ссылки
- вставьте URL на нужный ресурс
- нажмите Сохранить
После этого нужно нажать Опубликовать, чтобы изменения пришли в канал. Дождитесь всплывающего сообщения о том, что сценарий был опубликован на канале Telegram.
После публикации снова протестируйте бота. В нашем случае кнопки располагаются на стартовом (самом левом и самом верхнем) экране, поэтому, чтобы проверить, пошлем боту /start
.
Добавить «пустую» кнопку
Второй способ подойдет вам, если кнопка-ссылка не подходит для вашего сценария.
- нажмите + КНОПКА
- наберите пробел и нажмите Enter. Текст кнопки будет содержать только один символ — пробел
- нажмите на значок ссылки, вставьте любую ссылку
- нажмите Сохранить
Нажмите Опубликовать и дождитесь сообщения о публикации в канал.
Затем пройдите ветку заново. Например, пошлите боту /start
.
Обычные кнопки превратятся в Инлайн-кнопки, а кнопка, которая содержит только символ пробела, отображаться не будет.
Как запомнить выбор пользователя
Вы можете получить текст выбранной инлайн-кнопки в Telegram через переменную $queryText
. Для этого после блока с инлайн-кнопками добавьте блок Условия и сохраните значение $queryText
в новую переменную $choice
через выражение $choice = String($queryText).split(';')[1]
.
Особенности канала Telegram
Есть некоторые особенности отображения кнопок, которые нужно учитывать.
-
Не всегда сразу же можно увидеть новый вариант кнопок. Иногда нужно пройти по другой ветке бота, затем послать
/start
и вернуться на экран с кнопками. -
Если у вас есть два экрана, которые идут друг после друга, и на первом экране обычные кнопки, а на втором инлайн-кнопки, то при переходе на экран с Инлайн-кнопками, обычные кнопки не исчезнут.
К примеру, возьмем два таких экрана. На экране, выделенном синим, обычные кнопки. На экране, выделенном зеленым, Инлайн-кнопки.
После нажатия на кнопку «цены» бот перейдет на второй экран, на котором должны отображаться Инлайн-кнопки. Но из-за особенностей канала, обычные кнопки не исчезнут.
Вы можете пользоваться таким поведением, если для вас даже удобно отображать два вида кнопок. Либо, если для вас такое поведение неудобно, разделяйте экраны с обычными кнопками от экранов с Инлайн-кнопками другими экранами текста с интентами вместо кнопок, чтобы не было такой последовательности.