如何在python聊天机器人中使用快速回复(FB)?

时间:2017-08-26 21:47:58

标签: python facebook chatbot

我正在用Python构建一个Facebook Messenger机器人,我的快速回复脚本不是工作事件,虽然我已经知道如何发送简单的文本消息和通用模板。到目前为止,这是我的代码:

这个有效:

text = {
    "recipient": {
        "id": user_id
    },
    "message": {
        "text": "some text"
    }
}

这个没有:

question = {
    "recipient": {
        "id": user_id
    },
    "message": {
        "quick_replies": [{
            "content_type": "location"
            # "title": "RED",
            # "text": "red",
            # "payload": "red"
         }]
    }
}

两者的POST:

headers={"Content-Type": "application/json"}
requests.post('url', data = json.dumps(text), headers=headers)
requests.post('url', data = json.dumps(question), headers=headers)

在示例中,标题,文本和有效负载都被评论,因为我试图让脚本使用基本的位置作为位置...但我仍然收到400回答问题&#39 ;; '文本'工作得很好。

2 个答案:

答案 0 :(得分:0)

使用快速回复时,

“text”: “some string””attachment”: [] 必需

检查FB Docs

中所需的字段

答案 1 :(得分:0)

解决方案是放置" text"键旁边" quick_replies&#34 ;;否则 - 内部列表/字典" quick_replies"正如FB Docs(针对JavaScript)中所提到的那样 - 它不会起作用:

question = {
    "recipient": {
        "id": user_id
    },
    "message": {
        "text": "<THIS_IS_WHERE_THE_ACTUAL_TEXT_GOES>,
        "quick_replies": [{
            "content_type": "text"
            "title": "Option 1",
            "payload": "option1"
         }]
    }
}