Как сделать, чтобы при нажатии на текст копировался pytelegrambotapi

Пишу телеграмму боту. Столкнулся с такой проблемой. Мне нужно, чтобы бот отправлял сообщение (текст), при нажатии на которое он был скопирован (как токен от @BotFather)

4 ответа

Решение

Если я вас правильно понял, вы хотите отправить сообщение, что если пользователь нажмет, текст автоматически копируется в буфер обмена пользователя, так же, как бот-отец отправляет токен API?

Это делает MarkDown parse_mode; Отправить сообщение с&parse_mode=MarkDown и заключите 'нажимаемый' текст в обратные кавычки: '' '

Hi. `Press me!`!
https://api.telegram.org/bot<token>/sendMessage?chat_id=<id>&text=Hi! `Press me!`&parse_mode=MarkDown

РЕДАКТИРОВАТЬ: Основываясь на вашем комментарии, вы ищете решение для python-telegram-bot. Оттуда документация;

bot.send_message(chat_id=chat_id, 
                 text="*bold* _italic_ `fixed width font` [link](http://google.com).", 
                 parse_mode=telegram.ParseMode.MARKDOWN)

Вы можете просто отредактировать текст следующим образом: Напишите ``, затем напишите свой текст, а затем снова напишите эти 3 символа. Бинго !!!

Это решение сработало для меня для клиента Telegram Android, а также для клиента Telegram Desktop для 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). 

И затем обязательно установите режим разбора на уценку (я использую V2)

      bot.send_message(bot_chat_id, text, parse_mode='MarkdownV2') #chat_id is another unique identifier

Я отправил сообщение самому себе, чтобы продемонстрировать:

и одним нажатием на сообщение оно копируется в буфер обмена!

Я предпочитаю использовать HTML, потому что MarkDownV2 требует большого количества экранирования:

      copy_info = f'<code>{chat_info}</code>'
Другие вопросы по тегам