查询“喜欢”我的Facebook页面的用户

时间:2011-03-03 16:03:17

标签: facebook facebook-graph-api

我想知道是否可以查询以下内容:

  • 喜欢我的脸谱页面的(所有)用户列表,
  • 这些用户公开提供的其他信息(超出名字和姓氏)

如果可能的话,基本上希望生成喜欢我的Facebook页面的用户的详细营销统计数据。欢迎任何建议或替代方案。

谢谢。

8 个答案:

答案 0 :(得分:30)

我担心这可能,请按此bug获取更多信息。

另一个证据是page_fan表,您会注意到只有uid字段是可编入索引的,因此您需要知道要搜索的用户ID,而不是{{ 1}},如您所知,如果用户“喜欢”一个页面,这意味着他是该页面的“粉丝”。


在积极使用Facebook API一段时间后,按照公告和API发布(以及弃用)以及政策的介绍和更改,我可以了解Facebook只会通过让他们明确这样做来共享有关其用户的信息(也称为交互/授权您的应用)。

因此,在没有这种功能的情况下,最好的办法是:

  1. 通过Page Insights
  2. 了解您的受众群体
  3. 收集粉丝兴趣&通过Page Tabs创建自定义应用并使用Questions
  4. 等其他Facebook功能来获取信息

答案 1 :(得分:11)

好吧,没有人愿意打破Facebook的TOS,但他们已经将我们的手绑定在我们自己的基本数据上。因此,抓取是非法的,但不保存页面。我做了什么(并注意到我需要这个用于离线目的): 转到https://www.facebook.com/browse/?type=page_fans&page_id= {FAN PAGE ID} 向下滚动,直到你拥有所有粉丝。将此页面保存在本地计算机上,比如Facebook.html。 现在,使用ruby和nokogiri:

require 'nokogiri'
>true
f = File.open('/your_path/Facebook.html')
doc = Nokogiri::HTML.parse(f.read)
doc.xpath('//div[@class="fsl fwb fcb"]/a').each {|link| puts link.content}

答案 2 :(得分:6)

图搜索是否喜欢这样:“喜欢[您的粉丝名称]的人”。你将全部结果。

然后使用此javascripts代码在浏览器上创建快捷方式,它将点击查看更多链接并滚动,直到所有结果显示在页面中:

javascript: i = 0;minutes = 30;counter = minutes * 60;function repeatScroll() {
if (i < counter) {window.scrollTo(0, document.body.scrollHeight);i++;}    
setTimeout(repeatScroll, 1000);}repeatScroll();

之后,创建其他快捷方式并运行此js代码以从搜索结果中检索所有UID:

javascript:var txt="";e=document.getElementsByClassName("FriendRequestOutgoing");
for(var i=0; i<e.length; i++) {v=e[i].getAttribute("data-profileid");
if(v) txt+=v+"\n"}document.body.innerHTML="<textarea>"+txt+"</textarea>";

屏幕上会出现一个textarea框,里面有所有uid。只需将其复制到您的记事本中,然后导入Facebook广告管理系统中的自定义受众群体。

我每天创建并使用此代码来获取所有需要的标准UID。 您可以启动所需的任何图表搜索。 这是自制代码,因此使用它而不负责:)

享受他们。

答案 3 :(得分:5)

这是可能的,只是不再使用FQL了。

执行https://www.facebook.com/browse/?type=page_fans&page_id= {FAN PAGE ID}的GET并清除用户。

中提琴。

答案 4 :(得分:2)

现在,您可以使用此链接获取您网页上的人,或者点击“设置”按钮,而不是左侧边栏上的人员。 https://www.facebook.com/[PAGENAME]/settings/?tab=people_and_other_pages

如果您想获取用户的所有照片,请按F12并将这些代码添加到控制台:

javascript:i=0;minutes=30;counter=minutes*60;function repeatScroll(){if(i<counter){window.scrollTo(0, document.body.scrollHeight);i++;}setTimeout(repeatScroll,1000);}repeatScroll();

,当你到达页面底部时:

javascript:var txt="";e=document.getElementsByClassName("img"); for(var i=0; i<e.length; i++) {v=e[i].getAttribute("src"); if(v) txt+="<img src='"+v+"'>\n"}document.body.innerHTML="<textarea>"+txt+"</textarea>";

要显示照片:创建HTML页面并首先将这些行插入该文件中:

<meta charset="utf-8">
<style>img { width:21px; margin:-1px; }</style>
<div style="width:851px; height:315px;background-color:white;">
<!-- PASTE HERE PHOTOS' CODE YOU GET -->
<span style="color:#3B5998;font-weight:bold;font-size:20px;margin-bottom:4px;">600 like, thank you!</span>
<!-- PASTE HERE PHOTOS' CODE YOU GET -->    
</div>

答案 5 :(得分:0)

然后使用此javascript代码在浏览器上创建快捷方式,它将点击查看更多链接并滚动,直到所有结果显示在页面中:

i = 0;
minutes = 30;
counter = minutes * 60;
function repeatScroll() {
    if (i < counter) {
        window.scrollTo(0, document.body.scrollHeight);
        i++;
    }    
    setTimeout(repeatScroll, 1000);
}
repeatScroll();

之后,创建其他快捷方式并运行此js代码以从搜索结果中检索所有UID:

var e=document.getElementsByClassName("fsl fwb fcb");
var ids = [];
for(var i = 0 ; i < e.length; i++){
  ids.push(JSON.parse(e[i].childNodes[0].getAttribute("data-gt")).engagement.eng_tid);
}
console.log(ids);

答案 6 :(得分:0)

加载所有列表

i = 0;
minutes = 30;
counter = minutes * 60;
function repeatScroll() {
    if (i < counter) {
        window.scrollTo(0, document.body.scrollHeight);
        i++;
    }    
    setTimeout(repeatScroll, 1000);
}
repeatScroll();

获取ID

var e=document.getElementsByClassName("_3cb8");
var ids = [];
for(var i = 0 ; i < e.length; i++){
  ids.push(e[i].getAttribute("href"));
}
console.log(ids);

答案 7 :(得分:-8)

你可以使用facebook开放图表来获取它。

https://graph.facebook.com/<your-page-name-or-page-id>/likes

例如:

https://graph.facebook.com/chickfila/likes

您需要使用“id”发送图形api调用,以获取有关您喜欢页面的用户的更多详细信息。

但是,此调用将检索该页面(Chickfila)喜欢的其他Facebook对象,而不是那些喜欢Chickfila页面的用户。