Как быстрее найти информацию о друге с помощью Facebook php SDK - PullRequest
0 голосов
/ 24 ноября 2010

Я использую следующий код для получения списка друзей пользователя и информации для этих друзей.

$frnd = $facebook ->api('/me/friends?access_token='.$accessToken.'&fields=id,name,about,hometown');
for ($i=0; $i<$nr_friends; $i++)
  {
   $friendinfo = $facebook->api('/'.$frnd["data"][$i]["id"].'?fields=id,name,hometown,location');
   echo $friendinfo['name']." ".$friendinfo['location']['name']." ".$friendinfo['hometown']['name']."</br>";
  }

Проблема в том, что этот метод загружает информацию о друзьях очень долго.Есть ли способ сделать это быстрее?

Ответы [ 3 ]

2 голосов
/ 10 октября 2011

Используйте язык FQL:

$facebook->api(array('method'=>'fql.query','query'=>"SELECT uid,name,first_name,middle_name,last_name,pic_square,hometown_location,current_location,profile_url,email,website FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"));

Список всех таблиц с соответствующими именами столбцов приведен ниже: Справочник по FQL Facebook

2 голосов
/ 15 июня 2012
<?php
    $friends = $facebook->api('me/friends');

    //print_r($friends['data']);
    print_r("Number of Friends: ". count($friends['data']));

    foreach ($friends['data'] as $key=>$listOfFriends) {
        echo "<br/>".$key." ".$listOfFriends['name']."<img src='https://graph.facebook.com/".$listOfFriends['id']."/picture' width='50' height='50' title='".$listOfFriends['name']."' />";     
    }

?>
2 голосов
/ 24 ноября 2010

Я думаю, что вы можете объединить запрос информации о друзьях в один API, передав идентификаторы в качестве параметра ids.Я не проверял это, но попробуйте что-то похожее на следующее:

// get a list of your your friends' IDs
$friends = $facebook->api('/me/friends?access_token='.$accessToken.'&fields=id');

// condense those IDs into a comma-separated string
$friends_ids = implode(',', $friends);

// now query for friends' name, hometown and location
$friends_info = $facebook->api('/?access_token='.$accessToken.'&fields=id,name,hometown,location&ids='.$friends_ids);

Я не уверен в точном синтаксисе, не проверяя себя, но вы должны найти больше информации здесь: http://developers.facebook.com/docs/api#reading

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...