首页 文章

Facebook Messenger API消息序列

提问于
浏览
0

当我将一系列消息发布到messenger API(https://graph.facebook.com/v2.6/me/messages?access_token=MYTOKEN)时,收件人不会以相同的顺序接收消息 . 例如(伪代码):

sendMessage('1'); sendMessage('2'); sendMessage('3');

收件人有时会[1,2,3],但也可以[3,1,2],[2,1,3]等 .

1 回答

  • 0

    我找到了一个适合我的解决方案,但可能无法扩展 . 希望它能帮到你 .

    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);
      })
    };
    

相关问题