Ich spiele um mit einem einfachen Facebook Messenger chatbot Aufbau und ich habe Probleme Nachrichten nacheinander gesendet werden.
In dem obigen Beispiel sollte es gedruckt Hallo! Hat, 1, 2, 3 , um. Ich verfolge derzeit die Facebook - Dokumente gefunden hier diese einfache Textnachricht - Funktion zu implementieren. Ich habe meinen Express Node.JS Server - Code unten enthalten:
Definition der sendTextMessage()Funktion:
var request = require(request);
function sendTextMessage(user, text) {
messageData = {
text: text
};
request({
url: https://graph.facebook.com/v2.6/me/messages,
qs: {access_token: PAGE_ACCESS_TOKEN},
method: POST,
json: {
recipient: {id: user},
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);
} else {
console.log(Message successfully send.)
}
});
}
Mit ihm eine Antwort zu senden:
sendTextMessage(user, Hello!);
sendTextMessage(user, 1);
sendTextMessage(user, 2);
sendTextMessage(user, 3);
Ich habe sogar versucht , eine einfache Warteschlange Implementierung , die Nachrichten - Warteschlangen und sendet nur eine Nachricht zu einem Zeitpunkt nach jedem requestErfolg Rückruf s‘. Das macht mich vermuten , dass ich nicht richtig mit der Messenger - API interagieren.
Hat jemand dieses Problem gestoßen? Wie kann ich Nachrichten erhalten in Folge zu schicken? Vielen Dank!
BEARBEITEN
Da ich eine einfache Warteschlange implementiert, aber noch erlebe dieses Problem, ich bin auch den Code für mein einfaches Warteschlangensystem hier.
var queue = [];
var queueProcessing = false;
function queueRequest(request) {
queue.push(request);
if (queueProcessing) {
return;
}
queueProcessing = true;
processQueue();
}
function processQueue() {
if (queue.length == 0) {
queueProcessing = false;
return;
}
var currentRequest = queue.shift();
request(currentRequest, function(error, response, body) {
if (error || response.body.error) {
console.log(Error sending messages!);
}
processQueue();
});
}
queueRequest(/* Message 1 */);
queueRequest(/* Message 2 */);
queueRequest(/* Message 3 */);
AKTUALISIEREN
Dieser „Fehler“ wurde auf Facebook berichtet , aber es klingt wie sie gehen zu beheben es nicht . Bitte lesen Sie die Ticket - Thread auf Facebook Post hier für Details auf , was sie sagen , vor sich geht. (Vielen Dank an Louise für Facebook , die Aufmerksamkeit auf diese bekommen)














