Facebook php sdk api('/ me'),并不总是回应

时间:2013-01-17 14:32:38

标签: facebook yii facebook-php-sdk

目前我正在尝试获取我登录用户的信息。但我遇到了一个问题,我在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.

最奇怪的是,当我等待几秒钟并再次刷新时,它会在第一次加载函数时向我提供用户信息。

所以我真的坚持如何解决这个问题,因为我真的没有任何线索为什么它有效,而不是第二次。

整个功能是:

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;
    */
}

2 个答案:

答案 0 :(得分:0)

尝试使用$results = Yii::app()->facebook->api('/me?access_token=' . $accesToken);

答案 1 :(得分: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']);
}