nodejs facebook συνομιλία bot με Άπιαϊ

ψήφοι
1

Έχω μια ερώτηση σχετικά με την αντιμετώπιση πλούσια μηνύματα στο facebook.

Όταν προσπαθώ να στείλει μηνύματα με api.ai,

Στέλνω το μήνυμα όπως εισάγετε περιγραφή link εδώ

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

Και αυτό είναι να στείλετε μήνυμα FB

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

Το θέμα είναι ότι στέλνει εκτός λειτουργίας (το μήνυμα κειμένου που αποστέλλονται γρήγορα, άλλα βαριά περιεχόμενο που αποστέλλονται αργή ακόμη Ξεκινά νωρίτερα.)

Έτσι, αυτό που θέλω να κάνω είναι «χρησιμοποιώντας την αποστολή δράση» πριν από πρώτο μήνυμα στάλθηκε με επιτυχία.

Υπάρχει κάποια ιδέα για αυτό; θα μπορούσατε να με βοηθήσετε?

ευχαριστώ,

Δημοσιεύθηκε 07/02/2017 στις 21:46
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

nodejs facebook συνομιλία bot με Άπιαϊ

ψήφοι
1

Έχω μια ερώτηση σχετικά με την αντιμετώπιση πλούσια μηνύματα στο facebook.

Όταν προσπαθώ να στείλει μηνύματα με api.ai,

Στέλνω το μήνυμα όπως εισάγετε περιγραφή link εδώ

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

Και αυτό είναι να στείλετε μήνυμα FB

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

Το θέμα είναι ότι στέλνει εκτός λειτουργίας (το μήνυμα κειμένου που αποστέλλονται γρήγορα, άλλα βαριά περιεχόμενο που αποστέλλονται αργή ακόμη Ξεκινά νωρίτερα.)

Έτσι, αυτό που θέλω να κάνω είναι «χρησιμοποιώντας την αποστολή δράση» πριν από πρώτο μήνυμα στάλθηκε με επιτυχία.

Υπάρχει κάποια ιδέα για αυτό; θα μπορούσατε να με βοηθήσετε?

ευχαριστώ,

Απαντήθηκε 07/02/2017 στις 21:46
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more