Fb problemă dezvoltator - „URL-ul nu a putut fi validat. Răspunsul nu se potrivește cu provocarea așteptată“

voturi
1

Am lansat o aplicație Heroku folosind următoarele fișiere: -

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

Am instalat dependențe node.js folosind comanda: npm install express request body-parser --save

După git push heroku master, aplicația se lansează în mod corect.

Cu toate acestea, atunci când încearcă să stabilească un webhook în dezvoltator fb, eroarea este „URL-ul nu a putut fi validat. Răspunsul nu se potrivește cu provocarea de așteptat“, atunci da raspunsuri diferite la provocarea. Asta este, URL-ul meu răspunde cu „Bună ziua lume, mi se pare a fi de lucru“ în loc de cheie numerică.

Aprecia foarte mult ajutorul tau!

Întrebat 09/05/2017 la 21:59
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
2

Trebuie să vă punctul de FB pe traseul care are funcția de a verifica în cadrul acestuia. Sunt orientate în prezent FB la index site - ul rădăcină '/'se pare.

Schimbarea webhook url - ul FB în setările aplicației pentru a https://YOUR_DOMAIN.com/webhookși verificarea va fi completă. FB va trimite apoi orice evenimente vă abonați la dumneavoastră '/webhook'traseu.

Dacă acest lucru nu funcționează, observați ați hardcoded confirmați jeton aici ca test-token:

...

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

Acest lucru se va finaliza doar provocarea dacă 'test-token'este ceea ce setați indicativului de verificare webhook la. O modalitate mai bună de a face acest lucru imo ar fi următoarele:

...

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

În exemplul de mai sus trebuie să treacă în verifica jetonul pe care o alegeți pentru webhook atunci când rulează serverul dumneavoastră, înainte de a încerca să verifice webhook.

În tabloul de bord Heroku, adăugați VERIFY_TOKENcu jeton ca valoare pentru variabilele de configurare. Acest lucru va face Verify de jetoane disponibile fără codificați.

Publicat 10/05/2017 la 18:29
sursa de către utilizator

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