10

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)

Tibebes. M
  • 6,940
  • 5
  • 15
  • 36
DanDyFun
  • 141
  • 1
  • 1
  • 5

3 Answers3

22

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?

enter image description here


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

enter image description here


EDIT: Bases on OP's comment you're looking for a 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
)
0stone0
  • 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
2

You can simply by editing the text in following manner Write ``` then write your text then again write that 3 character . Bingo!!!

Craziks
  • 51
  • 3
1

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:

check_all() failed: 'NoneType' object has no attribute 'driver'

and with a single click on the message, it gets copied to clipboard!

Text copied to clipboard

A P
  • 2,131
  • 2
  • 24
  • 36