cap*_*lam 8 facebook facebook-fql facebook-graph-api
我是Facebook API的新手.我想得到一些我的朋友列表,他们也安装了我的应用程序.(你的想法是你可以和他们一起开始游戏).
这给出了我的朋友列表:
FB.api('/me/friends', ...
Run Code Online (Sandbox Code Playgroud)
这给了我的应用信息:
FB.api('/myappid', ...
Run Code Online (Sandbox Code Playgroud)
我想要的是"我的朋友也安装了这个应用程序"
我以为可能是这样的:
FB.api('/myappid/accounts', ...
Run Code Online (Sandbox Code Playgroud)
我希望这至少会给我的开发人员,管理员或测试人员,但没有这样的运气. http://developers.facebook.com/docs/test_users/ http://developers.facebook.com/docs/ApplicationSecurity/
我的感觉可能是我必须使用FQL来委托一个类似的问题的查询
(psuedocode)
SELECT
FROM my_friends
WHERE uid IN (
SELECT uid
FROM app_users
WHERE appid = myappid
)
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激.
注意,我看过这篇文章: FaceBook应用程序:检索我的应用程序用户的ID列表
我保留了属于我网站的Facebook用户ID的本地列表,我实际上可以通过执行以下操作来实现我的目标,但我确信必须有更好的方法:
$facebookFriendIds = array();
$friends = $this->facebook->api('/me/friends');
foreach ($friends['data'] as $friend) {
$facebookFriendIds[] = $friend['id'];
}
$this->friends = Doctrine_Core::getTable('User')->createQuery()
->whereIn('fb_user_id', $facebookFriendIds)
->execute();
Run Code Online (Sandbox Code Playgroud)
这是我相信的FQL查询
$facebook->api(array('method' => 'fql.query', 'query' => "SELECT uid FROM user WHERE is_app_user = '1' AND uid IN (SELECT uid2 FROM friend WHERE uid1 = '" . $user_id . "');"));
(我使用java和JS API,因此语法可能不完全正确)
用户和好友查询的文档位于:
http://developers.facebook.com/docs/reference/fql/user/
http://developers.facebook.com/docs/reference/fql/friend/
| 归档时间: |
|
| 查看次数: |
14478 次 |
| 最近记录: |