Παίζω γύρω με τη δημιουργία ενός απλού chatbot Facebook Messenger και είμαι έχοντας προβλήματα με την αποστολή μηνυμάτων στη σειρά.
Στο παραπάνω παράδειγμα, θα πρέπει να εκτυπωθεί «Hello!», «1», «2», «3» με τη σειρά. Είμαι σήμερα ακολουθώντας τα έγγραφα του Facebook βρίσκονται εδώ για να εφαρμόσει αυτό το απλό λειτουργία μηνυμάτων κειμένου. Έχω συμπεριληφθεί μου κώδικα διακομιστή Express Node.JS παρακάτω:
Καθορισμός της sendTextMessage()λειτουργίας:
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.)
}
});
}
Χρησιμοποιώντας να στείλετε μια απάντηση:
sendTextMessage(user, Hello!);
sendTextMessage(user, 1);
sendTextMessage(user, 2);
sendTextMessage(user, 3);
Προσπάθησα ακόμη εφαρμογή μιας απλής ουράς που ουρές μηνύματα και στέλνει μόνο ένα μήνυμα κάθε φορά μετά από κάθε request«s επανάκλησης επιτυχία. Αυτό με κάνει να υποψιάζομαι ότι δεν είμαι αλληλεπιδρά με το API Messenger σωστά.
Έχει κανείς αντιμετώπισε το θέμα αυτό; Πώς μπορώ να πάρω τα μηνύματα να στείλει στη σειρά; Ευχαριστώ!
ΕΠΕΞΕΡΓΑΣΙΑ
Επειδή έχω εφαρμόσει μια απλή ουρά, αλλά εξακολουθείτε να αντιμετωπίζετε αυτό το πρόβλημα, είμαι συμπεριλαμβανομένου του κώδικα για απλό σύστημα ουρά μου εδώ.
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 */);
ΕΚΣΥΓΧΡΟΝΙΖΩ
Αυτό το «σφάλμα» αναφέρθηκε στο Facebook, αλλά ακούγεται σαν να μην πρόκειται να το φτιάξω . Παρακαλούμε διαβάστε το νήμα εισιτήριο για την ανάρτηση του Facebook εδώ για λεπτομέρειες σχετικά με το τι λένε συμβαίνει. (Σας ευχαριστώ για την Louise για να πάρει την προσοχή του Facebook σε αυτό)














