facebook messenger eroare codare bot

voturi
1

Am scris mostră mesaj echo bot folosind api facebook messenger și acțiuni wit.ai.

Mesajul meu de la pagina de Facebook este primit și funcția de acțiune corespunzătoare definită folosind spirit api este, de asemenea obtinerea numit. Cu toate acestea în timp ce returnarea răspunsului, eu sunt obtinerea de eroare followin ca -

Hopa! A apărut o eroare în timp ce transmiterea răspunsului la: Error: (# 100) Mesajul Param [text] trebuie să fie un șir de caractere UTF-8 codificat la fetch.then.then.json (/app/index.js:106:13) la proces ._tickCallback (intern / proces / next_tick.js: 103: 7)

Aici este funcția care este folosit pentru a reveni răspunsul -

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

Am copiat această funcție din fișierul messenger.js din documentația, deoarece eu sunt doar încercarea de POC. Am verificat valorile pentru text si id-ul în această funcție și verificate folosind declarațiile console.log și cele vin în mod corespunzător.

Poate unii experți să mă ajute pentru a rezolva această eroare?

Notă - Am încercat care codifică textul folosind text.toString ( „utf8“); dar returnează șirul de codificare ca [obiect obiect] și asta e raspunsul I a lua de la bot. asa ca doesnt work.

Întrebat 16/08/2016 la 13:42
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Obtineti cel mai recent cod de la nodul-spirit , există o schimbare în utilizarea Facebook ID - ul, în

conformitate cu Facebook:

La 17 Format Mar Mai de utilizator și ID-urile de pagini livrate prin intermediul webhooks se va schimba de la un int la un șir de caractere pentru a sprijini mai bine implicit JSON codificator în js (care tunde Ints lungi). Asigurați-vă că aplicația funcționează cu ID-uri de coarde returnate de la webhooks precum și cu Ints.

Cu toate acestea vă sunt obtinerea problemă cu api încercați să adăugați if(event.message && !event.message.is_echo)condiții așa cum se arată în codul de mai jos.

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

Referință:
nici o eroare de utilizator de potrivire
nu se potrivesc fix utilizator

Publicat 28/08/2016 la 13:52
sursa de către utilizator

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