Fb tema desarrollador - 'URL no pudo ser validada. La respuesta no coincide desafío esperado'

votos
1

Me he lanzado una aplicación Heroku utilizando los siguientes archivos: -

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

He instalado dependencias Node.js utilizando el comando: npm install express request body-parser --save

Después git push heroku master, la aplicación se inicia correctamente.

Sin embargo, cuando se trata de establecer un web hook en un revelador fb, el error es 'URL no pudo ser validada. La respuesta no coincide desafío esperado', entonces da las diferentes respuestas al desafío. Es decir, mi URL responde con Hola mundo, que parece estar funcionando en lugar de la tecla numérica.

Apreciaría mucho su ayuda!

Publicado el 09/05/2017 a las 18:59
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
2

Es necesario señalar FB para la ruta que tiene la función de verificación dentro de ella. En este momento está apuntando FB para el índice de la raíz del sitio '/'que parece.

Cambiar la url web hook FB en la configuración de la aplicación para https://YOUR_DOMAIN.com/webhooky la verificación será completa. FB enviará entonces lo eventos se suscribe al de su '/webhook'ruta.

Si esto no funciona, observe que haya hardcoded su token de verificar aquí como test-token:

...

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

Esto sólo completar el desafío si 'test-token'es lo que fija su clave de verificación a web hook. Una mejor manera de hacer esto imo sería la siguiente:

...

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

En el ejemplo anterior se debe pasar en el token de verificar que elija para su web hook cuando se ejecuta el servidor, antes de intentar verificar la web hook.

En su tablero de instrumentos heroku, añadir VERIFY_TOKENcon su token como el valor de las variables de configuración. Esto hará que el símbolo verificar disponible sin codificar.

Respondida el 10/05/2017 a las 15:29
fuente por usuario

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