0

現在、ログインしているユーザーの情報を取得しようとしています。しかし、問題が発生しました。これを Yii の関数で作成しましたが、これは機能します。しかし、そうでない場合もあります。

関数に移動すると、次のことが行われます。

$accesToken = Yii::app()->facebook->getAccessToken();
$results = Yii::app()->facebook->api('/me');
print_r($results);

これを起動するとすべての情報が表示されますが、同じページを更新すると次のエラーが表示されます。

Error 500
An active access token must be used to query information about the current user.

そして最も奇妙なことは、数秒待ってから再度更新すると、関数の最初のロードのようにユーザーの情報が得られることです。

だから私は本当にこの問題を解決する方法にこだわっています.2回目ではなく1回はうまくいく理由が本当にわからないからです.

関数全体は次のとおりです。

public function actionLogin() {
    $facebookID = Yii::app()->facebook->getUser();

    if($facebookID == 0) {

            echo 'No Facebook id.';

    } else {
        $record = Users::model()->findByAttributes(array('FB_id'=>$facebookID));
        if($record===null) {

            echo 'Got facebookID but not in database!';
            echo $facebookID;
        } else {

            $accesToken = Yii::app()->facebook->getAccessToken();
            $results = Yii::app()->facebook->api('/me');
            print_r($results);
            echo '<br><br>';
            echo $accesToken;
            //echo 'Got facebookID and is in database!';
        }
    }
    /*
    echo $facebookID;
    echo '<br>';
    echo $accesToken;
    */
}
4

2 に答える 2

0

試してみてください$results = Yii::app()->facebook->api('/me?access_token=' . $accesToken);

于 2013-01-17T18:30:29.717 に答える
0

これは私にとってはうまくいきました:The Access Token is Valid but We get OAuthException: An active access token error

public function __construct() {
    $this->facebook = new Facebook(array(
        'appId'  => $this->appId,
        'secret' => $this->appSecret,
    ));
    $this->facebook->setAccessToken(Yii::app()->session['access_token']);
}
于 2014-03-05T12:11:18.627 に答える