web-dev-qa-db-fra.com

Plateforme de messagerie Facebook. Configurer Webhook avec SSL

Enfin, Facebook a lancé l’API pour son messager l’API pour son messager . Cela nous permettra de créer des robots de discussion.

Dans le guide de démarrage , je dois configurer Webhook. Cela nécessite un serveur Web qui réside dans un domaine spécifique et doit utiliser une connexion SSL.

J'ai VPS qui a une adresse IP statique. J'ai créé un certificat auto-signé et créé un serveur Web simple Node JS qui utilise ce certificat. Tout d'abord, j'ai besoin de vérifier le jeton pour webhook:

app.get('/webhook/', function (req, res) {
  if (req.query['hub.verify_token'] === '<validation_token>') {
      res.send(req.query['hub.challenge']);
  }
  res.send('Error, wrong validation token');
})

Ensuite, j'ai lancé cette application serveur et, dans mon tableau de bord de l'application facebook, je clique sur le bouton Verify and Save.

Il me jette ce message d'erreur:

 Screenshot

Cela signifie que Facebook ne veut pas accepter mon certificat auto-signé.

Cela soulève plusieurs questions:

Dois-je utiliser des certificats SSL fournis uniquement par les autorités de certification pour pouvoir utiliser Facebook Messenger?

Travailler avec Facebook Messenger est beaucoup plus difficile que Telegram.

19
Mr.D

Vous pouvez utiliser cloudflare pour obtenir https au lieu de votre propre signature. Ou vous pouvez utiliser https://letsencrypt.org

6
saturngod

Pour juste tester, vous pouvez utiliser localtunnel. https://localtunnel.me/

9
ndrx42

J'ai déployé mon bot chez Heroku, et ils offrent facilement une connexion HTTPS. Pour le développement local, j'utilise ngrok, qui prend également en charge le transfert HTTPS.

 Ngrok

Pour les nouveaux venus, j’ai écrit ce petit tutoriel pour ceux qui veulent se familiariser avec l’API de Facebook Messenger (Bot), de la première ligne de code au déploiement de Heroku. J'ai découvert que Heroku convenait parfaitement à un tel projet. Depuis que j'ai utilisé Python flask + gunicorn, tout ce dont j'avais besoin pour le déploiement prenait vraiment 5 minutes, et Heroku s'est occupé du reste.

7
Hung Tran

Extrait de ici :

Les nouveaux abonnements webhook doivent utiliser une URL de rappel HTTPS sécurisée à partir de la version 2.5. Avec la prochaine version de l'API Graph, nous cesserons d'envoyer des mises à jour aux URL de rappel non HTTPS.
Si vous avez besoin de plus d'informations sur la configuration de HTTPS pour votre URL de rappel, consultez le guide de démarrage de Let's Encrypt et les instructions d'installation du certificat SSL de Digicert.

Et de ici , et comme @saturngod a dit:

Les certificats auto-signés ne seront pas acceptés par Facebook. Letsencrypt certificats fonctionne parfaitement.

3
Anfuca

J'ai eu la même erreur en utilisant Comodo SSL sur Apache. Dans mon cas, il me manquait SSLCertificateChainFile et je devais simplement télécharger le fichier de bundle et le chemin d'accès au fichier dans la configuration de mon hôte virtuel et recharger Apache. Voici un lien pour installer comodo SSL acheté sur ssls.com https://helpdesk.ssls.com/hc/en-us/articles/203482651-How-towinstall-a-SSL-certificate-on-Apache .

0
user3612888

Pour vérifier l'utilisation du crochet Web: -

$_REQUEST["hub_token"] and $_REQUEST["hub_challenge"];

Commencez par vérifier le jeton sur votre jeton de page, puis imprimez: -

echo $_REQUEST["hub_challenge"];
exit;
0
Prashant