目前我正在尝试获取我登录用户的信息。但我遇到了一个问题,我在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;
*/
}
答案 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']);
}