dinle haberci bot kodlama hatası

oy
1

Ben facebook messenger API ve wit.ai eylemleri kullanarak örnek yankı mesaj bot yazdım.

facebook sayfasından My mesaj alındığında ve uygun eylem fonksiyonu zekâ api en olarak da adlandırılan oluyor kullanılarak tanımlanır. yanıtını dönerken Ancak, ben olarak followin hatası alıyorum -

Hata! sürecinde fetch.then.then.json (/app/index.js:106:13) bir UTF-8 kodlu uzunluğunda olmalıdır (# 100) param mesajı [metin]: Hata: yanıtı yönlendirme bir hata meydana ._tickCallback (dahili / süreç / next_tick.js: 103: 7)

İşte yanıtı döndürmek için kullanılır işlevdir -

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

ben sadece POC çalışıyorum beri belgelerinden messenger.js dosyadan bu işlevi kopyaladığınız. Bu işlevde metin ve kimliği için değerleri kontrol edilmeli ve console.log ifadeleri kullanılarak doğrulandı ve bu düzgün geliyor.

bazı uzmanlar bana bu hatayı çözmek için yardımcı olabilir misiniz?

Not - I text.toString ( UTF-8) kullanarak metin kodlayan çalıştı; ama [nesne, nesnenin] gibi kodlama dizisi döner ve i bot elde yanıt bu. böylece, işe yaramazsa.

Oluştur 16/08/2016 saat 13:42
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

En son kodu alın düğüm-zekâ , facebook kimliği kullanımında bir değişiklik olduğunda

Facebook'a göre:

(Uzun int'leri kırpar) js daha iyi destek varsayılan json kodlayıcı için bir dizeye int değişecektir webhooks ile teslim kullanıcı ve sayfa kimlikleri Sal 17 Mayıs biçimi üzerinde. uygulama webhooks yanı sıra ints ile döndü dize kimlikleri ile çalıştığından emin olun.

Hala API ile sorunu alıyorsanız eklemeyi deneyin if(event.message && !event.message.is_echo)aşağıdaki kodda gösterildiği gibi durumu.

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

Referans:
eşleşen kullanıcı hata
Kullanıcı fix eşleşen

Cevap 28/08/2016 saat 13:52
kaynak kullanıcı

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