如何解决此错误:AttributeError:'NoneType'对象没有属性'reply_text'?

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

我有一个按钮,它应该返回ask_wikipedia函数,所以我使用了CallbackQueryHandler,但是当我想调用ask_wikipedia函数时,我收到属性错误! 为什么? 我该如何解决它?

def Click_Button(update, context) :
    query = update.callback_query
    if query.data == "Research":
        ask_wikipedia(update, context)

query_handler = CallbackQueryHandler(Click_Button)

dispatcher.add_handler(query_handler)



def ask_wikipedia(update, context)  :
    update.message.reply_text('What do you want to know about ? 🔎')
    return About


当我单击按钮时,出现此错误

AttributeError: 'NoneType' object has no attribute 'reply_text'

我该如何修复它?

python telegram telegram-bot attributeerror python-telegram-bot
3个回答
5
投票

回复短信(来自

MessageHandler
)时可以使用
update.message.reply_text
,但在您的情况下,传入消息由接收不同对象的 CallbackHandler 管理。
您可以使用

回复
update.callback_query.message.edit_text(message)

1
投票
我的应用程序中遇到

AttributeError: 'NoneType' object has no attribute 'reply_text'

错误。经过调查发现,当用户编辑原始消息时会引发该问题,因此在更新中我得到 
edited_message
 而不是 
message
。所以我决定使用 
update.effective_chat.send_message
 而不是 
update.message.reply_text
 来避免这个问题。即使它不适合您,请记住它可能是更新中的 
edited_message
 而不是 
message
(写在这里是因为这个错误在谷歌中是第一个)


0
投票
使用 update. effective_chat.send_message 而不是 update.message.reply_text 为我解决了类似的问题。谢谢 Никита К

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