2

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

このコードの何が問題なのですか。

助けが必要。

4

2 に答える 2

2

私が直面していたのと同じような問題のように聞こえます。バグレポートはこちら:http ://developers.facebook.com/bugs/238039849657148

PHP-SDKの最新バージョン(3.2.2)に更新してみてください。

于 2012-12-07T03:56:26.397 に答える
0

これを試して:

$user = $facebook->getUser();
...
$user_profile = $facebook->api('/'.$user.'/albums'); 
于 2012-12-06T21:23:28.133 に答える