utbygger problem fb - 'URL kan ikke valideres. Response samsvarer ikke forventet utfordring'

stemmer
1

Jeg har lansert en Heroku program som bruker følgende filer: -

app.js

'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))

// Process application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended: false}))

// Process application/json
app.use(bodyParser.json())

// Index route
app.get('/', function (req, res) {
    res.send(Hello world, I seem to be working)

})

// for Facebook verification
app.get('/webhook', function (req, res) {
    if (req.query['hub.verify_token'] === 'test-token') {
      res.send(req.query['hub.challenge']);
   } else {
      res.send('Error, wrong validation token');    
   }
})

// Spin up the server
app.listen(app.get('port'), function() {
    console.log('running on port', app.get('port'))
})

.gitignore

node_modules

package.json

{
  name: heroku-node-practice,
  version: 1.0.0,
  description: New bot,
  main: app.js,
  scripts: {
    test: echo \Error: no test specified\ && exit 1,
    start: node app.js
  },
  author: Paigal,
  license: ISC,
  dependencies: {
    body-parser: ^1.17.1,
    express: ^4.15.2,
    foobar: ^1.1.0,
    mongoose: ^4.9.8,
    request: ^2.81.0
  }
}

Procfile

web: node app.js

Jeg installerte node.js avhengigheter ved hjelp av kommandoen: npm install express request body-parser --save

Etter git push heroku masterlanserer programmet riktig.

Men når jeg prøver å sette opp en webhook i fb utvikler, er feilen 'URL kan ikke valideres. Response samsvarer ikke forventet utfordring' og deretter gir ulike svar på utfordringen. Det vil si at min URL svarer med Hei, verden, synes jeg å jobbe i stedet for talltast.

Setter stor pris på din hjelp!

Publisert på 09/05/2017 klokken 21:59
kilden bruker
På andre språk...                            


1 svar

stemmer
2

Du må peke FB til ruten som har verifisere funksjon i den. Du er for øyeblikket peker FB til området roten indeksen '/'det virker.

Endre FB webhook url i app-innstillingene til https://YOUR_DOMAIN.com/webhookog verifikasjon vil bli fullført. FB vil da sende hva hendelser du abonnerer på din '/webhook'rute.

Hvis dette ikke fungerer, ser at du har hardkodet inn verifisere token her test-token:

...

if (req.query['hub.verify_token'] === 'test-token') { ...

Dette vil bare fullføre utfordring hvis 'test-token'er hva du setter webhook kjennemerke til. En bedre måte å gjøre dette imo ville være følgende:

...

if (req.query['hub.verify_token'] === process.env.VERIFY_TOKEN ) { ...

I eksempelet ovenfor, må du passere i verifisere token du velger for din webhook når du kjører serveren din, før du prøver å verifisere webhook.

I heroku dashbordet, legger VERIFY_TOKENmed token som verdien til config variabler. Dette vil gjøre bekrefte token tilgjengelig uten hardcoding.

Svarte 10/05/2017 kl. 18:29
kilden bruker

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