Facebook Graph API:收集群组统计信息
Facebook Graph API: collecting group statistics
我是一个facebook群的成员,群现在已经发展到2000多人了,有人问了一个问题:大家都是哪里人。很酷的问题:很高兴知道。
这让我开始思考:难道没有更方便的方式来获取这些信息吗?所以我去寻找一些 API,找到了 Facebook Graph API,找到了 API explorer 并直接投入其中。
所以我创建了一个令牌,在该令牌中我通常声明允许我访问的内容,但此令牌只能访问... 我 可以访问的内容。
因此,例如我可以
- 列出我的群组
- 列出其中一个群组的成员
所以我假设我能够获得这些成员的 public 信息,希望我能找到 age/gender/location,然后我可以创建某种 map/dashboard,这会很酷。
但据我所知,这是不可能的。如果我请求用户的详细信息,我只会得到最基本的信息:
{
"id": "...",
"first_name": "...",
"last_name": "...",
"link": "https://www.facebook.com/app_scoped_user_id/.../",
"name": "...",
"updated_time": "2014-09-12T17:02:18+0000"
}
我尝试使用 /#{user-id}?fields=gender,location
获取更多字段,但没有显示更多内容。在某种程度上是合乎逻辑的,因为我的令牌不允许我访问这个特定用户,只能访问我自己的用户(对吗?)。
所以我的问题很笼统:如何收集 Facebook 群组的统计信息?
我能想到的可能的解决方案:
- 向所有成员请求令牌,以便我可以收集他们的信息?这似乎完全不切实际。
- 对于每个成员,我可以访问他们的 public facebook 页面,并抓取 public 信息
但作为一个总的 Facebook API 菜鸟,我猜应该有更好的方法?此外,我实际上对个人数据不感兴趣,只是对一组的一般统计数据感兴趣,但从 API 文档中我没有找到任何相关条目。
或者我应该创建一个 APP 并且群组的所有成员都必须 "install that APP" 然后您可以在群组中安装该 APP 从而添加一个额外的页面??? (好吧:显然也是一个 Facebook APP 菜鸟)。
非常感谢所有帮助、提示或评论。
如您所见,当前的 Facebook API 只会为您提供有关您自己的扩展信息。要获取其他用户的扩展信息,这些用户必须登录您拥有的应用并授予访问权限。
您可能正在寻找需要 user_location
许可 https://developers.facebook.com/docs/facebook-login/permissions/v2.0#reference-user_location 的 location
。看到您将此用于统计目的,我相信您不会审查 Facebook 的许可请求。
关于您的解决方案
- 向所有成员请求令牌,以便我可以收集他们的信息?这似乎完全不切实际。 同意,无论如何您都不会获得此权限
- 对于每个成员,我可以访问他们的 public Facebook 页面,并抓取 public 信息。 您在这里违反了服务条款和开发者政策
因此在 API 内无法确定组统计信息。
不推荐以下内容,只是说明它是实用的,但不是一个好的方法
Facebook 本机应用程序(Facebook IOS/Android、Facebook Messenger、Facebook Pages)具有特殊的数据访问权限,此外仍然是 运行 v1.0。理论上,可以使用属于这些应用程序之一的 access_token 然后请求数据 /{group-id}/members?fields=id,gender,location
是一种方法。
所有 v1.0 应用程序仍然 return 任何用户的性别字段。
我是一个facebook群的成员,群现在已经发展到2000多人了,有人问了一个问题:大家都是哪里人。很酷的问题:很高兴知道。
这让我开始思考:难道没有更方便的方式来获取这些信息吗?所以我去寻找一些 API,找到了 Facebook Graph API,找到了 API explorer 并直接投入其中。
所以我创建了一个令牌,在该令牌中我通常声明允许我访问的内容,但此令牌只能访问... 我 可以访问的内容。
因此,例如我可以
- 列出我的群组
- 列出其中一个群组的成员
所以我假设我能够获得这些成员的 public 信息,希望我能找到 age/gender/location,然后我可以创建某种 map/dashboard,这会很酷。
但据我所知,这是不可能的。如果我请求用户的详细信息,我只会得到最基本的信息:
{
"id": "...",
"first_name": "...",
"last_name": "...",
"link": "https://www.facebook.com/app_scoped_user_id/.../",
"name": "...",
"updated_time": "2014-09-12T17:02:18+0000"
}
我尝试使用 /#{user-id}?fields=gender,location
获取更多字段,但没有显示更多内容。在某种程度上是合乎逻辑的,因为我的令牌不允许我访问这个特定用户,只能访问我自己的用户(对吗?)。
所以我的问题很笼统:如何收集 Facebook 群组的统计信息?
我能想到的可能的解决方案:
- 向所有成员请求令牌,以便我可以收集他们的信息?这似乎完全不切实际。
- 对于每个成员,我可以访问他们的 public facebook 页面,并抓取 public 信息
但作为一个总的 Facebook API 菜鸟,我猜应该有更好的方法?此外,我实际上对个人数据不感兴趣,只是对一组的一般统计数据感兴趣,但从 API 文档中我没有找到任何相关条目。
或者我应该创建一个 APP 并且群组的所有成员都必须 "install that APP" 然后您可以在群组中安装该 APP 从而添加一个额外的页面??? (好吧:显然也是一个 Facebook APP 菜鸟)。
非常感谢所有帮助、提示或评论。
如您所见,当前的 Facebook API 只会为您提供有关您自己的扩展信息。要获取其他用户的扩展信息,这些用户必须登录您拥有的应用并授予访问权限。
您可能正在寻找需要 user_location
许可 https://developers.facebook.com/docs/facebook-login/permissions/v2.0#reference-user_location 的 location
。看到您将此用于统计目的,我相信您不会审查 Facebook 的许可请求。
关于您的解决方案
- 向所有成员请求令牌,以便我可以收集他们的信息?这似乎完全不切实际。 同意,无论如何您都不会获得此权限
- 对于每个成员,我可以访问他们的 public Facebook 页面,并抓取 public 信息。 您在这里违反了服务条款和开发者政策
因此在 API 内无法确定组统计信息。
不推荐以下内容,只是说明它是实用的,但不是一个好的方法
Facebook 本机应用程序(Facebook IOS/Android、Facebook Messenger、Facebook Pages)具有特殊的数据访问权限,此外仍然是 运行 v1.0。理论上,可以使用属于这些应用程序之一的 access_token 然后请求数据 /{group-id}/members?fields=id,gender,location
是一种方法。
所有 v1.0 应用程序仍然 return 任何用户的性别字段。