facebook messeger bot api met knooppunt js stuurt meerdere antwoorden

stemmen
3

Ik heb een fout met het bericht bot api. Om een ​​of andere reden ontsteekt, meerdere als 20 in een tijd van de berichten naar een bepaalde gebruiker. Ik gebruik Heroku op het knooppunt. Ik heb geen idee waarom het dit doet? Alle hulp zou zeer gewaardeerd worden. voer

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);
De vraag is gesteld op 24/06/2016 om 01:58
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Het is waarschijnlijk een bug in client van de boodschapper. Ze hebben veel problemen met de Android-app. Controleer deze bug en deze bug .

Ik adviseer u om een te gebruiken tarief limiter met een lage limiet - max 1 verzoek per seconde, bijvoorbeeld - om het probleem op te lossen. Dit zal ook voorkomen dat eventuele bugs in de klanten van de Messenger in de toekomst. Of je kunt wachten tot ze om het probleem op te lossen in de klanten, maar in gedachten te houden dat de gebruikers met een verouderde versie moeite om je bot zal veroorzaken.

Overweeg ook dat u ontvangstbevestigingen kunt ontvangen in uw bericht evenementen. Denk aan het fragment hieronder in te voegen in uw code om deze gebeurtenissen te negeren.

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

    ...
}
...
antwoordde op 25/06/2016 om 02:23
bron van user

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