Facebook boodschapper bot error "TypeError: Kan geen eigendom lezen '0' of undefined."

stemmen
1

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

Ik heb mijn webhook op Heroku en had het geverifieerd en gered door Facebook. Ik stelde toen deze code om mijn webhook verbinden met Facebook.

curl -ik -X POST https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=<token>

dit terug {succes: true}.

Dus toen ben ik begonnen met het toevoegen van code die zou reageren op inkomende berichten, maar ik kan niet lijken te krijgen om de verzonden informatie te ontvangen. Wanneer ik een bericht te verzenden krijg ik geen antwoord.

Alles is aangesloten en actief, maar deze fout ik krijg TypeError: Kan niet lezen eigenschap '0' of undefined is, want ik ben niet het bericht informatie aan mijn webhook verzonden vanaf facebook krijgen. Dit is de regel code die leeg is:

messaging_events = req.body.entry[0].messaging;

Hier is mijn volledige code:

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

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

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

app.get('/', function (req, res) {
  if (req.query['hub.verify_token'] === '8FKU9XWeSjnZN4ae') {
    res.send(req.query['hub.challenge']);
    console.log(app.get ran)
    res.sendStatus(200)
  }

  console.log(Error: wrong validation token)
})

app.post('/', function (req, res) {
  messaging_events = req.body.entry[0].messaging;
  console.log(app.post ran)
  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);
});

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

Hier zijn mijn Heroku Logs:

Heroku

Dus ik ben verward waarom ik niet steeds de melding gegevens wanneer mijn webhook is aangesloten op Facebook en ze communiceren. Ik heb ook ervoor dat ik had al het abonnement velden nodig gecontroleerd.

Heeft iemand het probleem? Alle hulp wordt gewaardeerd. Bedankt!

Edit: Ik volg deze gids door de manier waarop - https://developers.facebook.com/docs/messenger-platform/quickstart

De vraag is gesteld op 21/04/2016 om 14:06
bron van user
In andere talen...                            


1 antwoorden

stemmen
2

Ik had hetzelfde probleem. Kun je app.use toevoegen (bodyParser.json ()) voordat bodyParser.urlencoded ())?

antwoordde op 22/04/2016 om 12:43
bron van user

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