Het krijgen en "Fout, verkeerde validatietoken" wanneer het proberen om een ​​Facebook-Chatbot creëren

stemmen
2

Ik ben op zoek naar een Facebook-chatbot met NodeJS, Express, en een Heroku server.

Ik heb mijn webhook op Heroku en had het geverifieerd en gered door Facebook. Vervolgens heb ik begonnen met het toevoegen code die zou reageren op de inkomende berichten en ik kan niet lijken te verbinding te maken. Het blijft zeggen Fout, fout validatietoken wanneer ik probeer mijn webhook in mijn browser te laden. En als ik probeer mijn bot sturen een boodschap die ik krijg geen reactie. Hoewel ik al had geverifieerd en heeft de code niet wijzigen.

Hier is mijn code:

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

Dus ik ben verward waarom er niets gebeurt en waarom ik krijg die fout. Ik voel me alsof ik mis een hele stap. Ik volg deze tutorial door de manier waarop: https://developers.facebook.com/docs/messenger-platform/quickstart

Alle hulp wordt gewaardeerd. Bedankt!

Edit: Hier zijn mijn Heroku logs

Heroku

De vraag is gesteld op 16/04/2016 om 17:13
bron van user
In andere talen...                            


2 antwoorden

stemmen
0

Je bent eigenlijk met behulp van "verzoek", maar je bent nooit te importeren overal. Hier is hoe dit te verhelpen:

var request = require("request")

Als je eenmaal hebt toegevoegd dat aan uw index.js of app.js bestand (in principe wat dit bestand), zorg ervoor dat je:

npm install request --save

Dit moet het probleem te verhelpen. Helaas, Heroku geen fout en zeggen dat hij niet weet wat "request" is en dat is de reden waarom het zo moeilijk om dit uit in de eerste plaats was!

antwoordde op 16/04/2016 om 19:06
bron van user

stemmen
0

  1. Niet uw volledige toegangstokens hier te plaatsen!
  2. Hebt u de output van de uitdaging getest? Sinds het is gewoon een GET en je weet alle waarden die u kunt proberen het zelf: your-app-domain.com/your-callback-url?hub_mode=subscribe&hub_verify_token=the_token_you_set_in_your_app_config&hub_challenge=pingwelke print 'ping' Sould als alles prima werken.
  3. Zorg ervoor dat u sendStatus (200) naar de naaf challenge response te voegen,.
  4. U moet uw pagina eerst abonneren op de app. Om dit te doen maak een POST-aanvraag naar / van uw pagina-id / subscribed_apps die moet terugkeren "succes". U kunt een GET-verzoek naar hetzelfde eindpunt achteraf controleer je app is geabonneerd op uw pagina
  5. U vermeldde niet welke gebeurtenissen u geabonneerd (moet message_deliveries, berichten, messaging_optins, messaging_postbacks zijn)
  6. Zorg ervoor dat het tabblad webhooks in uw app dashboard zegt nu "complete"
  7. Opnieuw testen
antwoordde op 18/04/2016 om 11:34
bron van user

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