远程机器人。 @bot.callback_query_handler 不起作用

问题描述 投票:0回答:1

有人可以告诉我我做错了什么吗?机器人向我发送了一个内联键盘,但是单击按钮后,我没有收到任何回调(甚至记录器也没有发送任何内容)。

此外,如果我将 URL 传递给 inlineKeyboardButton,它可以正常工作

@bot.message_handler()
def add_city(message):
    if user_status[message.chat.id] == Statuses.AddCity:
        logger.info("User adding the city")
        request = {
            "name": message.text
        }
        response = requests.post(f'{api_url}/api/users/{message.chat.id}/add-city', json=request, headers=headers)
        if response.status_code == 200:
            logger.info("User got city. Waiting for confirmation")
            data = response.json()
            user_status[message.chat.id] = Statuses.ConfirmCity
            markup = InlineKeyboardMarkup()
            markup.add(InlineKeyboardButton("Confirm", callback_data="Confirm"))
            markup.add(InlineKeyboardButton("Deny", callback_data="Deny"))

            bot.send_message(message.chat.id, f'{data.get("name")}', reply_markup=ReplyKeyboardRemove())
            bot.send_message(message.chat.id, "message")
            bot.send_message(message.chat.id, f'Підтверди що це саме те місто, яке ти хотів додати:',
                                   reply_markup=markup)
        else:
            logger.info("Bad Request")
            bot.send_message(message.chat.id, f'Виникла помилка при додаванні міста :(')

@bot.callback_query_handler(func=lambda call: True)
def handle_city_confirmation(call):
    logger.info(call)
    if user_status[call.message.chat.id] == Statuses.ConfirmCity:
        if user_status[call.chat.id] == Statuses.ConfirmCity:
            if call.data.split(' ')[0] == "Confirm":
                bot.send_message(call.message.chat.id, 'success')
            else:
                bot.send_message(call.message.chat.id, "deny")
        else:
            bot.send_message(call.message.chat.id, "fail")

python telegram py-telegram-bot-api telebot
1个回答
0
投票

解决方案是更新令牌。希望它能帮助某人

© www.soinside.com 2019 - 2024. All rights reserved.