Как получить друзей нравится через Facebook API
Можно ли получить все мои друзья? Теперь я получаю это с помощью двух шагов:
- Получение списка всех моих друзей
- Повторяя этот список, я получаю всех людей, которым нравится,
но это кажется очень большим процессом, у кого-нибудь есть идея улучшить производительность для этой задачи?
Ответы
Ответ 1
Наконец-то я нашел его через 2 недели, посмотрев документацию по API Facebook
FB.api("/likes?ids=533856945,841978743")
FB.api("me/friends",{
fields:'id',
limit:10
},function(res){
var l=''
$.each(res.data,function(idx,val){
l=l+val.id+(idx<res.data.length-1?',':'')
})
FB.api("likes?ids="+l,function(res){
console.log(res);
})
})
Ответ 2
Использование FQL
будет быстрее, чем цикл через результаты Graph API. Вы можете получить идентификатор страниц, которым нравятся ваши друзья, но, к сожалению, FQL
не возвращает информацию, отличную от этого (то есть имя). Взгляните на следующее.
Предполагается, что вы используете PHP SDK с разрешением friends_likes.
// hold on to your user ID
$user_id = $facebook->getUser();
// query your friend 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('<pre>%s</pre>', print_r($friendLikes,TRUE));
Преимущество этого в том, что вы делаете только один вызов API. Вам нужно будет сделать отдельные звонки, чтобы получить имена друзей и другое для любимых деталей страницы, но у вас есть идентификаторы, с которыми можно работать сейчас прямолинейно.
Ответ 3
Я считаю, что это единственный способ. Я посмотрел на эту проблему несколько недель назад. Не думайте, что они изменили API.
http://developers.facebook.com/docs/reference/api/
EDIT:
Я не уверен, что хорошо понимаю, что вы имеете в виду... Если вы хотите, чтобы вы получили список сообщений, которые нравятся пользователям, вам нужно сделать следующее:
- Получить все сообщения от друзей
- Проверьте, нравится ли им какое-либо сообщение.
- Получить все сообщения
- Проверьте, нравится ли ему какое-либо из его/ее собственных сообщений.
- Объедините результаты
Это то, что вы хотите?