Es gibt eine "Möglichkeit", einen Teil der Fanliste mit ihren Profil-IDs einer Fanpage ohne Token zu erhalten.
ID einer Fanpage mit öffentlichen Diagrammdaten abrufen : http://graph.facebook.com/cocacola - Coca-Cola hat 40796308305. UPDATE 2016.04.30 : Facebook benötigt jetzt ein Zugriffstoken, um page_id über das Diagramm abzurufen, damit Sie die HTML-Syntax der Fanpage analysieren können um diese ID ohne Autorisierung von https://www.facebook.com/{PAGENAME}
wie im folgenden Beispiel basierend auf den auf der Fanpage vorhandenen og-Tags zu erhalten.
- Holen Sie sich Coca-Colas "like plugin" iframe-Anzeige direkt mit einigen geänderten Parametern: http://www.facebook.com/plugins/fan.php?connections=100&id=40796308305
- Überprüfen Sie nun die Seitenquellen, es gibt viele Fans mit Links zu ihren Profilen, wo Sie ihre Profil-IDs oder Spitznamen finden können wie: http://www.facebook.com/michal.semeniuk .
Wenn Sie nur an Profil-IDs interessiert sind, verwenden Sie die Grafik-API erneut. Sie erhalten die Profil-ID direkt: http://graph.facebook.com/michal.semeniuk UPDATE 2016.04.30: Facebook benötigt jetzt ein Zugriffstoken, um solche Informationen zu erhalten. Sie können die HTML-Syntax des Profils analysieren, genau wie im ersten Schritt ist das Meta-Tag Ihr bester Freund:
<meta property="al:android:url" content="fb://profile/{PROFILE_ID}" />
Und jetzt ist das Beste daran: Versuchen Sie, den Link in Punkt 2 zu aktualisieren (F5). Es gibt einen neuen vollständigen Satz weiterer Fans von Coca-Cola. Nehmen Sie nur Unikate und Sie werden in der Lage sein, eine nette, fast vollständige Liste der Fans zu bekommen.
- UPDATE 2013.08.06 -
Warum benutzt du nicht mein fertiges PHP-Skript, um ein paar Fans zu holen? :) :)
UPDATE 2016.04.30 : Das Beispielskript wurde aktualisiert, um neue Methoden zu verwenden, nachdem Facebook Zugriffstoken benötigt, um öffentliche Daten von der Grafik-API abzurufen.
function fetch_fb_fans($fanpage_name, $no_of_retries = 10, $pause = 500000 ){
$ret = array();
$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')));
$fanpage_html = file_get_contents('https://www.facebook.com/' . $fanpage_name, false, $context);
if(!preg_match('{fb://page/(\d+)}', $fanpage_html, $id_matches)){
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])){
return array_keys($ret);
}else{
$ret = array_merge($ret, array_flip($matches[1]));
}
usleep($pause);
}
return array_keys($ret);
}
print_r(fetch_fb_fans('TigerPolska', 2, 400000));