Facebook Messenger Bot Codierungsfehler

stimmen
1

Ich habe Probe Echomeldung bietet api und wit.ai Aktionen mit Facebook-Messenger geschrieben.

Meine Nachricht von Facebook-Seite empfangen wird und die richtige Aktion Funktion definiert wit api Verwendung auch genannt zu werden. Doch während die Reaktion zurückkehrt, ich bin immer followin Fehler wie -

Hoppla! Ein Fehler aufgetreten ist, während die Reaktion auf die Weiterleitung: Fehler: (# 100) Param Nachricht [text] muss ein Prozess UTF-8-codierter String bei fetch.then.then.json (/app/index.js:106:13) sein ._tickCallback (intern / Prozess / next_tick.js: 103: 7)

Hier ist die Funktion, die verwendet wird, um die Reaktion auf dem Rück -

const fbMessage = (id, text) => {  
  const body = JSON.stringify({
    recipient: { id },
    message: { text },
  });
  const qs = 'access_token=' + encodeURIComponent(FB_PAGE_ACCESS_TOKEN);
  return fetch('https://graph.facebook.com/v2.6/me/messages?' + qs, {
    method: 'POST',
    headers: {'Content-Type': 'application/json; charset=UTF-8'},
    body
  })
  .then(rsp => rsp.json())
  .then(json => {
    if (json.error && json.error.message) {
      throw new Error(json.error.message);`enter code here`
    }   
    return json;
  });
};

Ich habe diese Funktion aus der messenger.js Datei aus der Dokumentation kopiert, da ich die POC nur versuchen. Ich überprüfte die Werte für Text und ID in dieser Funktion und überprüft console.log-Anweisungen und diejenigen kommen richtig.

Kann einige Experten mir helfen, diese Fehler zu beheben?

Hinweis - Ich habe versucht, codiert, den Text mit text.toString ( „UTF-8“); aber es gibt die Codierung String als [object object] und das ist die Antwort, die ich von Bot bekommen. so funktioniert es nicht.

Veröffentlicht am 16/08/2016 um 13:42
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Holen Sie sich den neuesten Code von Knoten-wit , gibt es eine Änderung in facebook id - Nutzung,

Laut Facebook:

Am Di 17. Mai Format von Benutzer- und Seite-IDs über webhooks geliefert wird von einem int in eine Zeichenfolge zum besseren Unterstützung von Standard-json-Encoder in js ändern (die lange Ints trimmt). Bitte stellen Sie sicher, dass Ihr App funktioniert mit String-IDs von webhooks zurück sowie mit ints.

Noch Sie Problem mit der api werden immer versuchen , hinzuzufügen , if(event.message && !event.message.is_echo)Zustand wie in Code unten gezeigt.

 // Message handler
 app.post('/webhook', (req, res) => {
   const data = req.body;
    if (data.object === 'page') {
      data.entry.forEach(entry => {
        entry.messaging.forEach(event => {
         if (event.message && !event.message.is_echo) {
            const sender = event.sender.id;
           const sessionId = findOrCreateSession(sender);
           const {text, attachments} = event.message;
           if (attachments) {
             fbMessage(sender, 'Sorry I can only process text messages for now.')
             .catch(console.error);
           } else if (text) {
             wit.runActions(
               sessionId, // the user's current session
               text, // the user's message
               sessions[sessionId].context // the user's current session state
             ).then((context) => {
               console.log('Waiting for next user messages');
               sessions[sessionId].context = context;
             })
             .catch((err) => {
               console.error('Oops! Got an error from Wit: ', err.stack || err);
             })
           }
         } else {
           console.log('received event', JSON.stringify(event));
         }
       });
     });
   }
   res.sendStatus(200);
 });

Referenz:
keine passenden Benutzer Fehler
keine passenden Benutzer fix

Beantwortet am 28/08/2016 um 13:52
quelle vom benutzer

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