API Facebook: Obtenez les fans de / personnes qui aiment une page

J’aimerais avoir une liste des utilisateurs qui aiment une page ou un fan.

La documentation de l’API FB indique que vous ne pouvez obtenir le nombre de fans d’une page donnée qu’à l’aide du graphe social, mais pas la liste des fans.

Une discussion ici Récupérer des noms de fans sur Facebook suggère que l’on pourrait utiliser une requête FQL comme SELECT user_id FROM like WHERE object_id="YOUR PAGE ID" pour obtenir le nombre de personnes qui ont aimé la page, mais pour une même page, cela donne une réponse vide “{}”.

Je me demandais donc si quelqu’un avait une idée si cela pouvait être fait.

    Il y a un “moyen” d’obtenir une partie de la liste des fans avec leurs identifiants de profil d’une page de fan sans jeton.

    1. Obtenir l’identifiant d’une fanpage avec des données de graphe publiques: http://graph.facebook.com/cocacola – Coca-Cola a 40796308305. MISE À JOUR 2016.04.30 : Facebook nécessite désormais un jeton d’access pour obtenir page_id via graphique afin que vous puissiez parsingr la syntaxe HTML de la fanpage pour obtenir cet identifiant sans aucune autorisation de https://www.facebook.com/{PAGENAME} comme dans l’exemple ci-dessous basé sur og tags présents sur la fanpage.
    2. Procurez-vous l’affichage iframe “like plugin” de Coca-Cola directement avec certains parameters modifiés: http://www.facebook.com/plugins/fan.php?connections=100&id=40796308305
    3. Maintenant, vérifiez les sources de la page, il y a beaucoup de fans avec des liens vers leurs profils, où vous pouvez trouver leurs identifiants de profil ou leurs surnoms comme: http://www.facebook.com/michal.semeniuk .
    4. Si vous êtes seulement intéressé par les identifiants de profil, utilisez à nouveau l’API graphique – il vous donnera directement l’identifiant de profil: http://graph.facebook.com/michal.semeniuk MISE À JOUR 2016.04.30: Facebook nécessite désormais un jeton d’access pour obtenir de telles informations. Vous pouvez parsingr la syntaxe HTML du profil, comme dans la première étape, la balise meta est votre meilleur ami:

    Et maintenant, c’est la meilleure partie: essayez de rafraîchir (F5) le lien au point 2 .. Il y a un nouvel ensemble complet d’autres fans de Coca-Cola. Ne prenez que des pièces uniques et vous pourrez obtenir une liste presque complète de fans.

    – MISE À JOUR 2013.08.06 –

    Pourquoi n’utilisez-vous pas mon script PHP prêt à aller chercher des fans? 🙂

    MISE À JOUR 2016.04.30 : Exemple de script mis à jour pour utiliser les nouvelles méthodes une fois que Facebook a commencé à requérir un jeton d’access pour obtenir des données publiques à partir d’API graphique.

     function fetch_fb_fans($fanpage_name, $no_of_resortinges = 10, $pause = 500000 /* 500ms */){ $ret = array(); // prepare real like user agent and accept headers $context = stream_context_create(array('http' => array('header' => 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nAccept-encoding: gzip, deflate, sdch\r\nAccept-language: en-US,en;q=0.8,pl;q=0.6\r\n'))); // get page id from facebook html og tags for mobile apps $fanpage_html = file_get_contents('https://www.facebook.com/' . $fanpage_name, false, $context); if(!preg_match('{fb://page/(\d+)}', $fanpage_html, $id_matches)){ // invalid fanpage name return $ret; } $url = 'http://www.facebook.com/plugins/fan.php?connections=100&id=' . $id_matches[1]; for($a = 0; $a < $no_of_retries; $a++){ $like_html = file_get_contents($url, false, $context); preg_match_all('{href="https?://www\.facebook\.com/([a-zA-Z0-9\._-]+)" class="link" data-jsid="anchor" target="_blank"}', $like_html, $matches); if(empty($matches[1])){ // failed to fetch any fans - convert returning array, cause it might be not empty return array_keys($ret); }else{ // merge profiles as array keys so they will stay unique $ret = array_merge($ret, array_flip($matches[1])); } // don't get banned as flooder usleep($pause); } return array_keys($ret); } print_r(fetch_fb_fans('TigerPolska', 2, 400000)); 

    Vous pouvez obtenir des fans en utilisant la nouvelle recherche facebook: https://www.facebook.com/search/321770180859/likers?ref=about

    Utilisez ceci.

     https://www.facebook.com/browse/?type=page_fans&page_id= 

    Il retournera jusqu’à 500 des derniers goûts.

     http://www.facebook.com/browse/?type=page_fans&page_id=&start=400 

    Chaque page vous donnera 100 fans. Modifiez la valeur de départ à (0, 100, 200, 300, 400) pour obtenir les 500 premiers. Si le début est> = 401, la page sera vide 🙁

    Selon la documentation de Facebook, il n’est pas possible d’obtenir tous les fans d’une page:

    Bien que vous ne puissiez pas obtenir une liste de tous les fans d’une page Facebook, vous pouvez savoir si une personne en particulier a aimé une page.

    Pour la réponse de s3m3n, le plug-in de fans de Facebook (par exemple LAMODA ) est désormais limité, vous obtenez de moins en moins de nouveaux fans sur les demandes continues. Vous pouvez essayer mon script PHP modifié pour visualiser les résultats: https://gist.github.com/liruqi/7f425bd570fa8a7c73be#file-facebook_fans_by_plugin-php

    Une autre approche est la recherche de graphiques sur Facebook. Sur la page de résultats de recherche: Les personnes qui aiment les pages nommées “Lamoda” , ouvrez la console Chrome et exécutez JavaScript:

     var run = 0; var mails = {} total = 3000; //滚动次数,可以自己根据情况定义function getEmails (cont) { var friendbutton=cont.getElementsByClassName("_ohe"); for(var i=0; i 0) { continue; } mails[email] = 1; console.log(email); } } } } function moreScroll() { var text=""; containerID = "BrowseResultsContainer" if (run > 0) { containerID = "fbBrowseScrollingPagerContainer" + (run-1); } var cont = document.getElementById(containerID); if (cont) { run++; var id = run - 2; if (id >= 0) { setTimeout(function() { containerID = "fbBrowseScrollingPagerContainer" + (id); var delcont = document.getElementById(containerID); if (delcont) { getEmails(delcont); delcont.parentNode.removeChild(delcont); } window.scrollTo(0, document.body.scrollHeight - 10); }, 1000); } } else { console.log("# " + containerID); } if (run < total) { window.scrollTo(0, document.body.scrollHeight + 10); } setTimeout(moreScroll, 2000); }//1000为间隔时间,也可以根据情况定义moreScroll(); 

    Il chargerait de nouveaux ventilateurs et imprimerait l'identifiant / email de l'utilisateur, supprimerait les anciens nœuds DOM pour éviter le plantage de la page. Vous pouvez trouver ce script ici

    Cette page https://developers.facebook.com/docs/reference/fql/like/ a écrit, vous ne pouvez pas obtenir de liste de fans.

    “Les objects API Post, Video, Note, Link, Photo et Album Graph contiennent une connexion équivalente appelée likes.”

    REMARQUE: la requête de type fql est obsolète

    Techniquement, cette requête FQL devrait fonctionner, mais pour une raison quelconque, Facebook ne le permet pas en raison d’un index manquant. Je ne sais pas si c’est à cause de la politique ou ils ont juste oublié.

     SELECT uid FROM page_fans WHERE page_id="YOUR_PAGE_ID" 

    La documentation FQL de Facebook vous indique comment procéder. Exécutez l’exemple SELECT name, fan_count FROM page WHERE page_id = 19292868552 et remplacez le numéro de page_id par le numéro d’identification de votre page. Il renverra le nom de la page et le nombre de ventilateurs.