0

我在我的codeigniter应用程序上使用 Facebook API 登录 Facebook。它似乎工作正常,除非用户已经登录 Facebook 但从未授权我的应用程序。我将他重定向到getLoginUrl()哪个应该让他授权我的应用程序,但它永远不会发生!

我真的很迷茫,一直在寻找解决方案,任何帮助将不胜感激

这是我在 facebook 登录点击时调用的索引函数:

 $data=array(
                'redirect_uri' => '/facebookcontroller/handle_facebook_login/',
                'scope' => 'publish_stream,email'
            );

            redirect($this->fbconnect->getLoginUrl($data));

redirect_uri的是有效的,我仔细检查了。

因此,如果用户已登录,它将尝试将他重定向到getloginurl()应该让用户授权的地方,但事实并非如此。它直接进入redirect_uri.

4

1 回答 1

1

你检查用户吗?

    // Init the Facebook SDK
    $facebook = new Facebook(array(
           'appId'  => $app_id,
           'secret' => $app_secret,     
           'cookie' => true
    ));

    // Get the current user
    $user = $facebook->getUser();

if (!$user) {
        $loginUrl = $facebook->getLoginUrl(array(
            'scope' => $scope,
            'redirect_uri' => $app_url,
            ));

            echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    }
    else{        

    $user_profile = $facebook->api('/me');

    // STUFF
    }
于 2012-12-07T11:55:34.433 回答