Список Пользователей Приложения Facebook
Я довольно новичок в API Facebook. Я хочу получить список моих друзей, которые тоже установили приложение. (Идея в том, что вы можете начать игру с ними).
это дает список моих друзей:
FB.api('/me/friends', ...
это дает информацию о моем приложении:
FB.api('/myappid', ...
что я хочу, это "мои друзья, которые также установили это приложение"
Я думал, что это может быть такое:
FB.api('/myappid/accounts', ...
Я надеялся, что это, по крайней мере, даст мне моих разработчиков, Администраторы или тестировщики, но не повезло. 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
)
любой совет был бы весьма признателен.
примечание, Я видел этот пост: FaceBook app: получить список идентификаторов моего приложения пользователи
я сохраняю локальный список идентификаторов пользователей Facebook, которые принадлежат моему сайту, и я действительно могу достичь своей цели, выполнив следующее, Но я уверен, что должен быть лучший способ:
$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();
2 ответов
Это я считаю, что запрос 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 . "');"));
(Я использую API java и JS, поэтому синтаксис может быть не совсем правильным)
документация для запросов пользователя и друга здесь:
используйте этот запрос в JS
function getAppFriends()
{
var fql = "SELECT uid, name, pic_square, is_app_user
FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
OR uid IN(SELECT uid1 FROM friend WHERE uid2=me())
ORDER BY name";
var query = FB.Data.query(fql);
query.wait(function(responseFromFb){
if(responseFromFb!=null){
// Read the responseFromFb and check for
// is_app_user = true and list them out the way
// you want to.
}
});// anonymus function closes here
} //function ends here