ruskar
@ruskar
Conflict Intelligence Team

Как создавать внутренние ссылки в боте Telegram?

В Telegram боты умеют отсылать не только простой, но и отформатированный текст, в том числе содержащий внутри себя ссылки. Для этого при отправке сообщения ставится параметр parse_mode = MARKDOWN или parse_mode = HTML.

Я хочу поставить в тексте отправляемого сообщения внутреннюю ссылку, т.е., например, команду на выполнение следующего шага, действия бота. Обычно в этом случае прибегают к «кастомной клавиатуре», но в моём случае получается слишком много кнопок клавиатуры со слишком длинным текстом. Да, можно просто пронумеровать команды и выводить клавиатуру с кнопками-цифрами, но от этого резко теряется читабельность и удобство взаимодействия с ботом.

Можно ставить ссылку вида telegram.me/my_bot?nextcommand, но она обязательно открывает сначала браузер, так что этот вариант тоже не подходит. Есть ли какая-то возможность вставлять в отправляемые ботом сообщения внутренние ссылки?
  • Вопрос задан
  • 7964 просмотра
Пригласить эксперта
Ответы на вопрос 2
@nllm
Можете делать /nextcommand и все
либо /step_{key} - где key генерируется индивидуально для пользователя в данный момент и где-то хранится.
На самом деле очень много свободы действий, выбирайте то, что удобнее вам в реализации и пользователю в использовании.

Про кастомную клавиатуру: сделайте inline клавиатуру, метки короткие, а параметры в callback-запросе передавайте.
Ответ написан
@Polimer
В чистом виде внутренние ссылки пока нельзя. Можно кастомные inline-клавиатуры непосредственно под сообщением (под каждым сообщением - своя клавиатура). Делайте разные сообщения от бота по разным тематикам с разным набором кнопок. К нужному сообщению можно всегда прокрутить и нажать нужную кнопку. В отличии от обычной клавиатуры, на встроенной в событии нажатия используется в качестве данных не надпись на кнопке, а callback-data. Соответственно надписи на кнопках для людей, callback-data для бота.
https://core.telegram.org/bots/2-0-intro#switch-to...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы