0

我正在尝试获得一个随机的朋友。我在 SO 上找到了这个线程,它看起来应该可以工作。这是我的代码:

            $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

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

4

1 回答 1

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

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

于 2012-10-11T16:15:42.683 回答