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

使用最新API获取Facebook好友列表

  •  25
  • Eric  · 技术社区  · 14 年前

    我在用 the most recent version of the Facebook SDK (它允许连接到称为“图形API”的东西,尽管我不确定)。我已经修改了facebook的示例代码,让我连接到facebook,这很有效…但我找不到我朋友的名单。

    $friends = $facebook->api('friends.get');
    

    这将产生错误消息:“致命错误:未捕获OAuthException:(803)您请求的一些别名不存在:friends.get through in/mycode/facebook.php on line 543”

    不知道这是为什么,也不知道这意味着什么。有人能告诉我(最新的facebook api)获取好友列表的正确语法吗?(我尝试了“$friends=$facebook->api->friends'get();”并得到了另一个错误,“致命错误:在第129行的/mycode/example.php中对非对象调用成员函数friends'get()”。)

    我可以确认在我的代码中的这一点之前,一切都很好:我通过一个有效的会话连接到了Facebook,我可以获取我的信息并将其转储到屏幕上…即,此代码在失败的friends.get调用之前完全执行:

    $session = $facebook->getSession();
    if ($session) {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');
    }
    print_r($me);
    
    10 回复  |  直到 9 年前
        1
  •  58
  •   Bad Wolf    11 年前

    我想这就是你想要的:

    $friends = $facebook->api('/me/friends');
    
        2
  •  23
  •   Levi Putna    9 年前

    这是从Facebook上获取朋友的PHP代码的实时版本

    <?php
        $user = $facebook->getUser();
    
    
        if ($user) {
            $user_profile = $facebook->api('/me');
            $friends = $facebook->api('/me/friends');
    
            echo '<ul>';
            foreach ($friends["data"] as $value) {
                echo '<li>';
                echo '<div class="pic">';
                echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
                echo '</div>';
                echo '<div class="picName">'.$value["name"].'</div>'; 
                echo '</li>';
            }
            echo '</ul>';
        }
    ?>
    
        3
  •  12
  •   Elankeeran    13 年前

    像@nfvs所描述的那样结交朋友是一个很好的方法。它输出一个多维数组,其中包含所有具有属性ID和名称(按ID排序)的朋友。您可以看到这样的朋友照片:

    foreach ($friends as $key=>$value) {
        echo count($value) . ' Friends';
        echo '<hr />';
        echo '<ul id="friends">';
        foreach ($value as $fkey=>$fvalue) {
            echo '<li><img src="https://graph.facebook.com/' . $fvalue->id . '/picture" title="' . $fvalue->name . '"/></li>';
        }
        echo '</ul>';
    }
    
        4
  •  7
  •   Mads Foli Bjerre    11 年前

    对于使用图形API的v2.0版遇到这个问题的任何人来说,这只是一个警告:这将不再有效。在2.0版中,calling/me/friends只返回此人的朋友列表 同时使用应用程序 :

    • 要查看当前用户的朋友,需要具有用户\朋友权限的用户访问令牌。
    • 这只会返回任何使用过(通过Facebook登录)发出请求的应用程序的朋友。
    • 如果此人的朋友拒绝用户的“朋友”权限,该朋友将不会显示在此人的朋友列表中。
        5
  •  3
  •   rampr    14 年前

    如果要使用其余端点,

    $friends = $facebook->api(array('method' => 'friends.get'));
    

    否则,如果您使用的是图形API,那么使用,

    $friends = $facebook->api('/me/friends');
    
        6
  •  3
  •   user2244112    10 年前

    在Facebook SDK的最新版本中,由于安全原因,Facebook禁用了允许您访问某个好友列表的功能…查看文档了解更多信息…

        7
  •  2
  •   Michael Vain    13 年前

    相反,使用fql,它类似于sql,但对于facebook的数据表来说,它很容易涵盖您想要进行的数据查询。 您不必使用所有这些/xx/xxx/xx调用,只需知道您感兴趣的表和列。

    $myQuery = "SELECT uid2 FROM friend WHERE uid1=me()";
    $facebook->api( "/fql?q=" . urlencode($myQuery) )
    

    伟大的互动例子 http://developers.facebook.com/docs/reference/fql/

        8
  •  0
  •   ShivarajRH    12 年前

    使用代码点火器OAuth2/0.4.0火花,

    在auth.php文件中,

    $user = $provider->get_user_info($token);
    
    $friends = $provider->get_friends_list($token);
    print_r($friends);
    

    在provider下的facebook.php文件中,添加以下函数,

        public function get_friends_list(OAuth2_Token_Access $token)
        {
                $url = 'https://graph.facebook.com/me/friends?'.http_build_query(array(
                        'access_token' => $token->access_token,
                ));
                $friends = json_decode(file_get_contents($url),TRUE);
    
                return $friends;
        }
    
    prints the facebenter code hereook friends.
    
        9
  •  0
  •   Deepak Kumar    11 年前
    friends.get
    

    是获取朋友列表的函数

    是的,这是最好的

        $friends = $facebook->api('/me/friends');
    
        echo '<ul>';
        foreach ($friends["data"] as $value) {
            echo '<li>';
            echo '<div class="pic">';
            echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
            echo '</div>';
            echo '<div class="picName">'.$value["name"].'</div>'; 
            echo '</li>';
        }
        echo '</ul>';
    
        10
  •  -3
  •   Brian Webster Jason    13 年前

    header('content-type:text/html;charset=utf-8');

    在页面中输入。