我正在尝试获取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应用程序表中的应用程序条目相关联?
答案 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
扩展权限时才会允许这样做。