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:
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














