Язык запросов Facebook дает только идентификаторы пользователей - PullRequest
0 голосов
/ 01 июля 2011

Я пытаюсь напечатать друзей пользователя, который использует мое приложение. Для этого используется язык запросов Facebook (FLQ). Но запрос дает только ID пользователя. Как я могу получить имена пользователей с фотографиями профиля

Вот мой код:

require 'facebook.php';

$facebook = new Facebook(array(
'appId'  => 'xxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxx',
'cookie' => true, // enable optional cookie support
));

$session = $facebook->getSession();
if ($session) {
try {
$some_friends = $facebook->api(array(
      'method' => 'fql.query',
      'query' => 'SELECT uid2 FROM friend WHERE uid1='.$facebook->getUser().' LIMIT 10'
    ));
} catch (FacebookApiException $e) {
error_log($e);
}
}
print_r($some_friends);

Вот результат:

Array ( 
    [0] => Array ( [uid2] => 521117187 ) 
    [1] => Array ( [uid2] => 526583873 ) 
    [2] => Array ( [uid2] => 527579769 ) 
    [3] => Array ( [uid2] => 531219912 ) 
    [4] => Array ( [uid2] => 533654770 ) 
    [5] => Array ( [uid2] => 539141589 ) 
    [6] => Array ( [uid2] => 539243220 ) 
    [7] => Array ( [uid2] => 539342366 ) 
    [8] => Array ( [uid2] => 549294033 ) 
    [9] => Array ( [uid2] => 557508969 )
     )

решена ...

Ответы [ 3 ]

1 голос
/ 01 июля 2011

Вы можете получить их фотографию, отправив uid на

http://graph.facebook.com/UID/picture

пример http://graph.facebook.com/557508969/picture

enter image description here

также его имяполучение http://graph.facebook.com/557508969/ (в кодировке JSON)

0 голосов
/ 01 июля 2011

Подзапросы FQL - это то, что вам нужно использовать, поскольку таблица друзей не содержит больше информации о пользователях. Попробуйте это:

require 'facebook.php';

$facebook = new Facebook(array(
'appId'  => 'xxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxx',
'cookie' => true, // enable optional cookie support
));

$session = $facebook->getSession();
if ($session) {
try {
$some_friends = $facebook->api(array(
      'method' => 'fql.query',
      'query' => 'SELECT uid,name,picture FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1='.$facebook->getUser().') LIMIT 10'
    ));
} catch (FacebookApiException $e) {
error_log($e);
}
}
print_r($some_friends);
0 голосов
/ 01 июля 2011

я думаю, что вы должны изменить свой запрос на выборку

SELECT id,username,profile_pic FROM friend WHERE uid1='.$facebook->getUser().' LIMIT 10'

если я понял твой вопрос.

...