2017-08-26 28 views
0

我正在Python中構建Facebook Messenger bot,我的快速回復腳本不工作,但我已經知道如何發送簡單的文本消息和通用模板。這是到目前爲止我的代碼:如何在python chatbot中使用快速回復(FB)?

這一個工程:

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) 

在這個例子中,標題,文本和有效載荷被評論,因爲我試圖使腳本與位置等基本一樣工作......但我不斷收到迴應4 00爲'問題'; '文本'工作得很好。

+0

的可能的複製[如何解決<響應\ [400 \]>而做出POST在Python?](https://stackoverflow.com/questions/39257168/how-to-fix-response-400-while-make-a-post-in-python) – DyZ

回答

0

「text」: 「some string」」attachment」: []要求使用快速回復時。

檢查在FB Docs

0

所需的解決方案是把「文字」鍵旁邊「quick_replies」的領域;否則 - 裏面在FB文件(適用於JavaScript)提到列表/字典 「quick_replies」 - 它不會工作:

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