🧚‍♀️Оформление текста (Markdown)

Когда нужен

Если требуется отправить через HTTP-запрос не просто текст, а, например:

  • выделенный жирным

  • выделенный курсивом

  • с ссылками на внешние источники

  • с ссылками на TG аккаунты

то при использовании API нужно выбирать отправку с Markdown или HTML

Пример запроса

curl --location 'https://api.telegram.org/botBOTTOKEN/sendMessage' \
--header 'Content-Type: application/json' \
--data '{
    "chat_id": CHATID,
    "parse_mode": "MarkdownV2",
    "text": "[NAME](tg://user?id=USERID)\n\nHi"
}'

В этом запросе нужно:

  • изменить BOTTOKEN на токен вашего бота, который вы получили от @BotFather

  • изменить CHATID на ID чата, в который нужно отправить сообщение (или ID пользователя, если хотите отправить сообщение в лс)

  • если требуется добавить добавить упоминание пользователя, то:

    • изменить NAME на имя пользователя (или другой текст, который должен стать ссылкой на него)

    • изменить USERID на user_id пользователя, которого хотите упомянуть

Символы, которые нужно экранировать

Некоторые символы используются в Markdown для передачи нужного функционала (например, чтобы выделить какое-то слово курсивом или вставить в текст гиперссылку)

Поэтому, чтобы Telegram определил их как часть текста, то нужно добавлять перед ними символ \

symbols = [
    '[', ']', '.', '*', '_', '`', '-', '=', '(', ')', '!', '"'
] # часть символов, которые нужно экранировать

text = text.replace('[', '\[') # пример экранирования

Last updated