Как получить лайки друзей через Facebook API - PullRequest
13 голосов
/ 24 января 2011

Возможно ли получить все лайки моих друзей ??Теперь я получаю это в 2 этапа:

  1. Получение списка всех моих друзей
  2. Повторяя этот список, я получаю все индивидуальные лайки,

но это кажется очень большим процессом, у кого-нибудь есть идея улучшить производительность для этой задачи?

Ответы [ 3 ]

14 голосов
/ 16 марта 2011

Наконец я нашел его через 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);
  })
})
5 голосов
/ 12 июня 2012

Использование 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. Вам придется совершать отдельные звонки, чтобы узнать имена друзей, а другую - для сведений о понравившейся странице, но теперь у вас есть идентификаторы, с которыми вы можете работать в прямом направлении.

0 голосов
/ 26 января 2011

Я считаю, что это единственный путь.Я посмотрел на эту проблему несколько недель назад.Не думайте, что они изменили API.

http://developers.facebook.com/docs/reference/api/

РЕДАКТИРОВАТЬ: Я не уверен, что я достаточно хорошо понимаю, что вы имеете в виду ... Если вы имеете в виду, что вы хотите, чтобыполучить список сообщений, которые нравятся пользователю, что вы должны сделать, это:

  1. Получить все сообщения от друзей
  2. Проверьте, нравится ли им какие-либо из его сообщений
  3. Получить все сообщения от
  4. Проверить, нравится ли какой-либо из его / ее собственных сообщений
  5. Объединить результаты

Это то, что вы хотите?

...