Reputation: 701
I am trying to set up a web hook for the new Facebook Messenger bot platform on my PHP webserver and am receiving this error:
The URL couldn't be validated. Response does not match challenge, expected value = '364011207', received='
https://developers.facebook.com/docs/messenger-platform/quickstart
https://developers.facebook.com/docs/messenger-platform/webhook-reference#common_format
Any help is greatly appreciated.
Upvotes: 16
Views: 27122
Reputation: 6337
If you're running this as a Node.js
application, and you're coming from the The Facebook Quickstart Guide mentioned in the question, you'll have to point the webhook URL to [your-server-root]/webhook
. Notice this part of the tutorial:
// Adds support for GET requests to our webhook
app.get('/webhook', (req, res) => {
...
// Responds with the challenge token from the request
res.status(200).send(challenge);
});
Upvotes: 5
Reputation: 701
I came across a fix. I scrapped my js attempt and created a new php file with the following code:
<?php
$challenge = $_REQUEST['hub_challenge'];
$verify_token = $_REQUEST['hub_verify_token'];
if ($verify_token === 'my_token_code') {
echo $challenge;
}
I got this code from the first 10 minutes of this video: https://www.facebook.com/marketingdevelopers/videos/883648801749520/
Upvotes: 31
Reputation: 1547
I just resolved this problem by adding '/webhook' in the callback URL...
Upvotes: 4
Reputation: 17014
That code is node.js code and should be run on the server not in a <script>
tag in your HTML.
Here's a simple walk through of setting up the messenger bot with node.js: https://github.com/voronianski/simon-le-bottle
Essentially you need to make sure you have a host that supports node.js applications and run it as such. It will not work inside of HTML.
Upvotes: 6
Reputation: 71
@shane
webhook: function(req, res) {
if (req.query['hub.verify_token'] === 'tokentoken') {
res.send(req.query['hub.challenge']);
} else {
res.send('Error, wrong validation token');
}
}
Note sure what exactly you're doing. but this is what I did and it's working.
I've tested using ngrok server as I don't have a domain name and the callback URL is https://werwrwetwtw.ngrok.io/webhook
Hope this helps!
Upvotes: 3
Reputation: 41
Not sure if this help, but the query parameters that FB send are with underscore not dot e.g. :
P.S.
Sorry, this is valid for PHP
Upvotes: 4