Fb डेवलपर मुद्दा - 'यूआरएल सत्यापित नहीं किया जा सकता है। प्रतिक्रिया की उम्मीद चुनौती से मेल नहीं खाता '

वोट
1

मैं निम्न फ़ाइलों का उपयोग कर एक Heroku आवेदन शुरू की है: -

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

मैं आदेश का उपयोग Node.js निर्भरता स्थापित: npm install express request body-parser --save

बाद git push heroku master, आवेदन सही ढंग से लॉन्च किया गया।

हालांकि, जब अमेरिकन प्लान डेवलपर में एक webhook स्थापित करने के लिए कोशिश कर रहा है, त्रुटि 'यूआरएल सत्यापित नहीं किया जा सकता है। प्रतिक्रिया की उम्मीद चुनौती से मेल नहीं खाता 'फिर चुनौती के लिए अलग अलग प्रतिक्रियाएं देता है। यही कारण है, मेरी यूआरएल के साथ संख्यात्मक कुंजी के बजाय नमस्ते दुनिया, मैं काम करने लगते हैं प्रतिक्रिया करता है।

बहुत आपकी मदद की सराहना करते हैं!

09/05/2017 को 21:59
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
2

आप मार्ग के भीतर की पुष्टि समारोह है कि करने के लिए अमेरिकन प्लान बात करने के लिए की जरूरत है। आप वर्तमान में साइट रूट सूचकांक करने के लिए अमेरिकन प्लान ओर इशारा करते हैं '/'ऐसा लगता है।

करने के लिए एप्लिकेशन सेटिंग में अमेरिकन प्लान webhook यूआरएल बदलें https://YOUR_DOMAIN.com/webhookऔर सत्यापन पूरा हो जाएगा। अमेरिकन प्लान तो भेज देंगे जो कुछ घटनाओं है कि आप अपने लिए करने के लिए सदस्यता '/webhook'मार्ग।

अगर यह काम नहीं करता है, नोटिस आप अपना टोकन यहाँ के रूप में सत्यापित hardcoded है test-token:

...

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

यह केवल चुनौती पूरा हो जाएगा अगर 'test-token'है कि तुम क्या करने के लिए अपने webhook सत्यापन टोकन निर्धारित किया है। इस imo करने के लिए एक बेहतर तरीका निम्न होगा:

...

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

ऊपर के उदाहरण में आप टोकन आप जब अपने सर्वर चल अपने webhook के लिए चयन की पुष्टि में से गुजरना होगा, इससे पहले कि आप webhook सत्यापित करने के लिए प्रयास करें।

अपने Heroku डैशबोर्ड में जोड़ने के VERIFY_TOKENअपने config चर के मूल्य के रूप में अपने टोकन के माध्यम से। यह हार्डकोड बिना टोकन उपलब्ध की पुष्टि कर देगा।

10/05/2017 को 18:29
का स्रोत उपयोगकर्ता

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