Fb problema sviluppatore - 'URL non poteva essere convalidato. Risposta non corrisponde sfida atteso'

voti
1

Ho lanciato un'applicazione Heroku utilizzando i seguenti file: -

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

Ho installato le dipendenze Node.JS usando il comando: npm install express request body-parser --save

Dopo git push heroku master, l'applicazione viene avviata correttamente.

Tuttavia, quando si cerca di impostare un webhook in Developer fb, l'errore è 'URL non può essere convalidato. Risposta non corrisponde sfida atteso' dà poi le diverse risposte alla sfida. Cioè, il mio URL risponde con Ciao mondo, mi sembra di poter lavorare invece di tasto numerico.

Apprezzerebbe molto il vostro aiuto!

È pubblicato 09/05/2017 alle 21:59
fonte dall'utente
In altre lingue...                            


1 risposte

voti
2

È necessario puntare FB al percorso che ha la funzione di verificare all'interno di esso. Stai puntando FB all'indice principale del sito '/'sembra.

Modificare il webhook url FB nelle impostazioni dell'applicazione per https://YOUR_DOMAIN.com/webhooke la verifica sarà completa. FB invierà quindi qualunque cosa gli eventi si sottoscrive al tuo '/webhook'percorso.

Se questo non funziona, si noti che avete hardcoded tua verificare gettone qui come test-token:

...

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

Questo completerà solo la sfida, se 'test-token'è quello che si imposta il webhook verifica token. Un modo migliore per fare questo imo sarebbe il seguente:

...

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

Nell'esempio di cui sopra si deve passare nel token di verificare di scegliere per il vostro webhook durante l'esecuzione il server, prima di provare a verificare l'webhook.

Nella tua dashboard Heroku, aggiungere VERIFY_TOKENcon il token come il valore nelle variabili di configurazione. Questo renderà la verifica di token disponibile senza hardcoding.

Risposto il 10/05/2017 a 18:29
fonte dall'utente

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