web-dev-qa-db-fra.com

API Facebook Messenger "L'URL NE PEUT PAS ÊTRE VALIDÉE"

J'essaie de configurer l'API de messagerie Facebook et j'obtiens cette erreur lorsque j'essaie d'ajouter WebHook:

L'URL n'a pas pu être validé. La vérification du rappel a échoué avec les erreurs suivantes: curl_errno = 60; curl_error = problème de certificat SSL: impossible d'obtenir le certificat de l'émetteur local; Code d'état HTTP = 200; Message HTTP = Connexion établie

J'ai installé mon serveur NodeJS en utilisant le code fourni dans le tutoriel. Voici l'URL: https://stackoverload.me/chatter/webhook

EDITZ ICI LA RÉSOLUTION (quelqu'un voulait voir le 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);

13
Jake Cross

J'ai oublié de répondre à cette question, mais j'ai découvert que j'avais ajouté un fichier ca et un paramètre à mon serveur https et que Facebook l'avait ensuite accepté. 

4
Jake Cross

J'essayais de configurer FB messenger webhook avec un jeton de vérification puissant. Un peu comme ceci: o\/ERviEE\/vt0|<E|\|

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

La même chose a été vérifiée dans le code:

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

Cependant, la valeur reçue du FB est: o\\/ERviEE\\/vt0|<E|\\|

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

C'est étrange . Il ne semble pas y avoir de référence de document en tant que telle expliquant comment Facebook échappe aux caractères spéciaux pour les jetons de vérification ou similaires. Je ne sais pas si cela se produit également pour d'autres entités.

Conclusion: vous devez faire preuve de prudence lorsque vous utilisez des caractères spéciaux pour vérifier les jetons.

Parce que Facebook échappe aux caractères spéciaux des jetons de vérification de webhooks.

0
student

Vous pouvez utiliser le certificat chaîné avec le shell suivant:

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

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

0
magicpanda