代码之家  ›  专栏  ›  技术社区  ›  aniri

如何使用facebook php-sdk快速查找好友信息

  •  0
  • aniri  · 技术社区  · 15 年前

    我使用以下代码来检索用户的朋友列表和这些朋友的信息。

    $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 回复  |  直到 15 年前
        1
  •  2
  •   Martin Bean    15 年前

    我认为您可以通过将id作为 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

        2
  •  2
  •   Wallace Hermano    14 年前
    <?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']."' />";     
        }
    
    ?>
    
        3
  •  2
  •   krishna    14 年前

    使用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())"));
    

    有关所有表及其相应列名的列表,请参阅: Facebook FQL Reference

    推荐文章