I am writing a telegram to the bot. I ran into such a problem. I need the bot to send a message (text) when clicked on which it was copied (as a token from @BotFather)
3 Answers
If I understand you correctly, you wish to send a message, that when the user presses it, the text is automatically copied to the user's clipboard, just like the BotFather sends the API token?
This is done by the MarkDown parse_mode
;
Send a message with &parse_mode=MarkDown
and wrap the 'pressable' text in back-ticks (`
):
Hi. `Press me!`!
https://api.telegram.org/bot<token>/sendMessage?chat_id=<id>&text=Hi! `Press me!`&parse_mode=MarkDown
EDIT:
Bases on OP's comment you're looking for a python-telegram-bot solution.
From there documentation;
bot.send_message(
chat_id=chat_id,
text="*bold* _italic_ `fixed width font` [link](http://google.com).",
parse_mode=telegram.ParseMode.MARKDOWN
)

- 34,288
- 4
- 39
- 64
-
Yes, but I do not quite understand how to realize it in the python. Let's say, there is a code snippet: bot.send_message(message.chat.id, 'Hello, my owner') How to do that the fragment of the text (owner) could be copied? – DanDyFun Jan 14 '20 at 06:51
-
Maybe: bot.send_message(message.chat.id, 'Hello, `my owner`', parse_mode=Markdown) ? – DanDyFun Jan 14 '20 at 07:38
-
Maybe: bot.send_message(message.chat.id, 'Hello, my \`owner\`', parse_mode=Markdown) ? – DanDyFun Jan 14 '20 at 07:39
You can simply by editing the text in following manner Write ``` then write your text then again write that 3 character . Bingo!!!

- 51
- 3
This solution worked for me for the Telegram Android Client as well as the Telegram Desktop client for windows.
bot = telebot.TeleBot(bot_token) #where bot_token is your unique identifier
text = "`" + text + "`" #now make sure the text has the backticks (leading and ending).
And then be sure to set the parse mode to markdown (I'm using V2)
bot.send_message(bot_chat_id, text, parse_mode='MarkdownV2') #chat_id is another unique identifier
I sent a message to myself to demonstrate:
and with a single click on the message, it gets copied to clipboard!

- 2,131
- 2
- 24
- 36