Fb question de développeur - « URL n'a pas pu être validée. Réponse ne correspond pas à défi attendu »

voix
1

Je l'ai lancé une application Heroku en utilisant les fichiers suivants: -

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

J'ai installé Node.js dépendances à l'aide de la commande: npm install express request body-parser --save

Après git push heroku master, l'application lance correctement.

Cependant, en essayant de mettre en place un webhook dans le révélateur fb, l'erreur est « URL ne peut pas être validée. Réponse ne correspond pas à défi attendu » donne alors les différentes réponses au défi. C'est, mon URL répond par « Bonjour tout le monde, il me semble travailler » au lieu de la touche numérique.

Vous serions reconnaissants de votre aide!

Créé 09/05/2017 à 21:59
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Vous devez pointer FB à la route qui a la fonction de vérifier en son sein. Vous êtes désignez FB à l'index racine du site , '/'il semble.

Modifier l'URL FB webhook dans les paramètres de l' application pour https://YOUR_DOMAIN.com/webhooket la vérification sera terminée. FB enverra alors tout événement vous vous abonnez à votre '/webhook'itinéraire.

Si cela ne fonctionne, notez que vous avez hardcoded votre jeton vérifie pas ici test-token:

...

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

Cela ne fera que compléter le défi si 'test-token'ce que vous définissez votre jeton de vérification de webhook à. Une meilleure façon de le faire serait imo les suivantes:

...

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

Dans l'exemple ci-dessus, vous devez passer dans le jeton que vous choisissez pour vérifier votre webhook lors de l'exécution de votre serveur, avant d'essayer de vérifier la webhook.

Dans votre tableau de bord de Heroku, ajoutez VERIFY_TOKENvotre jeton comme la valeur à vos variables de configuration. Cela rendra le jeton disponible sans vérifier hardcoding.

Créé 10/05/2017 à 18:29
source utilisateur

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