J'essaie d'obtenir l'API messager de FB de travail en utilisant Flask Python, adapter les instructions suivantes: https://developers.facebook.com/docs/messenger-platform/quickstartFacebook Messenger avec Flask
Jusqu'à présent, les choses ont été assez bien va. J'ai vérifié mon rappel et suis capable de recevoir les messages que j'envoie en utilisant Messenger sur ma page, comme dans les journaux de mon serveur heroku indiquent que les paquets de données appropriés sont reçus par mon serveur. En ce moment, je me bats un peu pour envoyer des réponses au client de messagerie mon application. En particulier, je ne sais pas comment effectuer le segment suivant du tutoriel en Flask:
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);
}
});
}
Jusqu'à présent, j'ai ce bit dans mon côté serveur module Flask:
@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
Cependant, En cours d'exécution, je trouve que même si je peux traiter ce que quelqu'un envoie à ma page, il n'envoie pas de réponse (c'est-à-dire que rien ne s'affiche dans la boîte de dialogue Messenger). Je suis nouveau à Flask donc toute aide serait grandement appréciée en faisant l'équivalent du bit Javascript ci-dessus dans Flask.
Merci!
«Il suffit de faire une déclaration de retour ne retournera rien au demandeur » Ce n'est pas correct. Flask transforme automatiquement la valeur de retour de la fonction en un objet Response. http://flask.pocoo.org/docs/0.10/quickstart/#about-responses –