查询Facebook用户最喜欢的游戏

时间:2011-08-26 20:12:43

标签: facebook facebook-graph-api facebook-fql

我正在尝试获取Facebook用户的游戏列表。为此,我使用Graph API调用

https://graph.facebook.com/MY-USER-ID/games

对于我的特定测试帐户,响应如下:

{ "data": [ { "name": "CityVille",
              "category": "Games/toys",
              "id": "CITYVILLEID",
              "created_time": "2011-08-24T01:14:32+0000" } ]

所以,我得到了一个与用户相关的应用程序(在用户的收藏夹栏中)。但是该响应缺少用户在其收藏夹中的其他四个应用程序。有没有理由说这种反应不完整?我已经检查了应用程序隐私设置,它们与Cityville相同,适用于所有其他已安装的应用程序。

第二个相关问题是,我试图将上面游戏调用中返回的游戏与FQL应用程序表中的项目进行匹配。我正在使用上面的响应返回的id并使用它作为我的FQL索引的匹配索引来匹配它。

SELECT app_id, display_name, category, subcategory
FROM application WHERE app_id = CITYVILLEID

但是在Cityville的特定情况下,上面的Graph API调用中返回的ID是应用程序的Facebook页面(配置文件页面)的ID,而不是FQL表中的ID。所以我的查询结果是空的。最终我确实在应用程序FQL表中找到了该条目,但它是通过canvas_name查找它。

我的第二个问题是,有没有办法通过facebook API将图形API中的游戏与FQL应用程序表中的应用程序条目相关联?

2 个答案:

答案 0 :(得分:1)

这是documentation关于/user/games所说的内容:

Games the user has added to the Arts and Entertainment section of their profile.

这与用户玩的游戏(Facebook应用程序)没有任何关系。我认为没有办法直接获得该名单。

相同的文档报告了使用/user/scores扩展权限读取用户游戏分数(user_games_activity)的可能性。我不熟悉得分API,所以我在这里可能错了:这可能会引导您进入用户所玩的游戏,但显然只有那些用这种方法来保存得分的游戏。

答案 1 :(得分:1)

图API中的游戏优势是指与应用程序关联的 ...因此,您从中获取的ID是页面的ID,并且它与应用程序的ID不匹配。一般用户并不“喜欢”他们玩的所有游戏页面,因此我不建议使用这种方法。也没有可靠的方法从页面ID获取相关的应用程序ID。

MartinodF是对的,目前无法列出用户的应用程序,但这是我们正在考虑的未来。如果某种方式,那么只有当用户授予你user_games_activity扩展权限时才会允许这样做。