gpt4 book ai didi

Facebook API : Get fans of/people who like a page

转载 作者:行者123 更新时间:2023-11-30 05:13:27 25 4
gpt4 key购买 nike

我想获得喜欢某个页面或它的粉丝的用户列表。

FB API 文档指出,您只能使用社交图谱获取特定页面的粉丝数,而不能获取粉丝列表。

此处讨论Retrieve Facebook Fan Names建议可以使用 FQL 查询,如 SELECT user_id FROM like WHERE object_id="YOUR PAGE ID" 来获取喜欢该页面的人数,但对于同一页面,它会给出空响应“{}”。

所以我想知道是否有人知道是否可以这样做。

最佳答案

有一种“方法”可以在没有 token 的情况下使用某些粉丝页面的个人资料 ID 获取粉丝列表的一部分。

  1. 获取带有公共(public)图表数据的粉丝专页的 ID:http://graph.facebook.com/cocacola - 可口可乐拥有 40796308305。 更新 2016.04.30:Facebook 现在需要访问 token 才能通过图表获取 page_id因此您可以解析粉丝页面 HTML 语法以获取此 ID,无需 https://www.facebook.com/{PAGENAME} 的任何授权,如下例所示,基于粉丝页面上存在的 og 标签。
  2. 直接获取可口可乐的“like plugin”iframe 显示,修改参数:http://www.facebook.com/plugins/fan.php?connections=100&id=40796308305
  3. 现在检查页面源,有很多粉丝有指向他们个人资料的链接,您可以在其中找到他们的个人资料 ID 或昵称,例如:http://www.facebook.com/michal.semeniuk
  4. 如果您只对个人资料 ID 感兴趣,请再次使用图形 API - 它会直接为您提供个人资料 ID:http://graph.facebook.com/michal.semeniuk 更新 2016.04.30:Facebook 现在需要访问 token 才能获取此类信息。你可以解析 profile HTML 语法,就像第一步中的 meta 标签是你最好的 friend : <meta property="al:android:url" content="fb://profile/{PROFILE_ID}" />

现在是最精彩的部分:尝试刷新 (F5) 第 2 点中的链接。有可口可乐的另一批新粉丝。仅采用唯一性,您将能够获得一些不错的、几乎完整的粉丝列表。

-- 更新 2013.08.06 --

你为什么不使用我准备好的 PHP 脚本来吸引一些粉丝呢? :)

更新 2016.04.30:更新示例脚本以在 Facebook 开始要求访问 token 以从图形 API 获取公共(public)数据后使用新方法。

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\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));

关于 Facebook API : Get fans of/people who like a page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4018849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com