facebook messeger bot api cu js nod trimite mai multe raspunsuri

voturi
3

Am o eroare cu api mesajul bot. Din anumite motive, înflăcărează mai multe ca 20 la un moment dat de mesaje la un anumit utilizator. Sunt folosind Heroku pe nod. Nu am indiciu de ce face acest lucru? Orice ajutor ar fi mult mai apreciat. introduceți

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);
Întrebat 24/06/2016 la 01:58
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

Este , probabil , o eroare în client Messenger. Ele sunt cu o mulțime de probleme cu aplicația Android. Verificați acest bug și acest bug .

Vă recomandăm să utilizați un limitator de cu o limită scăzută - max 1 cerere pe secundă, de exemplu - pentru a rezolva problema. Acest lucru va preveni , de asemenea , eventualele bug - uri în clienții Messenger în viitor. Sau puteți aștepta pentru ei pentru a rezolva problema în clienții, dar rețineți că utilizatorii cu o versiune învechită va cauza probleme la bot.

De asemenea, luați în considerare că puteți primi chitanțe de livrare la evenimente de mesaje. Luați în considerare pentru a insera fragmentul de mai jos în codul dvs. pentru a ignora aceste evenimente.

...
for (let i = 0; i < messaging_events.length; i++) {
    let event = req.body.entry[0].messaging[i]
    if (event.hasOwnProperty('delivery')) {
        continue;
    }

    ...
}
...
Publicat 25/06/2016 la 02:23
sursa de către utilizator

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