Synolab

PHP – Détecter un appel Facebook sur une page

Par Adrien Q. le 3 août 2016

 Lecture 2 minutes

Pour certaines pages il peut être utile de faire une exception de traitement pour les plugins sociaux comme Facebook. Nous allons gérer cette exception en PHP ou en .htaccess.

Prenons un exemple :

Vous demandez à vos internautes de renseigner leur adresse e-mail pour accéder à une rubrique spécifique de votre site internet dans le but de récupérer des leads. Dans cet espace il est possible de "liker" les pages afin de promouvoir cet espace. Cependant, le crawler Facebook passera également par la phase d'adresse mail et partagera donc la mauvaise page (celle du login). Les textes et les images partagées ne seront pas corrects. Il faut donc autoriser Facebook à "bypasser" cette étape.

Pour cela, nous pouvons détecter l'appel Facebook en PHP. Facebook utilise un user-agent spécifique que voici :

 

ou

 

Vous trouverez la documentation complète ici : https://developers.facebook.com/docs/sharing/webmasters/crawler

Il suffit ensuite de faire un simple test PHP en amont de notre redirection/autorisation

 

Notons qu'il est également possible de faire le test dans notre .htaccess

Attention a ne pas créer des failles dans votre application avec cette méthode. L'user-agent peut être facilement modifié par les navigateurs actuels. Il ne faut pas utiliser cette méthode pour des espaces sécurisés.

Aidez-vous également de la console Facebook pour obtenir le résultat du crawl :  ICI

 

GIF