Ich habe einen Fehler mit der Nachricht bot api. Aus irgendeinem Grund feuert es mehrere 20 zu einem Zeitpunkt der Nachrichten an einen bestimmten Benutzer. Ich verwende Heroku auf Knoten. Ich habe keine Ahnung, warum es das macht? Jede Hilfe würde sehr geschätzt werden. facebook messager bot api mit Knoten js sendet mehrere Antworten
"use strict";
var express = require("express");
var app = express();
var bodyParser = require('body-parser');
var request = require('request');
app.use(bodyParser.json());
app.get('/', function(req, res){
res.send('hello');
});
app.get('/webhook', function (req, res) {
if (req.query['hub.verify_token'] === 'my_voice_is_my_password_verify_me') {
res.send(req.query['hub.challenge'])
}
res.send('Error, wrong token')
})
app.post('/webhook', function (req, res) {
let messaging_events = req.body.entry[0].messaging;
for (let i = 0; i < messaging_events.length; i++) {
let event = req.body.entry[0].messaging[i]
let sender = event.sender.id
if (event.message && event.message.text) {
let text = event.message.text
sendTextMessage(sender, "Text received, echo: " + text.substring(0, 200))
}
}
res.sendStatus(200)
})
function sendTextMessage(sender, text) {
let messageData = { text:text }
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token: process.env.PAGE_ACCESS_TOKEN},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending messages: ', error)
} else if (response.body.error) {
console.log('Error: ', response.body.error)
}
})
}
app.listen(process.env.PORT || 8080);
Ihr Code sieht OK aus. Was sind alle Werte, die Sie gesendet haben und in welcher Reihenfolge? –
Hat jemand eine Lösung für dieses Problem gefunden? Zur Zeit speichere ich jede Nachricht und überprüfe den Zeitunterschied zwischen der nächsten Nachricht. Wenn es in Mikrosekunden ist, ignoriere ich es. Dies scheint meine Absicht für jetzt zu lösen. – thekosmix