Alma ve "Hata, yanlış doğrulama belirteç" zaman bir Facebook Chatbot oluşturmaya çalışırken

oy
2

Ben NodeJS, Express ve bir Heroku sunucusu ile bir Facebook chatbot oluşturmaya çalışıyorum.

Ben Heroku benim webhook oluşturulan ve doğrulanması ve facebook tarafından kaydedilen vardı. Sonra gelen mesajlara cevap olacağını kod ekleyerek başladı ve bunu bağlanmak için görünmüyor olabilir. Bu Tarayıcımdaki benim webhook yüklemeye çalıştığınızda Hata, yanlış onay anahtarı deyip duruyor. Benim bot göndermeye çalıştığımda bir mesaj hiçbir yanıt almak. Olsa zaten o doğrulamıştınız ve kod değişmedi.

İşte benim kodudur:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();
var port = process.env.PORT || 3000;

// body parser middleware
app.use(bodyParser.urlencoded({ extended: true }));

// test route
//app.get('/', function (req, res) { res.status(200).send('Hello world!') });

app.get('/', function (req, res) {
  if (req.query['hub.verify_token'] === '8FKU9XWeSjnZN4ae') {
    res.send(req.query['hub.challenge']);
  }
  res.send('Error, wrong validation token');
})

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;
      sendTextMessage(sender, Text received, echo: + text.substring(0, 200));
    }
  }
  res.sendStatus(200);
});

// error handler
app.use(function (err, req, res, next) {
  console.error(err.stack);
  res.status(400).send(err.message);
});

app.listen(port, function () {
  console.log('Listening on port ' + port);
});

var token = <myToken>;

function sendTextMessage(sender, text) {
  messageData = {
    text:text
  }
  request({
    url: 'https://graph.facebook.com/v2.6/me/messages',
    qs: {access_token:token},
    method: 'POST',
    json: {
      recipient: {id:sender},
      message: messageData,
    }
  }, function(error, response, body) {
    if (error) {
      console.log('Error sending message: ', error);
    } else if (response.body.error) {
      console.log('Error: ', response.body.error);
    }
  });
}

Bu yüzden hiçbir şey olmuyor ve neden o hatayı alıyorum neden olarak karıştı. Ben bütün bir adım eksik gibiyim. Bu arada bu öğretici takip ediyorum: https://developers.facebook.com/docs/messenger-platform/quickstart

Herhangi bir yardım takdir edilmektedir. Teşekkürler!

Düzenleme: İşte benim Heroku günlükleri

Heroku

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


2 cevaplar

oy
0

Aslında "istek" kullanıyor ancak asla hiçbir yerde ithal ediyoruz. İşte bunu düzeltmek için:

var request = require("request")

Eğer index.js veya app.js dosyası (temelde bu dosyanın ne olursa olsun), yapmanız emin olmak için bu ekledikten sonra:

npm install request --save

Bu düzeltmek gerekir. Ne yazık ki, Heroku dışarı hata ve "istek" olduğunu ve ilk etapta bu anlamaya çok zordu bu yüzden ne olduğunu bilmiyor demiyor!

Cevap 16/04/2016 saat 19:06
kaynak kullanıcı

oy
0

  1. Buraya tam erişim belirteçleri yayınlamayın!
  2. Eğer meydan çıktısını test mı? Bu sadece bir GET ve sen tüm değerleri bildiğimiz için bunu kendiniz deneyebilirsiniz: your-app-domain.com/your-callback-url?hub_mode=subscribe&hub_verify_token=the_token_you_set_in_your_app_config&hub_challenge=pingherşey iyi çalışıyorsanız baskı 'ping' ruh hangi.
  3. Sen de göbek meydan yanıta (200) sendStatus eklemek emin olun.
  4. Önce uygulamasına sayfanızı abone olmanız gerekir. böylece / senin sayfa-id / "başarı" dönmelidir subscribed_apps POST isteği yapmak yapmak için. Eğer sayfaya abone aynı son nokta için bir GET isteği sonradan uygulamanızı kontrol çift yapabilirsiniz
  5. Sen (message_deliveries, mesajlar, messaging_optins, messaging_postbacks olması gerekir) abone olan olaylar söz etmedi
  6. uygulama gösterge tablosunda emin webhooks sekmesini olun şimdi diyor "tam"
  7. Tekrar test et
Cevap 18/04/2016 saat 11:34
kaynak kullanıcı

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