Php $facebook->;getUser()返回0并显示异常

Php $facebook->;getUser()返回0并显示异常,php,facebook-graph-api,Php,Facebook Graph Api,我正在从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

我正在从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;
    }
公共函数facebookapiAction(){
需要“auth/src/facebook.php”;
$facebook=新的facebook(数组)(
“appId”=>“3xxxxxxxxxxxxxxxxxxxxxx7”,
“机密”=>“6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX5”,
“cookie”=>正确,
));
返回$facebook;
}
公共函数facebookalbumAction(){
$session=new Zend_session_名称空间(“用户”);
$facebook=$this->facebookapiAction();
$access_token=$facebook->getAccessToken();
$facebook->setAccessToken($access\u token);
$user=$facebook->getUser();
$albumid=$this->_getParam('albumid');
如果($user“0”和&$user“”){
如果($albumid!=“”){
$photos=$this->albumlistAction($albumid,$facebook);
}否则{
试一试{
$albumArrInfo=array();
$user_profile=$facebook->api('/me/albums');
}捕获(FacebookApiException$e){
错误日志($e);
出口
}
}
$session->fb_logout=$facebook->getLogoutUrl(数组('next'=>“http://{$_SERVER['http_HOST']}/register/logout/id/logout”);
$session->isfb=1;
}否则{
如果(isset($请求['getfurl'])和&(isset($请求['state'])){
$loginUrl=$facebook->getLoginUrl(数组('display'=>'popup','scope'=>'管理页面、用户事件、电子邮件、阅读流、用户照片、离线访问');
echo$loginUrl;
出口
}
}
}
公共函数albumlistAction($albumid,$facebook){
$photos=$facebook->api(“/{$albumid}/photos”);
$albumArr=array();
$albumArrInfo=array();
foreach($photos['data']作为$photo){
$albumArr['id']=$photo['id'];
$albumArr['name']=$photo['name'];
}        
返回$albumArr;
}
这个代码有什么问题

需要帮助。

试试这个:

$user = $facebook->getUser();
...
$user_profile = $facebook->api('/'.$user.'/albums'); 

听起来我也面临着类似的问题。错误报告如下:


尝试更新到PHP-SDK(3.2.2)的最新版本。

您确定有用户授予您的应用程序所需的权限吗?@Termis:抱歉,我没有告诉您FB似乎有问题,我昨天遇到了同样的错误消息,代码运行得很好…@RedDragon:但创建了新的应用程序,但它仍然存在。经过进一步调查,我认为这可能与2012年12月5日的破坏性更改有关: