如何获得(更好)Facebook页面粉丝的人口统计数据?

zeh*_*zeh 17 facebook facebook-fql facebook-graph-api

我正试图在Facebook上为一个页面的粉丝获取人口统计数据 - 主要是国家和城市,但年龄和性别是次要的.

执行此操作的主要方法是使用FQL并在洞察表中执行查询.像这样:

FB.api({
    method: 'fql.query', 
    query: "SELECT metric, value FROM insights WHERE object_id='288162265211' AND metric='page_fans_city' AND end_time=end_time_date('2011-04-16') AND period=period('lifetime')"
}, callback);
Run Code Online (Sandbox Code Playgroud)

然而,问题在于该表仅返回最多19条记录,包括国家和城市统计数据.我正在测试的页面的响应是这样的:

[
   {
      "metric": "page_fans_city",
      "value": {
         "dallas": "12345",
         "atlanta": "12340",
         (...)
         "miami": "12300"
      }
   }
]
Run Code Online (Sandbox Code Playgroud)

因此,我想知道是否有任何替代方案 - 获取当前页面粉丝的人口统计信息(无需快照).

我试过的事情:

  • 在查询上使用LIMIT和OFFSET什么都不做(除了有时候,给我一个空列表).

  • 过去讨论的一种替代方法是使用Graph API中的"/ members"方法(此处更多)获取所有用户的列表,然后解析该列表.这根本不起作用 - 一种方法存在,它可能在过去有效,但它不再有效(禁用?).

请求:

https://graph.facebook.com/platform/members?access_token=...
Run Code Online (Sandbox Code Playgroud)

响应:

{"error":
      {
        "type":"OAuthException",
        "message":"(#604) Your statement is not indexable. The WHERE clause must contain an indexable column. Such columns are marked with * in the tables linked from http:\/\/developers.facebook.com\/docs\/reference\/fql "
      }}
Run Code Online (Sandbox Code Playgroud)
  • 其他解决方案是对page_fan表进行查询并按page_id进行过滤.这也行不通; 它可能在过去有效,但现在它说page_id列不可索引,因此无法使用(与上面相同的错误,这使我相信/成员使用已禁用的相同内部API).Page_fan查询仅用于检查个人用户是否是页面的粉丝.

  • 还有类似的表,但这仅适用于Facebook项目(如帖子,照片,链接等),而不适用于Facebook页面.

  • 访问有关页面的数据洞察网站,您可以在一些不错的图表和表格中查看数据,并下载包含历史人口统计数据的Excel/CSV电子表格...但是,它还将数据限制为19个条目(有时20个虽然城市交易顶级位置,但在那里有几个洞.

关于如何获取数据的任何其他提示?我要么喜欢洞察查询更多的结果,要么至少有一种方法来获取所有页面粉丝所以我以后可以自己进行位置查询(即使我想要获取它的页面有近500万粉丝.. .gulp).

小智 3

该指标的数据管道目前仅限于 20 个项目。这是一个受欢迎的功能请求,Facebook 希望尽快改进。