Fb Entwickler Problem - ‚URL kann nicht validiert werden. Antwort entspricht nicht erwartete Herausforderung‘

stimmen
1

Ich habe eine Heroku Anwendung unter Verwendung der folgenden Dateien gestartet: -

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

Ich installierte node.js Abhängigkeiten mit dem Befehl: npm install express request body-parser --save

Nach git push heroku masterstartet die Anwendung korrekt.

Wenn jedoch eine Webhook in fb Entwickler einzurichten versuchen, ist der Fehler ‚URL nicht überprüft werden konnte. Antwort nicht erwartete Herausforderung entsprechen‘dann die verschiedenen Antworten auf die Herausforderung gibt. Das heißt, meine URL antwortet mit „Hallo Welt, ich scheine zu arbeiten“ anstelle von numerischen Schlüssel.

Wäre sehr schätzen Ihre Hilfe!

Veröffentlicht am 09/05/2017 um 21:59
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
2

Sie müssen FB auf den Weg zeigen, der die Verify - Funktion in sich hat. Sie weisen derzeit FB auf der Website Root - Index '/'scheint es.

Ändern Sie den FB Webhook URL in den App - Einstellungen https://YOUR_DOMAIN.com/webhookund die Überprüfung abgeschlossen sein. FB wird dann , was Ereignisse , die Sie abonnieren Sie an Ihre senden '/webhook'Route.

Wenn dies nicht funktioniert, beachten Sie überprüfen fest einprogrammiert haben Token hier test-token:

...

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

Dies wird nur die Herausforderung abzuschließen , wenn 'test-token'das , was Sie Ihre Webhook Überprüfungscode einzustellen. Ein besserer Weg , dies zu tun imo wäre die folgende:

...

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

Im obigen Beispiel müssen Sie im verifizieren Token übergeben Sie für Ihre Webhook wählen, wenn der Server ausgeführt wird, bevor Sie versuchen, die Webhook zu überprüfen.

In Ihrem Heroku Armaturenbrett, fügen Sie VERIFY_TOKENmit Ihrem Token als Wert zu Ihren Konfigurationsvariablen. Dies wird die zur Verfügung stehender Token überprüfen, ohne zu.

Beantwortet am 10/05/2017 um 18:29
quelle vom benutzer

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