更新时间:2023-12-02 16:48:52
有一种方法"可以在没有令牌的情况下使用某些粉丝页面的个人资料 ID 获取粉丝列表的某些部分.
There is a "way" to get some part of fan list with their profile ids of some fanpage without token.
https://www.facebook.com/{PAGENAME}
的任何授权,如下例所示,基于粉丝页面上的 og 标签.<meta property="al:android:url" content="fb://profile/{PROFILE_ID}"/>
https://www.facebook.com/{PAGENAME}
as in example below based on og tags present on the fanpage.<meta property="al:android:url" content="fb://profile/{PROFILE_ID}" />
现在是***的部分:尝试刷新 (F5) 第 2 点中的链接.. 有一个新的全套可口可乐粉丝.只选择独特的人,您将能够获得一些不错的、几乎完整的粉丝列表.
And now is the best part: try to refresh (F5) the link in point 2.. There is a new full set of another fans of Coca-Cola. Take only uniques and you will be able to get some nice, almost full list of fans.
你为什么不使用我准备好的 PHP 脚本来获取一些粉丝?:)
Why don't you use my ready PHP script to fetch some fans? :)
UPDATE 2016.04.30:在 Facebook 开始要求访问令牌以从图形 API 获取公共数据后,更新了示例脚本以使用新方法.
UPDATE 2016.04.30: Updated example script to use new methods after Facebook started to require access token to get public data from graph api.
function fetch_fb_fans($fanpage_name, $no_of_retries = 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
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-encoding: gzip, deflate, sdch
Accept-language: en-US,en;q=0.8,pl;q=0.6
')));
// 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));