【发布时间】:2018-01-12 16:10:35
【问题描述】:
我正在尝试从用于在 Messenger 上创建聊天机器人的快速回复中获取有效负载,但我不断收到此错误:KeyError: 'quick_reply'。我正在使用 python 来创建机器人。我已经尝试了所有可以想象的方法,例如:
@app.route('/', methods=['POST'])
def webhook():
data = request.get_json()
log(data)
if data["object"] == "page":
for entry in data["entry"]:
for messaging_event in entry["messaging"]:
if messaging_event.get("message"):
recieved(messaging_event)
message_text = messaging_event["message"]["quick_reply"]["payload"]
if messaging_event.get("delivery"):
pass
if messaging_event.get("optin"):
pass
if messaging_event.get("postback"):
pass
return "ok", 200
但是每个人都给我同样的问题。我查看了在线和文档,但似乎没有答案。有什么见解吗?
【问题讨论】:
-
能否贴出完整的代码,包括messaging_event的设置位置?
-
是的,这是我的完整代码@amuramoto
-
您确定快速回复是收到的内容,而不是消息回显或其他事件吗?尝试将条件
if messaging_event.get("message"):更改为if messaging_event.message.get("quick_reply"):以确保您仅在收到实际快速回复时才输入该块。 -
我刚试过这个,不幸的是它没有工作@amuramoto我只是不确定为什么我不能得到有效载荷
-
您已经验证,当您使用
if messaging_event.message.get("quick_reply")门禁时,您的代码会进入该区块?如果是这种情况,我会检查quick_reply是否是一个对象,而不是出于某种原因的字符串。
标签: python facebook bots facebook-messenger facebook-messenger-bot