我有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应用程序,它也失败了。
欢迎任何提示! :)
编辑:更改代码示例中的注释,使读者更清楚。