i using same verify token it's giving me error https://infinite-dusk-17985.herokuapp.com/webhook/
, neither it's responding when m using on messenger.
'use strict'; const express = require('express') const bodyparser = require('body-parser') const request = require('request') const app = express() app.set('port', (process.env.port || 5000)) // parse application/x-www-form-urlencoded app.use(bodyparser.urlencoded({extended: false})) // parse application/json app.use(bodyparser.json()) // index app.get('/', function (req, res) { res.send('hello world secret bot') }) // facebook verification 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('sucess, challenge loop crossed') } res.send('error, wrong token') }) // post data app.post('/webhook/', function (req, res) { let messaging_events = req.body.entry[0].messaging (let = 0; < 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 if (text === 'generic') { sendgenericmessage(sender) continue } sendtextmessage(sender, "text received, echo: " + text.substring(0, 200)) } if (event.postback) { let text = json.stringify(event.postback) sendtextmessage(sender, "postback received: "+text.substring(0, 200), token) continue } } res.sendstatus(200) }) const token = "eaacks5k1kvkbaash07gkvgk9lvjcwelqkxkti1zbzdzarnfpynx9zcx9tu35nnwqujzbuzcdzbldszbjapfhvkgmzbdlazgofkbzaaee6hgv3goh8jrd1w42aazbibd7eynjsadepcpigsljeh9khrup49ot5wzbhzbitnqwwdqr96z4wzdzd" function sendtextmessage(sender, text) { let messagedata = { text:text } request({ url: 'https://graph.facebook.com/v2.6/me/messages', qs: {access_token: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) } }) } function sendgenericmessage(sender) { let messagedata = { "attachment": { "type": "template", "payload": { "template_type": "generic", "elements": [{ "title": "first card", "subtitle": "element #1 of hscroll", "image_url": "http://messengerdemo.parseapp.com/img/rift.png", "buttons": [{ "type": "web_url", "url": "https://www.messenger.com", "title": "web url" }, { "type": "postback", "title": "postback", "payload": "payload first element in generic bubble", }], }, { "title": "second card", "subtitle": "element #2 of hscroll", "image_url": "http://messengerdemo.parseapp.com/img/gearvr.png", "buttons": [{ "type": "postback", "title": "postback", "payload": "payload second element in generic bubble", }], }] } } } request({ url: 'https://graph.facebook.com/v2.6/me/messages', qs: {access_token: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) } }) } // spin spin sugar app.listen(app.get('port'), function() { console.log('running on port', app.get('port')) })
any highly appreciated.
since didn't share error stack trace, not sure reason. but, there issue code.
for following code snippet,
// facebook verification 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('sucess, challenge loop crossed') } res.send('error, wrong token') })
you getting error: can't set headers after sent.
so, update code following.
// facebook verification 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']) console.log('sucess, challenge loop crossed') } else{ res.send('error, wrong token') } })