Facebook messeger bot api med node js sender flere svar

stemmer
3

Jeg har en feil med meldingen bot api. For noen grunn branner det flere som 20 på en tid av meldingene til en bestemt bruker. Jeg bruker heroku på node. Jeg har ikke anelse hvorfor den gjør dette? Eventuelle hjelpe ville være mye verdsatt. skriv

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);
Publisert på 24/06/2016 klokken 01:58
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Det er sannsynligvis en feil i Messenger klient. De har mange problemer med Android app. Sjekk denne feilen , og denne feilen .

Jeg anbefaler deg å bruke en begrenser med en lav grense - maks en forespørsel per sekund, for eksempel - for å løse problemet. Dette vil også hindre mulige feil i Messenger kunder i fremtiden. Eller du kan vente for dem å løse problemet i klientene, men husk at brukere med en utdatert versjon vil føre til problemer for boten.

Også vurdere at du kan motta levering kvitteringer i meldingen hendelser. Vurdere å sette inn tekstutdraget nedenfor i koden for å ignorere disse hendelsene.

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

    ...
}
...
Svarte 25/06/2016 kl. 02:23
kilden bruker

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