Facebook php sdk:getSessionFromRedirect返回null

时间:2014-06-26 10:21:42

标签: php facebook sdk phalcon

我正在使用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和密码调用session_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;
    }
}

但返回的会话始终为真。代码昨天工作正常,我只是做了一些重构。无法弄清楚问题。

1 个答案:

答案 0 :(得分:0)

它解决了自己而没有做任何事......我仍然不知道出了什么问题。