Как сделать, чтобы при нажатии на текст копировался 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>'