【问题标题】:How to send a message when click in an InlineKeyboardButton (Telegram & Python)单击 InlineKeyboardButton 时如何发送消息(电报和 Python)
【发布时间】:2022-01-27 00:04:36
【问题描述】:

我正在使用 TelegramBotAPI 库在 python 中创建一个电报机器人。 我有这段代码来显示内联键盘

def gen_markup():
    markup = InlineKeyboardMarkup()
    markup.row_width = 2
    markup.add(InlineKeyboardButton("Yes", callback_data="cb_yes"),
                               InlineKeyboardButton("No", callback_data="cb_no"))
    return markup

并且在发送命令时看到这个键盘的功能。 我也有这段代码可以在按下按钮时执行操作。

@bot.callback_query_handler(func=lambda call: True)
def send_welcome(call):
    if call.data == "cb_yes":
        bot.answer_callback_query(call.id, "YES")
    elif call.data == "cb_no":
        bot.send_message(call.id, "NO")

这只会在屏幕上显示文本,几秒钟后它会消失。我怎样才能发送短信?

谢谢

【问题讨论】:

    标签: python telegram py-telegram-bot-api


    【解决方案1】:

    CallbackQuery 包含消息对象,其中包含可以与send_message() 一起使用的聊天 ID

    @bot.callback_query_handler(func=lambda call: True)
    def callback_query(call):
        if call.data == "cb_yes":
            bot.answer_callback_query(call.id, "Answer is Yes")
        elif call.data == "cb_no":
            bot.send_message(call.message.chat.id, "This is a message")
    

    【讨论】:

    • 当用户点击按钮时如何发送消息?我尝试了一些方法,但它们不起作用。我认为是因为 bot.callback_query 和 bot.message_handler(发送消息)冲突。谢谢
    • @enricozz 试试 w4rr1or 发送的代码,你会发现它可以工作并发送消息
    猜你喜欢
    • 2020-10-05
    • 2021-10-28
    • 2022-07-05
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 2016-09-22
    • 2022-11-22
    相关资源
    最近更新 更多