Node.js nodejs与apiai的facebook聊天机器人

Node.js nodejs与apiai的facebook聊天机器人,node.js,facebook-javascript-sdk,chatbot,facebook-chatbot,api-ai,Node.js,Facebook Javascript Sdk,Chatbot,Facebook Chatbot,Api Ai,我有一个关于在facebook上处理丰富信息的问题 当我尝试使用api.ai发送消息时 我像这样发送消息 问题是它发送的顺序不对(短信发送速度快,其他重内容发送速度慢,即使它开始得更早) 所以我想做的是在第一条消息成功发送之前“使用发送操作” 有什么想法吗?你能帮我吗 谢谢 function MessageHandler(event) { let sender = event.sender.id; let text = event.message.text; //apiai text r

我有一个关于在facebook上处理丰富信息的问题

当我尝试使用api.ai发送消息时

我像这样发送消息

问题是它发送的顺序不对(短信发送速度快,其他重内容发送速度慢,即使它开始得更早)

所以我想做的是在第一条消息成功发送之前“使用发送操作”

有什么想法吗?你能帮我吗

谢谢

function MessageHandler(event) {
  let sender = event.sender.id;
  let text = event.message.text;
//apiai text request
  let apiai = apiaiApp.textRequest(text, {
    sessionId: 'MY_HOSTETTER' // use any arbitrary id
  });

//get reponse from apiai
  apiai.on('response', (response) => {
    let apiaiText = response.result.fulfillment.speech;
    //let apiaiType = response.result.fulfillment.type;
    var apiaiMessages = response.result.fulfillment.messages;
    //response from agent or domain
    if(response.result.source == 'agent'){
      for(let i=0;i<apiaiMessages.length;i++){
        let amessage=apiaiMessages[i];
        let replymessage = null;
        //response from apiai agent
        //which type of response get
        switch(amessage.type){
          case 0 :
            //0 is text message
            console.log("ITS TEXT MESSAGE");
            replymessage = TextMessage(event, amessage);
            break;
          case 1 :
            //1 is card message
            console.log("ITS CARD MESSAGE");
            replymessage = CardMessage(event, amessage);
            break;
          case 2 :
            //2 is quick reply
            console.log("ITS QUICK REPLY");
            replymessage = QuickReply(event, amessage);
            break;
          case 3 :
            //3 is image mesaage
            console.log("ITS IMAGE MESSAGE");
            replymessage = ImageMessage(event, amessage);
            break;
          case 4 :
            //4 is custom payload
            console.log("ITS CUSTOM PAYLOAD");
            console.log(amessage.payload);
            replymessage = amessage.payload;
            break;
        }
        sendFBmessage(event, replymessage);
       }
    }else{
      //handling domain response
      console.log("ITS DOMAIN SAYING");
      replymessage = TextMessage(event, amessage);
      sendFBmessage(event, replymessage);
    }
  });

  //if apiai gets error
  apiai.on('error', (error) => {
    console.log(error);
  });

  //apiai end
  apiai.end();
}
function sendFBmessage(event, replymessage){
  let sender = event.sender.id;

  request({
      url: 'https://graph.facebook.com/v2.6/me/messages',
      qs: {access_token: PAGE_ACCESS_TOKEN},
      method: 'POST',
      json:{
        recipient: {id:sender},
        message: replymessage
      }
    }, (error, response) => {
      if(error){
        console.log('Error : ', error);
      }else if(response.body.error) {
        console.log('Error : ', response.body.error);
      }else{
        console.log("Send Message Complete");
        //return response.statusCode;
      }
    });
}