2016-05-27 7 views
-3

Ich habe meine grundlegende FB Messenger Bot, und es reagiert auf eingehende Facebook-Nachrichten. Nun, was ich tun möchte, ist, wenn ein Benutzer meinen Bot, sagen wir auf Spanisch, möchte ich die Nachricht, bevor es zu meinem Bot angezeigt wird greifen und verwenden Sie eine maschinelle Übersetzung, um den Text in Englisch zu konvertieren, dann zeigen Sie die Nachricht an meine Bot.eingehenden Text zu einem Facebook-Bot ändern

Wie kann ich den Test abrufen, bevor er auf dem Bot veröffentlicht wird?

+0

bitte zeigen uns einige Beispiel-Code von dem, was Sie gerade –

Antwort

0

im Grunde würde ich beraten Sie es in zwei Schritte zu tun (Sie NodeJS verwenden vorausgesetzt) ​​

Schritt 1: sammeln, um die Benutzereingabe (siehe unter dem Codebeispiel ausgehend von „self.messagereact“)

Schritt 2, um in Schritt 1 gesetzt werden: Prozess die Eingabe in jeden langage Motor (siehe unten die Funktion aufgerufen getengineanswer (die Sendmessage-Funktion auf fb docs verfügbar ist)

// Schritt 1:

self.messagereact = function(){ 
    console.log('start processing incoming event'); 
    self.app.post('/', function (req, res) { 
     messaging_events = req.body.entry[0].messaging; 

     for (i = 0; i < messaging_events.length; i++) { 
      event = req.body.entry[0].messaging[i]; 
      sender = event.sender.id; 
      if (event.message && event.message.text) { 
       text = event.message.text; 
       // Handle a text message from this sender 
       //test the generic template if the user writes generic 
       if (text === 'generic'){ 
        sendGenericMessage(sender); 
       } 
       else{ 
        console.log("This is the text sent to the engine to be analyzed "+ text); 
        var answer = getanswer_from_engine(sender,text); 
       } 
      } 
      //handle postback when a button is clicked 
      if (event.postback) { 
       var text2 = event.postback.payload; 
       console.log("This is the payload of the button" + text2); 
       var answer2 = getanswer_from_engine(sender,text2); 
       //continue; 
      } 
     } 
     res.sendStatus(200); 

    }) 
}; 

// Schritt:

function getanswer_from_engine (sender,text_to_analyse) { 
console.log("This is the text that I have to analyse " + text_to_analyse); 
var request = require('request'); 
request({ 
url: 'PUT HERE THE URL OF THE SERVICE', //URL to hit 
method: 'POST', 
//parameters to connect to the service 
form: { 
      token : TOKEN OF YOUR SERVICE 
      parameter 1 : xxxx, 
      parameter 2 : yyyy, 
      input: text_to_analyse 
      } 
}, function(error, response, body){ 
if(error) { 
    console.log("The error is " + error); 
    console.log("The body is " + body); 
    sendTextMessage(sender,'Oops something went wrong'); 
} else { 

    //process here the answer from your engine 
    var answer = ENGINE OUTPUT 


    sendTextMessage(sender,answer); 

} 

}); 
} 
+0

haben dies hilfreich ist. Obwohl du gesagt hast, suche nach "this.messagereact", aber ich denke du meinst "self.messagereact" –

+0

yep ich habe den Post bearbeitet :) – Mohus

Verwandte Themen