FB SDK 产生 PHP 致命错误
FB SDK produces a PHP Fatal error
首先注意到 [2017 年 3 月 27 日 17:47:16 GMT+0] 一个运行良好的 FB SDK 集成,允许人们通过他们的 Facebook 帐户登录我们的网站刚刚停止工作。服务器日志显示以下错误
PHP Fatal error: Cannot use object of type stdClass as array in fb-sdk/FacebookRedirectLoginHelper.php on line 191
我们没有做任何应该启动它的相关代码更改。
我们错过了升级吗?
第 191-193 行的建议修复:
if (isset($response->access_token)) {
return new FacebookSession($response->access_token);
}
您也可以尝试将 $response
转换为数组,但这不是优化的解决方案。所以,继续尝试上述解决方案。
或尝试在 src/Facebook/FacebookRedirectLoginHelper.php
中替换
if (isset($response['access_token'])) {
return new FacebookSession($response['access_token']);
与
$accessToken = null;
if (is_object($response) && isset($response->access_token)) {
$accessToken = $response->access_token;
} elseif (is_array($response) && isset($response['access_token'])) {
$accessToken = $response['access_token'];
}
if (isset($accessToken)) {
return new FacebookSession($accessToken);
将FacebookRedirectLoginHelper.php
中第186行和第187行的“$response['access_token']”替换为“$response->access_token”
更好的解决方案是迁移到 SDK 5
https://developers.facebook.com/docs/php/howto/example_facebook_login
首先注意到 [2017 年 3 月 27 日 17:47:16 GMT+0] 一个运行良好的 FB SDK 集成,允许人们通过他们的 Facebook 帐户登录我们的网站刚刚停止工作。服务器日志显示以下错误
PHP Fatal error: Cannot use object of type stdClass as array in fb-sdk/FacebookRedirectLoginHelper.php on line 191
我们没有做任何应该启动它的相关代码更改。 我们错过了升级吗?
第 191-193 行的建议修复:
if (isset($response->access_token)) {
return new FacebookSession($response->access_token);
}
您也可以尝试将 $response
转换为数组,但这不是优化的解决方案。所以,继续尝试上述解决方案。
或尝试在 src/Facebook/FacebookRedirectLoginHelper.php
if (isset($response['access_token'])) {
return new FacebookSession($response['access_token']);
与
$accessToken = null;
if (is_object($response) && isset($response->access_token)) {
$accessToken = $response->access_token;
} elseif (is_array($response) && isset($response['access_token'])) {
$accessToken = $response['access_token'];
}
if (isset($accessToken)) {
return new FacebookSession($accessToken);
将FacebookRedirectLoginHelper.php
中第186行和第187行的“$response['access_token']”替换为“$response->access_token”更好的解决方案是迁移到 SDK 5 https://developers.facebook.com/docs/php/howto/example_facebook_login