Facebook API:随机获得PHP的朋友

时间:2012-10-11 15:59:56

标签: php facebook facebook-graph-api facebook-fql

我想找个随便的朋友。我在SO上找到了this个帖子,它看起来应该可行。 这是我的代码:

            $config = array(
                'appId'  => APP_ID,
                'secret' => SECRET,
                'cookie' => true,
            );
            $facebook = new Facebook($config);

            $params = array(
                'method' => 'fql.query',
                'query' => "SELECT uid, name, sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) order by rand() limit 1",
            );

            $result = $facebook->api($params);
            echo print_r($result);

但我收到错误:

Fatal error: Uncaught Exception: 102: Requires user session thrown in /home/path/to/base_facebook.php on line 1050

问题出在哪里?我试图搜索可能的问题,但我没有太大成功......

1 个答案:

答案 0 :(得分:2)

是的,正如Jason评论的那样,看起来你没有经过身份验证的用户。

由于您使用的是PHP SDK,因此解决此问题的最快方法如下:

$config = array(
    'appId'  => APP_ID,
    'secret' => SECRET,
    'cookie' => true,
);
$facebook = new Facebook($config);

// This will redirect the user to a login/authentication dialog.
if (!$facebook->getUser()) {
    echo "<script>window.location = '".$facebook->getLoginUrl()."'</script>";
    exit();
}

$params = array().. etc, the rest of your code

尽管缺乏最佳实践代码 - 这应该可以解决问题。