Reputation: 131
When I post a series of messages to the messenger API (https://graph.facebook.com/v2.6/me/messages?access_token=MYTOKEN), the messages are not received by the recipient in the same order. For example (in pseudocode):
sendMessage('1');
sendMessage('2');
sendMessage('3');
The recipient sometimes gets [1,2,3] but can also get [3,1,2], [2,1,3], etc.
Upvotes: 0
Views: 815
Reputation: 131
I did find a solution which works for me but may not be scalable. Hopefully, it helps you.
var sendMessagesToUser = function (messages, sessionId) {
let session = sessionsManager.getSessionBySessionId(sessionId);
messages.forEach(function (message, index) {
//Delay or queue messages so we'll keep order in place
setTimeout(function () {
console.log(message)
switch (message.type) {
case sessionsManager.MESSAGE_TYPES.CUSTOME:
utility.sendCustomMessage(session.userId, message.payload.facebook);
break;
case sessionsManager.MESSAGE_TYPES.TEXT:
utility.sendTextMessage(session.userId, message.speech || message.text);
break;
case sessionsManager.MESSAGE_TYPES.CARD:
utility.sendGenericMessage(session.userId, message.title, message.subtitle, message.imageUrl, message.buttons);
break;
case sessionsManager.MESSAGE_TYPES.QUICK_REPLY:
utility.sendQuickReply(session.userId, message.title, message.replies);
break;
}
}, 1000 * index);
})
};
Upvotes: 0