Facebook getSession在heroku上返回null

时间:2014-09-05 15:58:07

标签: php facebook heroku

我有3个运行相同代码的FB应用程序。

有一个主应用程序在本地运行代码。有一个第一个测试应用程序,也在本地运行代码。还有第三个应用程序在Heroku实例上运行相同的代码。

当Heroku实例上运行的应用程序失败时,第一个完全正常工作。

if (!$this->session) {
  $this->helper = new FacebookCanvasLoginHelper();
  try {
    $this->session = $this->helper->getSession();  # $this->helper->getSession() always return null when executed on heroku.
    $_SESSION['facebook_session'] = serialize($this->session);

  } catch (FacebookRequestException $e) {
    scratch\Log::write($e->getMessage(), 'FacebookRequestException');

  } catch (\Exception $e) {
    scratch\Log::write($e->getMessage(), 'Exception');
  }
}

帮助者看起来非常好:

["signedRequest":protected] => object(Facebook\Entities\SignedRequest)#6 (2) {
  ["rawSignedRequest"] => string(188) "-Wlk-ju826ayyG3koaoy462wAs1AtJCyZ3iH6oJsDog.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTQwOTkzMTk3OCwidXNlciI6eyJjb3VudHJ5IjoiZnIiLCJsb2NhbGUiOiJmcl9GUiIsImFnZSI6eyJtaW4iOjIxfX19"
  ["payload"] => array(3) {
    ["algorithm"] => string(11) "HMAC-SHA256"
    ["issued_at"] => int(1409931978)
    ["user"] => array(3) {
      ["country"] => string(2) "fr"
      ["locale"] => string(5) "fr_FR"
      ["age"] => array(1) {
        ["min"] => int(21)
      }
    }
  }
}

我遇到的问题特定于Heroku上的部署。我试图在Heroku上设置一个以前在本地服务器上运行良好的FB应用程序,它也失败了。

欢迎任何提示! :)


编辑:更改代码示例中的注释,使读者更清楚。

0 个答案:

没有答案