Ich versuche, die FB-Messenger-API arbeitet mit Python-Flasche zu bekommen, die Anpassung der folgenden Anweisungen: https://developers.facebook.com/docs/messenger-platform/quickstartFacebook Messenger mit Flask
Bisher haben sich die Dinge ziemlich gut gelaufen. Ich habe meinen Rückruf bestätigt und kann die Nachrichten, die ich mit Messenger auf meiner Seite sende, empfangen, da in den Protokollen auf meinem Heroku-Server angegeben wird, dass die entsprechenden Datenpakete von meinem Server empfangen werden. Im Moment habe ich Schwierigkeiten, Antworten an den Kunden zu senden, die meine App signalisieren. Insbesondere, ich bin nicht sicher, wie das folgende Segment aus dem Tutorial in Flask auszuführen:
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);
}
});
}
Bisher hat ich dieses Stück in meiner Server-Seite Flask-Modul:
@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
jedoch Wenn ich dies ausführe, finde ich, dass, während ich verarbeiten kann, was jemand meine Seite sendet, es keine Antwort zurückschickt (dh nichts erscheint in der Messenger-Chat-Box). Ich bin neu bei Flask, also würde jede Hilfe sehr geschätzt werden, wenn man das Äquivalent des Javascript-Bits oben in Flask tut.
Danke!
"Einfach eine return-Anweisung tun wird nichts an den Anforderer zurückgeben" Das ist nicht richtig. Flask wandelt den Rückgabewert der Funktion automatisch in ein Response-Objekt um. http://flask.pooco.org/docs/0.10/quickstart/#about-responses –