Facebook bouton like hashbang escaped fragment

De Marmits Wiki
Version datée du 24 juillet 2019 à 15:05 par Geo (discussion | contributions) (Page créée avec « == Dans le header == <link rel="canonical" href=""> <?php //if(stristr($_SERVER["HTTP_USER_AGENT"],'facebook')) //{ ?> <meta property="fb:admins" content="ADMIN_ID" /> <m... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Dans le header

<link rel="canonical" href=""> <?php //if(stristr($_SERVER["HTTP_USER_AGENT"],'facebook')) //{ ?> <meta property="fb:admins" content="ADMIN_ID" /> <meta property="fb:app_id" content="APP_ID" /> <meta property="og:type" content="activity" /> <meta property="og:image" content=""http://lesite.fr/www/img/image.png' /> <meta property="og:locale" content="fr_FR" /> <?php // } ?>


Dans le html a généré via ajax

<script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/fr_FR/all.js#xfbml=1&appId=APP_ID"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script>

Dans javascript créer une fonction

function trouveHashbang () { var lien = String(document.location); param = lien.split('#!')[0]; return param; }

Dans le javascript ajax

var urlok = trouveHashbang(); var page = "page1"; var pagelike = urlok + "#%21" + page; var urlimage = "http://" + window.location.hostname + "/www/img/image.png";

$('meta[property=og\\:description]').attr('content', texte); $('meta[property=og\\:title]').attr('content', titrepage); $('meta[property=og\\:url]').attr('content', pagelike);

$('link[rel=canonical]').attr('href', urlok + "#!" + page);

Dans le javascript endehors de l'ajax

$.getScript('//connect.facebook.net/fr_FR/all.js#xfbml=1&appId=131047970376783', function() { try{ FB.XFBML.parse(); } catch(ex) {} });

Dans le .htaccess

Après RewriteEngine on

  1. pour facebook
RewriteCond %{QUERY_STRING} ^([^&]*)_escaped_fragment_=([^&]*)&fb_action_ids=([^&]*) [NC]
RewriteRule ^(.*) http://%{HTTP_HOST}/$1#!%2? [R=301,L,NE]

Le bouton like de facebook affichera le lien http://lesite.fr/?_escaped_fragment_=page1&etc.... 1- aller sur le debugger: https://developers.facebook.com/tools/debug/ 2 - exécuter le debug avec l'adresse: http://lesite.fr/#!page1

Les liens facebook http://lesite.fr/?_escaped_fragment_=page1&etc .. redirigeront vers http://lesite.fr/#!page1