J'ai une erreur avec le message bot api. Pour une raison quelconque, il déclenche plusieurs comme 20 à la fois des messages à un certain utilisateur. J'utilise heroku sur le noeud. Je n'ai pas la moindre idée de pourquoi il fait ça? Toute aide serait très appréciée. facebook messeger bot api avec le noeud js envoie plusieurs réponses
"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);
Votre code semble OK. Quelles sont toutes les valeurs que vous avez envoyées et dans quel ordre? –
Quelqu'un at-il trouvé une solution à ce problème? actuellement je cache chaque message et vérifie la différence de temps entre le message suivant. Si c'est en microsecondes, je l'ignore. Cela semble résoudre mon but pour le moment. – thekosmix