Эти "объекты" на самом деле являются страницами, поэтому, чтобы получить список друзей, например фильм или книгу (страницу), используйте следующий запрос:
SELECT uid FROM page_fan WHERE page_id = 91290503700 AND uid IN (SELECT uid2 FROM friend WHERE uid1=me())
Попробуйте это в консоли fql.query , он получит идентификатор всех ваших друзей, которым нравится начальный фильм.
EDIT:
Очевидный способ получить фильмы (например), который понравился бы вашим друзьям:
SELECT page_id,uid
FROM page_fan
WHERE type="MOVIE"
AND uid IN (
SELECT uid2
FROM friend
WHERE uid1=me()
)
Но я заметил, что он не вернет всех пользователей, если набор велик (что, скорее всего, имеет место для каждого пользователя) .. поэтому я взломал просто для начала!
function sectionArray($array, $step) {
$sectioned = array();
$k = 0;
for ( $i=0;$i < count($array); $i++ ) {
if ( !($i % $step) ) {
$k++;
}
$sectioned[$k][] = $array[$i];
}
return $sectioned;
}
$result = $facebook->api(array(
"method" => "fql.query",
"query" => "SELECT page_id FROM page_fan WHERE type='MOVIE' AND uid IN (SELECT uid2 FROM friend WHERE uid1=me())"
));
$pages = array();
foreach($result as $k=>$v) {
$pages[] = $v["page_id"];
}
$pages = array_unique($pages);
$pages = array_values($pages);
$sets = sectionArray($pages,10);
$movies = array();
foreach($sets as $set) {
$page_set = implode(',',$set);
$friends = $facebook->api(array(
"method" => "fql.query",
"query" => "SELECT page_id,uid FROM page_fan WHERE page_id IN ($page_set) AND uid IN (SELECT uid2 FROM friend WHERE uid1=me())"
));
$movies[] = $friends;
}
$final = array();
foreach($movies as $v)
foreach($v as $k=>$arr)
$final[$arr["page_id"]][] = $arr["uid"];
print_r($final);
Этот код выполняет следующие действия:
- Получите все идентификаторы ФИЛЬМОВ, которые нравятся вашим друзьям
- Удалите повторяющиеся результаты и разделите результирующий массив на набор массивов (по 10 фильмов в каждом)
- Снова запросите Facebook, чтобы получить друзей для каждого сета (по 10 фильмов за раз), который , надеюсь, , даст вам полный список друзей
- сортировка по идентификатору фильма
И результат будет примерно таким:
Array
(
[movie_id] => Array
(
[0] => friend_id
[1] => friend_id
[2] => friend_id
[3] => friend_id
)
[movie_id] => Array
(
[0] => friend_id
[1] => friend_id
[2] => friend_id
[3] => friend_id
[4] => friend_id
[5] => friend_id
[6] => friend_id
[7] => friend_id
)
[movie_id] => Array
(
[0] => friend_id
)
[movie_id] => Array
(
[0] => friend_id
)
)
Отсюда вы можете проверить наиболее понравившиеся ... и т.д.
P.S .: Как я уже сказал выше, просто для начала, и я думаю, вы можете кэшировать некоторые запросы и повысить производительность.