Использование FQL
будет быстрее, чем зацикливание результатов Graph API. Вы можете получить идентификатор страниц, которые нравятся вашим друзьям, но, к сожалению, FQL
не возвращает другую информацию, кроме этой (например, имя). Посмотрите на следующее.
Предполагается, что вы используете PHP SDK с разрешением friends_likes .
// hold on to your user ID
$user_id = $facebook->getUser();
// query your friend's likes based on their ID
$query = "SELECT uid, page_id FROM page_fan WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $user_id)";
$result = $fb->api(array(
'method' => 'fql.query',
'query' => $query,
));
// optionally group the results by each friend ID
function arraySort($input, $sortkey){
foreach ($input as $key => $val) {
$output[ $val [ $sortkey ] ][] = $val;
}
return $output;
}
$friendLikes = arraySort($result,'uid');
// output the results
echo sprintf('%s
', print_r ($ friendLikes, TRUE));
Преимущество этого заключается в том, что вы делаете только один вызов API. Вам придется совершать отдельные звонки, чтобы узнать имена друзей, а другую - для сведений о понравившейся странице, но теперь у вас есть идентификаторы, с которыми вы можете работать в прямом направлении.