68 votes

API Facebook: obtenez des fans de / personnes qui aiment une page

J'aimerais obtenir une liste des utilisateurs qui aiment une page ou d'un ventilateur.

Le FB documentation de l'API stipule que vous ne pouvez obtenir le nombre de fans d'une page en utilisant le graphe social, mais pas une liste des fans.

Une discussion ici Récupérer Facebook Fan Noms suggère qu'on pourrait utiliser un FQL requête 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 la même page, il donne une réponse vide "{}".

Donc je me demandais si quelqu'un a une idée si cela peut être fait.

71voto

s3m3n Points 1216

Il y a une "manière" faire partie de la liste de fans avec leurs identifiants de profils de certains fanpage sans jeton.

  1. Obtenir l'id d'une page publique de données de graphe: http://graph.facebook.com/cocacola - Coca-Cola a 40796308305.
  2. Obtenez de Coca-Cola ", comme plugin" iframe afficher directement avec certains modifié params: http://www.facebook.com/plugins/fan.php?connections=100&id=40796308305
  3. Maintenant, consultez la page des sources, il y a beaucoup de fans avec des liens vers leurs profils, où vous pouvez trouver leur profil id ou des surnoms comme: http://www.facebook.com/michal.semeniuk .
  4. Si vous êtes intéressé à profil id de l'utilisation de l'api graphique nouveau - cela va vous donner des id de profil directement: http://graph.facebook.com/michal.semeniuk .

Et c'est maintenant la meilleure partie: essayez d'actualiser (F5) le lien dans le point 2.. Il y a un nouveau jeu complet de l'autre les fans de Coca-Cola. Prenez seulement uniques et vous serez en mesure d'obtenir de bons, presque liste complète des fans.

-- Mise à JOUR 2013.08.06 --

Pourquoi n'utilisez-vous pas de mon prêt script PHP pour récupérer une partie des fans? :)

function fetch_fb_fans($fanpage_name, $no_of_retries = 10, $pause = 500000 /* 500ms */){
    $ret = array();
    // get page info from graph
    $fanpage_data = json_decode(file_get_contents('http://graph.facebook.com/' . $fanpage_name), true);
    if(empty($fanpage_data['id'])){
        // invalid fanpage name
        return $ret;
    }
    $matches = array();
    $url = 'http://www.facebook.com/plugins/fan.php?connections=100&id=' . $fanpage_data['id'];
    $context = stream_context_create(array('http' => array('header' => 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0')));
    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._-]+)" 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));
// prints 73 unique fan names as array

41voto

Oleg Points 2995

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

10voto

Somnath Muluk Points 10173

Utilisez ceci.

 https://www.facebook.com/browse/?type=page_fans&page_id=<your page id>
 

Il renverra jusqu'à 500 des goûts les plus récents.

 http://www.facebook.com/browse/?type=page_fans&page_id=<your page id>&start=400
 

Chaque page vous donnera 100 fans. Changez la valeur de départ en (0, 100, 200, 300, 400) pour obtenir les 500 premiers. Si début est> = 401, la page sera vierge :(

7voto

Steven Delrue Points 41

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 la liste de tous les fans d'une page Facebook, vous pouvez savoir si une personne en particulier a aimé une page.

1voto

Murat Kucukosman Points 431

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

"Les objets API Publication, Vidéo, Note, Lien, Photo et Graphique d'album contiennent une connexion équivalente appelée" J'aime "."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X