Salut !
Celà fait pas mal de temps que je me casse les dents sur un petit problème. J'ai intégré le plugin de commentaires proposé par facebook et jusque là, pas de soucis.
Mais une fois que je veux mettre en place le système de modération. Alerte général.
Facebook, propose deux méthodes, soit en passant par ça: https://developers.facebook.com/tools/comments/ et donc si j'ai bien compris dans notre head on ajoute :
<meta property="fb:app_id" content="mon-id-app-trop-chouette" />
Soit en ajoutant directement un administrateur avec l'autre bout de code
<meta property="fb:admins" content="mon-id-de-profil-genial"/>
Mais aucunes de ces deux solutions ne fonctionne.
J'ai donc regarder de ce coté: https://developers.facebook.com/tools/debug/ en utilisant une page dispo en ligne faite juste pour tester : http://rudy-vgs.fr/fb-test/ mais rien de concret en ressort. Tout semble bien fonctionner pour eux.
Voici la structure de la page de test:
<!DOCTYPE html>
<html>
<head>
<title>Page de test</title>
<meta property="fb:app_id" content="422231614629073" />
<meta property="og:url" content="http://rudy-vgs.fr/fb-test/" />
<meta property="og:title" content="Site crf" />
<meta property="og:description" content="DESC" />
</head>
<body>
<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 = "//connect.facebook.net/fr_FR/sdk.js#xfbml=1&version=v2.4&appId=422231614629073";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div id="fb-root"></div>
<div class="fb-comments" data-href="http://rudy-vgs.fr/fb-test" data-numposts="5"></div>
</body>
</html>
Auriez vous une idée car la je sèche ?
Il faut mettre les deux. Ton APP ID et les noms (les ID) des admin qui pourront modérer :
En clair :
1 / dans le header de ta page.
<meta property="fb:app_id" content="mon-id-app-trop-chouette" />
<meta property="fb:admins" content="mon-id-de-profil-genial"/>
2/ Puis Juste APRES la balise Body au début de ta page, Insère le script suivant (en prenant soin d'insérez TON APPid :
<div id="fb-root"></div>
<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 = "//connect.facebook.net/fr_FR/sdk.js#xfbml=1&version=v2.4&appId=179859882137929";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
3/ Place ce bout de code où tu veux sur ta page pour insérer le bloc de commentaires Facebook (avec l'url de la page dynamiquement)
<div class="fb-comments" data-href="http://developers.facebook.com/URL_DE_TA_PAGE_WEB" data-numposts="5"></div>
De cette façon ça fonctionne parfaitement et les modérateurs que tu as indiqué en admin recoivent même une notification Facebook dès qu'un commentaire est déposé sur ton site. Tu peux répondre et modérer sur le site et depuis Facebook.
Voilà j'espère que je suis clair :)
FJDSHFJKSDHFKJSDHJL
En copiant le code de ma page actuelle je me suis rendu compte d'un problème bien con:
J'avais mis:
<div class="fb-comments" data-href="http://rudy-vgs.fr/fb-test" data-numposts="5"></div>
au lieu de
<div class="fb-comments" data-href="http://rudy-vgs.fr/fb-test/" data-numposts="5"></div>
pour un pu*** de /. La vie est dure.
Merci d'avoir pris le temps de m'aiguiller
J'avais compris que c'était soit l'app id soit les id des admins a mettre notemment quand ils disent:
You can choose to specify either fb:app_id or fb:admins, but not both.
J'ai beau eu faire ce que tu as mis, je ne vois toujours pas les commentaires dans le panel de facebook, et je n'ai pas non plus la possibilité de les supprimer directement depuis la page concernée
J'ai ce système sur 2 sites et ça fonctionne parfaitement. Ton APP Facebook est bien déclarée ? Pas de souci dans les paramètres ? Peux-tu me passer ton ID de profil Facebook, je t'ajoute comme modérateur sur un des sites sur lesquels j'ai mis ça en place pour que tu vois.
Ensuite je te fais des shoot ecran des paramètres de l'APP, peut-être que ça vient de là.
Ok test pour voir, si tu as bien l'option "Outil de modération" en haut du bloc de commentaires.
tu te rends sur http://diabetegrandecause.org/ et en scrollant vers le bas, tu va le trouver.
Ok donc ça fonctionne. Et je n'ai rien fait de plus sur la page web que tu as déjà fait. Je vais jetter un oeil sur les paramètres de mon app Facebook.
Super important dans les settings pour l'App Facebook, respecter les conventions de nommage, notamment pour les champs "Display name", "NameSpace", "AppDomain" et "Website" (AppDomain sans "www" surtout).
Ensuite, il faut bien faire attention à ce que l'Appid que tu utilises sur ta page soit bien la bonne. Théoriquement rien qu'avec ça, ça fonctionne.
Autre éclaircissement... je pense que ça vient de là en fait. Mets ton FB root AVANT le script (juste après la balise body). J'a toujours procédé comme ça et je me demande s'il n'y a pas un problème pour que Facebook initialise son script si tu mets le FB root après.
Donc plutôt :
<div id="fb-root"></div>
<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 = "//connect.facebook.net/fr_FR/sdk.js#xfbml=1&version=v2.4&appId=422231614629073";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
à la place de :
<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 = "//connect.facebook.net/fr_FR/sdk.js#xfbml=1&version=v2.4&appId=422231614629073";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div id="fb-root"></div>
Ah oui effectivement un slash en + ou en - dans l'Url fait planter le système FB qui se base sur l'URL canonique je crois :)
Visible quand on lance le debugger Facebook sur https://developers.facebook.com/tools/debug/.
Dans le debugger, Si tu renseignes l'URL sans le slash, tu va avoir une erreur sur l'URL, si tu la rentres avec le slash, ça passe.
Au passage, outil indispensable pour mettre en conformité nos déclarations open graph pour que Facebook reconnaisse bien la page et tous les éléments (titre, description, image, etc...)
J'ai poussé l'open graph un peu plus loin sur une appli web avec des noms d'actions et d'objets perso et en utilisant le publish action. En clair, sur une action déterminé de l'utilisateur sur le site web (par exemple mettre une vidéo dans sa playlist), le système publie automatiquement dans son activité sur Facebook ("untel a ajouté telle vidéo à sa playlist). J'ai également "enrichi" les publications (facebook te permet de rajouter 3 meta-données qui s'affichent sous la publication).
Bref, j'ai bien exploré le sujet :)