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

はい、ジェイソンがコメントしたように、認証されたユーザーがないようです。

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 に答える