Ich versuche, eine Facebook chatbot mit NodeJS, Express, und einem Heroku Server zu erstellen.
Ich habe meine Webhook auf Heroku und hatte sie geprüft und gespeichert von Facebook. Ich lief dann diesen Code zu meinem Webhook Book zu verbinden.
curl -ik -X POST https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=<token>
dies ergab {Erfolg: true}.
Also begann ich Code hinzufügen, die auf eingehende Nachrichten antworten würde, aber ich kann nicht scheinen sie die gesendeten Informationen zu empfangen. Immer, wenn ich eine Nachricht bekomme ich keine Antwort.
Alles ist miteinander verbunden und läuft, aber dieser Fehler ich immer bin „Typeerror: kann nicht lesen Eigenschaft‚0‘von undefined“ ist, weil ich nicht die Nachricht Informationen zu erhalten, um meine Webhook von Facebook gesendet. Dies ist die Codezeile, die leer ist:
messaging_events = req.body.entry[0].messaging;
Hier ist mein vollständiger 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 sind meine Heroku Protokolle:
Also bin ich verwirrt, warum ich nicht die Nachrichtendaten bekommen, wenn mein Webhook mit Facebook verbunden ist und sie kommunizieren. Ich habe auch sicher, dass ich alle Abonnement Felder hatte notwendig geprüft.
sieht jemand das Problem? Jede Hilfe ist willkommen. Vielen Dank!
Edit: Ich bin nach dieser Anleitung durch die Art und Weise - https://developers.facebook.com/docs/messenger-platform/quickstart














