Získávání a „chyba, špatně ověření tokenu“ Při pokusu o vytvoření Facebook Chatbot

hlasů
2

Snažím se vytvořit Facebook Chatbot s NodeJS, Express a serverem Heroku.

Vytvořil jsem webhook na Heroku a měl to ověří a uloží přes facebook. Pak jsem začal přidávat kód, který bude odpovídat na příchozí zprávy, a já nedokážu si to připojen. Je pořád říká „Chyba, špatný ověřovací klíč“ při pokusu o načtení mé webhook ve svém prohlížeči. A když se snažím poslat svůj bot zprávu jsem se nic neděje. I když jsem už měla ověřila a neměnila kód.

Zde je můj kód:

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

Takže jsem zmatená, proč se nic neděje, a proč jsem stále tu chybu. Mám pocit, že mi chybí celý krok. Mám následující tento návod mimochodem: https://developers.facebook.com/docs/messenger-platform/quickstart

Každá pomoc je oceňována. Dík!

Edit: Zde jsou mé Heroku logy

Heroku

Položena 16/04/2016 v 17:13
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Jste vlastně pomocí „žádost“, ale nikdy ji dovážet kdekoliv. Zde je návod, jak to opravit:

var request = require("request")

Poté, co jste dodat, že ke svým index.js nebo app.js souboru (v podstatě cokoliv tento soubor), ujistěte se, že:

npm install request --save

To by mělo opravit. Bohužel, Heroku není chyba ven a říct, že neví, co „žádost“ je, a to je důvod, proč to bylo tak těžké přijít na to v první řadě!

Odpovězeno 16/04/2016 v 19:06
zdroj uživatelem

hlasů
0

  1. Neposílejte své plné přístupové tokeny tady!
  2. Už jste testovali výstup na tuto výzvu? Vzhledem k tomu, že je to jen GET a víte, že všechny hodnoty si můžete vyzkoušet sami: your-app-domain.com/your-callback-url?hub_mode=subscribe&hub_verify_token=the_token_you_set_in_your_app_config&hub_challenge=ping, které by proto mělo tisku ‚ping‘, pokud vše funguje dobře.
  3. Ujistěte se, že přidáte sendStatus (200) k odezvě hub výzvu, taky.
  4. Je třeba si objednat svou stránku do aplikace jako první. K tomu, aby požadavek POST / vaši-page-id / subscribed_apps který by měl vrátit „úspěch“. Můžete provést požadavek GET na stejný koncový bod následně překontrolovat aplikaci se připojila k vaší stránce
  5. Jste se nezmínil, které události jste si předplatili (musí být message_deliveries, zprávy messaging_optins, messaging_postbacks)
  6. Ujistěte se, že kartu webhooks v aplikaci palubní desce teď říká, že je „úplná“
  7. znovu Test
Odpovězeno 18/04/2016 v 11:34
zdroj uživatelem

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