我在用着 Facebook SDK 的最新版本 (它可以连接到称为“图形 API”的东西,尽管我不确定)。我已经改编了 Facebook 的示例代码,让我可以连接到 Facebook,这很有效......但我无法获得我的朋友名单。

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

这会产生错误消息:“致命错误:未捕获的 OAuthException:(#803) 您请求的某些别名不存在:Friends.get 被扔进 /mycode/facebook.php 第 543 行”

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

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

$session = $facebook->getSession();
if ($session) {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
}
print_r($me);
有帮助吗?

解决方案

我想这是你想要什么:

$friends = $facebook->api('/me/friends');

其他提示

这是PHP代码的真人版,以从Facebook得到您的朋友

<?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>';
    }
?>

获取朋友喜欢@nfvs描述的是一个很好的方式。它输出与属性的标识和名称(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>';
}

对于使用 Graph API v2.0 遇到这个问题的人,请注意:这将不再起作用。在 v2.0 中,调用 /me/friends 只会返回该人的好友列表 也使用该应用程序:

  • 需要具有 user_friends 权限的用户访问令牌才能查看当前人的好友。
  • 这只会返回任何使用过(通过 Facebook 登录)发出请求的应用程序的朋友。
  • 如果此人的好友拒绝 user_friends 权限,则该好友将不会出现在此人的好友列表中。

如果您想使用REST终点,

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

否则,如果您使用的图形API,然后使用,

$friends = $facebook->api('/me/friends');

在最新版本的Facebook SDK中,Facebook已经关闭,让你由于安全原因访问某一个好友列表功能...查看文档,以了解更多...

使用FQL相反,它是一个像SQL但对于Facebook的数据表,可以轻松地满足数据查询you'de喜欢做。 您将不必使用所有这些/ XX / XXX / XX的电话,只知道你中intereseted的表和列。

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

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

  

使用笨的OAuth2 / 0.4.0火花,

     

在Auth.php文件,

$user = $provider->get_user_info($token);

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

和在下提供商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.
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>';

头( '内容 - 类型:文本/ HTML;字符集= UTF-8');

在页面的输入。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top