Fb deweloper problem - „URL nie może zostać zatwierdzone. Odpowiedź nie pasuje do oczekiwanego wyzwanie”

głosy
1

Mam uruchomiła aplikację Heroku stosując następujące pliki: -

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

Zainstalowałem node.js zależności za pomocą polecenia: npm install express request body-parser --save

Po git push heroku masteraplikacja uruchamia poprawnie.

Jednak podczas próby utworzenia webhook na fb deweloperem, błąd jest „URL nie może zostać zatwierdzone. Odpowiedź nie pasuje do oczekiwanego wyzwanie”, a następnie daje różne odpowiedzi na to wyzwanie. Oznacza to, że mój adres URL odpowiada „Hello world, wydaje mi się, że działa” zamiast klawisza numerycznego.

Byłoby bardzo wdzięczni za pomoc!

Utwórz 09/05/2017 o 21:59
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
2

Trzeba podkreślić FB na trasie, która ma funkcję weryfikacji w nim. Aktualnie wskazując FB do indeksu głównego strona '/'wydaje.

Zmień webhook url FB w ustawieniach aplikacji do https://YOUR_DOMAIN.com/webhooki weryfikacja będzie kompletna. FB wyśle cokolwiek wydarzenia zapisać się na swojej '/webhook'trasie.

Jeśli to nie zadziała, zauważy masz ustalony swój żeton zweryfikować tutaj test-token:

...

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

Będzie to zakończyć wyzwanie tylko wtedy, gdy 'test-token'jest to co ustawić webhook weryfikacji tokena. Lepszym sposobem na to imo byłoby następujące:

...

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

W powyższym przykładzie należy przekazać w zweryfikować tokenu wybrać dla swojej webhook podczas uruchamiania serwera, przed próbą sprawdzenia webhook.

W desce rozdzielczej Heroku, dodać VERIFY_TOKENz tokena jako wartości do zmiennych konfiguracyjnych. Spowoduje to, że sprawdza żeton dostępny bez sztywno.

Odpowiedział 10/05/2017 o 18:29
źródło użytkownik

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