我試圖讓FB信使API使用Python的瓶,調整下面的說明工作的Facebook Messenger的:https://developers.facebook.com/docs/messenger-platform/quickstart與瓶
到目前爲止,事情已經做得較好。我驗證了我的回調,並且能夠接收我在我的頁面上使用Messenger發送的消息,就像在我的heroku服務器中的日誌中指出我的服務器正在接收相應的數據包。現在,我正在努力向客戶端發送迴應消息,以傳遞我的應用程序。特別是,我不知道如何從教程瓶執行以下部分:
var token = "<page_access_token>";
function sendTextMessage(sender, text) {
messageData = {
text:text
}
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending message: ', error);
} else if (response.body.error) {
console.log('Error: ', response.body.error);
}
});
}
到目前爲止,我在我的服務器端瓶模塊該位:
@app.route('/', methods=["GET", "POST"])
def chatbot_response():
data = json.loads(req_data)
sender_id = data["entry"][0]["messaging"][0]["sender"]["id"]
url = "https://graph.facebook.com/v2.6/me/messages"
qs_value = {"access_token": TOKEN_OMITTED}
json_response = {"recipient": {"id": sender_id}, "message": "this is a test response message"}
response = ("my response text", 200, {"url": url, "qs": qs_value, "method": "POST", "json": json_response})
return response
然而,運行這個,我發現雖然我可以處理有人發送我的頁面,但它不會發送回應(即沒有在信使聊天框中顯示)。我是Flask的新手,所以任何幫助都可以通過與Flask上面的Javascript代碼相同的方式得到很大的讚賞。
謝謝!
「簡單地做一個return語句不會返回任何東西給請求者」這是不正確的。 Flask將函數的返回值自動轉換爲Response對象。 http://flask.pocoo.org/docs/0.10/quickstart/#about-responses –