Komme og "Feil, feil valideringstoken" når du prøver å opprette en Facebook chatbot

stemmer
2

Jeg prøver å opprette en Facebook chatbot med NodeJS, Express, og et Heroku server.

Jeg laget min webhook på heroku og hadde det bekreftet og lagret av facebook. Jeg begynte å legge kode som vil svare på innkommende meldinger, og jeg kan ikke synes å få det koblet. Det holder å si Feil, feil valideringstoken når jeg prøver å laste min webhook i nettleseren min. Og når jeg prøver å sende min bot en melding jeg får ingen respons. Selv om jeg allerede hadde det bekreftet og ikke endre koden.

Her er min kode:

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

Så jeg er forvirret på hvorfor ingenting skjer og hvorfor jeg får denne feilen. Jeg føler at jeg mangler et helt trinn. Jeg følger denne opplæringen forresten: https://developers.facebook.com/docs/messenger-platform/quickstart

Alle hjelpe er verdsatt. Takk!

Edit: Her er mine heroku loggene

Heroku

Publisert på 16/04/2016 klokken 17:13
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Du faktisk bruker "request", men du er aldri importerer det hvor som helst. Her er hvordan du kan fikse det:

var request = require("request")

Når du har lagt det til i index.js eller app.js fil (innerst inne hva denne filen er), må du gjøre:

npm install request --save

Dette bør fikse det. Dessverre, ikke Heroku ikke feil ut og si at den ikke vet hva "request" er, og det er derfor det var så vanskelig å finne ut av dette i første omgang!

Svarte 16/04/2016 kl. 19:06
kilden bruker

stemmer
0

  1. Ikke legg ut ditt fulle tilgangskoder her!
  2. Har du testet utgangen av utfordringen? Siden det er bare en GET og du vet alle verdier du kan prøve det selv: your-app-domain.com/your-callback-url?hub_mode=subscribe&hub_verify_token=the_token_you_set_in_your_app_config&hub_challenge=pingsom Soul print 'ping' hvis alt fungerer fint.
  3. Pass på at du legger sendStatus (200) til navet utfordring respons, også.
  4. Du må abonnere siden din til app først. For å gjøre dette gjøre en POST-forespørsel til / din-side-id / subscribed_apps som skal returnere "suksess". Du kan lage en GET-forespørsel til samme endepunkt etterpå for å dobbeltsjekke at appen abonnerer på siden din
  5. Du nevnte ikke hvilke hendelser du abonnerer på (må være message_deliveries, meldinger, messaging_optins, messaging_postbacks)
  6. Pass på at kategorien webhooks i programmet ditt dashbordet nå sier "komplett"
  7. test igjen
Svarte 18/04/2016 kl. 11:34
kilden bruker

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