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);
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é.
J'essayais de configurer FB messenger webhook avec un jeton de vérification puissant. Un peu comme ceci: o\/ERviEE\/vt0|<E|\|
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|\\|
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.
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