我正在登录并从 facebook 获取相册:
1)这里,首先函数$facebook->getUser()
返回0
2)如果我注释了其余的代码,即if/else
条件,那么它会进入 catch 块并显示异常,例如:
Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user.
3)我在stackoverflow和google上发现了很多关于这个的帖子,几乎所有的都试过了,但仍然没有用。这就是我在这里分享代码的原因。
4)我还创建了新的应用程序 facebook 并尝试了它,但问题仍然存在。
以下是我的代码:
public function facebookapiAction() {
require 'auth/src/facebook.php';
$facebook = new Facebook(array(
'appId' => '3xxxxxxxxxxxxxxxxxxxx7',
'secret' => '6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5',
'cookie' => true,
));
return $facebook;
}
public function facebookalbumAction() {
$session = new Zend_Session_Namespace('user');
$facebook = $this->facebookapiAction();
$access_token = $facebook->getAccessToken();
$facebook->setAccessToken($access_token);
$user = $facebook->getUser();
$albumid = $this->_getParam('albumid');
if ($user <> '0' && $user <> '') {
if ($albumid != "") {
$photos = $this->albumlistAction($albumid, $facebook);
} else {
try {
$albumArrInfo = array();
$user_profile = $facebook->api('/me/albums');
} catch (FacebookApiException $e) {
error_log($e);
exit;
}
}
$session->fb_logout = $facebook->getLogoutUrl(array('next' => "http://{$_SERVER['HTTP_HOST']}/register/logout/id/Logout"));
$session->isfb = 1;
} else {
if (isset($_REQUEST['getfurl']) && !(isset($_REQUEST['state']))) {
$loginUrl = $facebook->getLoginUrl(array('display' => 'popup','scope' => 'manage_pages,user_events,email,read_stream,user_photos,offline_access'));
echo $loginUrl;
exit;
}
}
}
public function albumlistAction($albumid, $facebook) {
$photos = $facebook->api("/{$albumid}/photos");
$albumArr = array();
$albumArrInfo = array();
foreach ($photos['data'] as $photo) {
$albumArr['id'] = $photo['id'];
$albumArr['name'] = $photo['name'];
}
return $albumArr;
}
这段代码有什么问题。
需要帮忙。