Инлайн-кнопки в Телеграмм

Эта механика позволяет создавать инлайн-кнопки в сообщениях Telegram. Кнопки могут быть разных типов: открывать веб-приложение, переходить по ссылке, отправлять команду или запрашивать контакт. Вот как это работает:

Кнопки в одну строку:


Используйте маркер ##INLINE:...##, чтобы указать кнопки.

Кнопки разделяются символом ;

Каждая строка кнопок заключается в квадратные скобки [...].

На какую дату вы хотели бы записаться?##INLINE:[Сегодня;Завтра;Другая]##

Несколько строк кнопок:


Сообщение: ##INLINE:[Кнопка 1; Кнопка 2][Открыть сайт(url:https://example.com)]##
Результат:

Первая строка: "Кнопка 1" и "Кнопка 2".

Вторая строка: "Открыть сайт".

Я могу очень многое, выбирай нужный пункт меню##INLINE:[Эксперт по настройке ботов][Анализатор ошибок в логах]##


🔵 КАК СДЕЛАТЬ ПРОСТУЮ КНОПКУ

Самый простой вариант — старый добрый формат:

##INLINE:[Удалить(cmd:delete)]##
##INLINE:[Открыть сайт -> url:https://example.com]##


🎨 КАК ДОБАВИТЬ КРАСОТУ (СТИЛИ)

Хотите цветную кнопку? Добавьте `style:цвет`.

##INLINE:[Удалить|style:danger -> cmd:delete]##
##INLINE:[Сохранить|style:success -> cmd:save]##


Какие бывают стили:
- `danger` — красная (опасно, удалить)
- `success` — зелёная (сохранить, готово)
- `primary` — синяя (основное действие)
- `secondary` — серая (второстепенное)


🖼 КАК ДОБАВИТЬ ИКОНКУ

Хотите картинку на кнопке? Добавьте `icon:числовой_код`.

##INLINE:[Настройки|icon:5370869711888194012 -> cmd:settings]##


✨ КАК СДЕЛАТЬ КРАСИВО (ИКОНКА + СТИЛЬ)

Объединяем иконку и стиль через вертикальную черту `|`:

##INLINE:[Удалить|icon:5312536423|style:danger -> cmd:delete]##

Порядок не важен. Можно так:

##INLINE:[Удалить|style:danger|icon:5312536423 -> cmd:delete]##


📋 ГЛАВНОЕ ЗАПОМНИТЬ

1. Кнопка всегда начинается с `##INLINE:[` и заканчивается `]##`
2. Текст кнопки — сразу после открывающей скобки
3. Параметры (стиль, иконка) пишутся через `|`
4. Действие — после стрелочки `->`
5. Старые форматы не ломаются, можно пользоваться и так

🚀 ШПАРГАЛКА (КОПИРУЙТЕ И МЕНЯЙТЕ)

##INLINE:[Текст кнопки -> cmd:команда]##
##INLINE:[Текст кнопки|style:название -> cmd:команда]##
##INLINE:[Текст кнопки|icon:код -> cmd:команда]##
##INLINE:[Текст кнопки|icon:код|style:название -> cmd:команда]##
##INLINE:[Текст кнопки -> url:https://ссылка]##

❓ ЕСЛИ ЧТО-ТО НЕ РАБОТАЕТ

Проверьте:
- Есть ли `##INLINE:[` в самом начале?
- Есть ли `]##` в самом конце?
- Не пропущена ли стрелочка `->`?
- Нет ли лишних пробелов перед `|`?

Типы кнопок:



Текст с callback_data:


Формат: Текст
Пример: Кнопка 1
Результат: Кнопка с текстом "Кнопка 1", которая отправляет callback_data = "Кнопка 1".

* Для callback_data используется только первые 31 символ текста или команды.

Кнопка с URL:


Формат: Текст(url:ссылка)
Пример: Открыть сайт(url:https://example.com)
Результат: Кнопка с текстом "Открыть сайт", которая открывает указанную ссылку.

Пример:
Сообщение: ##INLINE:[Открыть сайт(url:https://example.com)]##
Результат: Кнопка с текстом "Открыть сайт", которая открывает ссылку.

Добро пожаловать!##INLINE:[Открыть сайт(url:https://pro-talk.ru)]##



Кнопка с веб-приложением:


Формат: Текст(webapp:ссылка)
Пример: Открыть приложение(webapp:https://example.com)
Результат: Кнопка с текстом "Открыть приложение", которая открывает веб-приложение по ссылке.

Кнопка с командой:


Формат: Текст(cmd:команда)
Пример: Показать погоду(cmd:weather)
Результат: Кнопка с текстом "Показать погоду", которая отправляет callback_data = "weather".

Выбирай нужный пункт меню##INLINE:[Помощник по документам (cmd:/12345)][Продавец виджета (cmd:/54321)]##

* где /12345 и /54321 - это номера ботов из того же аккаунта, что и бот с кнопками меню

Я могу очень многое, выбирай нужный пункт меню##INLINE:[Рестарт (cmd:/restart)][Очистить контекст диалога(cmd:/clear)]##


Кнопка для запроса контакта:


Формат: Текст(contact)
Пример: Отправить контакт(contact)
Результат: Кнопка с текстом "Отправить контакт", которая запрашивает контакт пользователя.

Формат v2 (с использованием ->):



Более простой и читаемый формат.

Формат: Текст -> тип:значение
Примеры:

Открыть сайт -> url:https://example.com

Показать погоду -> cmd:weather

Открыть приложение -> webapp:https://example.com

Примеры использования

Сообщение: ##INLINE:[Открыть сайт -> url:https://example.com; Показать погоду -> cmd:weather]##
Результат:

Кнопка "Открыть сайт" с ссылкой.

Кнопка "Показать погоду" с командой.

Полезные советы:


Используйте квадратные скобки [...] для создания строк кнопок.

Если нужно добавить текст перед кнопками, используйте формат (Текст)[...].
Пример: ##INLINE:(Выберите действие)[Кнопка 1; Кнопка 2]##.

Для callback_data используется только первые 31 символ текста или команды.