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)
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
)
my owner
', parse_mode=Markdown) ? –
Mahmud You can simply by editing the text in following manner Write ``` then write your text then again write that 3 character . Bingo!!!
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!
I prefer to use HTML because MarkDownV2 requires a lot of escaping:
copy_info = f'<code>{chat_info}</code>'
await botClient.SendTextMessageAsync(chatId, "Здравствуйте `текст для копирования` ", parseMode: ParseMode.Markdown);
Following what @craziks and @a-p said, either if you are writing the text by programming or in telegram itself, you can use BackTick (`) in below fashion to make copy-by-click text in telegram:
`mytext` # gives copy-by-click text by graying mytext
```mytext``` # like above but a label named "copy" will be shown above the message
© 2022 - 2025 — McMap. All rights reserved.