Facebook php sdk:getSessionFromRedirect返回null

Facebook php sdk:getSessionFromRedirect返回null,php,facebook,sdk,phalcon,Php,Facebook,Sdk,Phalcon,我用的是Phalcon。访问路由时调用以下函数:/registration/facebook/access: public function facebookAccess() { $app = new FacebookApp($this->config); $app->initialize(); $loginUrl = $app->getRegistrationLink($this->fbRedirectUrl); $this->

我用的是Phalcon。访问路由时调用以下函数:/registration/facebook/access:

public function facebookAccess()
{
    $app = new FacebookApp($this->config);
    $app->initialize();

    $loginUrl = $app->getRegistrationLink($this->fbRedirectUrl);

    $this->view->setVar('loginUrl', $loginUrl);
}
$app->initialize()使用我的应用id和密码调用会话_start()和FacebookSession::setDefaultApplication。链接显示正确。当我点击链接时,我会被重定向到/registration/facebook/process:

public function facebookProcess()
{
    $app = new FacebookApp($this->config);
    $app->initialize();

    if (!$app->startSession($this->fbRedirectUrl))
    {
        if ($app->getSessionError())
            $this->dispatchError($app->getSessionError());
        else
            $this->dispatchErrorStub('FACEBOOK_SESSION_INVALID');

        return;
    }

    $fbData = $app->getUser();

    if (!$fbData->save())
    {
        $this->dispatchErrorOn($fbData);
        return;
    }

    $this->view->setVar('fbData', $fbData);
}
其中startSession的定义如下:

public function startSession($redirectUrl)
{
    $helper = new FacebookRedirectLoginHelper($redirectUrl);

    try 
    {
        $this->session = $helper->getSessionFromRedirect();
        $this->sessionError = false;

        if (!$this->session)
            return false;

        return true;
    } 
    catch(Exception $ex) 
    {
        $this->session = false;
        $this->sessionError = $ex->getMessage();
        return false;
    }
}

但是返回的会话总是正确的。昨天代码运行得很好,我只是做了一些重构。无法解决问题。

它自己解决了,什么也不做。。。我仍然不知道出了什么问题。

您的控制器中是否定义了
startSession
方法?不,它在实用程序类中。尽管如此,我还是尝试在控制器中直接使用代码,但结果是一样的。