Facebook Messenger API "URL COULD NOT BE VALIDATED"
Asked Answered
L

3

14

I'm trying to setup the Facebook messenger API and I'm getting this error when I attempt to add the WebHook:

The URL couldn't be validated. Callback verification failed with the following errors: curl_errno = 60; curl_error = SSL certificate problem: unable to get local issuer certificate; HTTP Status Code = 200; HTTP Message = Connection established

I've setup my NodeJS server using the code they provided in the tutorial. Here's the url: https://stackoverload.me/chatter/webhook

EDIT HERE'S THE RESOLUTION (someone wanted to see the code):

var express = require('express');

var fs = require('fs');
var https = require('https');

var app = express();
app.use(express.static('public'));

// SSL
https.createServer(
    {
        ca: fs.readFileSync(__dirname + '/server.ca'),
        key: fs.readFileSync(__dirname + '/server.key'),
        cert: fs.readFileSync(__dirname + '/server.cert')
    }
, app).listen(443, function() {
    console.log('Server is now running.');
});

// HTTP redirect to SSL
express()
    .get('*', function(req,res){
        res.redirect('https://example.com' + req.url)
    })
    .listen(80);
Lowspirited answered 12/4, 2016 at 19:31 Comment(7)
You’re missing an intermediate certificate in the chain, so your certificate can not be verified as genuine. sslshopper.com/ssl-checker.html#hostname=stackoverload.me has instruction on what to do.Namhoi
@CBroe I am facing the same error, though I am deploying on parseapp.com, any idea?Photocompose
I added a CA file to my server and it worked fineLowspirited
I checked my SSL configuration from sslshopper.com but I didn't see any mistake. Can you share your nodejs code?Fatherinlaw
Uploaded the code.Lowspirited
Wow. Thank you man. You saved my day. There is no ca: fs.readFileSync() line in the nodejs documentation page and this was the only problem. Now it works great.Fatherinlaw
Glad to hear :) You can thank the Namecheap support for that one hahaLowspirited
L
5

Forgot to answer this, but I found out that I added a ca file and parameter to my https server and Facebook then accepted it.

Lowspirited answered 23/6, 2016 at 19:0 Comment(1)
could you please explain more and print screen for your code.... i have the same problemBrief
V
0

You can use the chained certificate by the following shell:

cat www.example.com.crt bundle.crt > www.example.com.chained.crt

From http://nginx.org/en/docs/http/configuring_https_servers.html#chains

Verleneverlie answered 15/6, 2017 at 6:56 Comment(0)
D
0

Was trying to setup FB messenger webhook with a strong verify token. Somewhat like this: o\/ERviEE\/vt0|<E|\|

o/ERviEE/vt0|<E|\| verify token set

The same is been verified in the code:

req.query['hub.verify_token'] === 'o\/ERviEE\/vt0|<E|\|'

However, the value received from FB is: o\\/ERviEE\\/vt0|<E|\\|

o\/ERviEE\/vt0|<E|\|  verify token get

This is strange. There seems to be no document reference as such which talks about how Facebook escapes special characters for verify tokens or alike. Not sure if this happens for other entities as well.

Conclusion: need to be a little bit cautious when using special characters for verify tokens.

Because, Facebook escapes special characters for webhooks' verify tokens.

Doralia answered 30/9, 2017 at 15:28 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.