2017-03-28 69 views
-1

首先注意到[27-Mar-2017 17:47:16 GMT + 0]一个FB SDK集成工作得很好,允许人们通过他们的Facebook帐户登录到我们的网站刚刚停止工作。服务器日志显示以下错误FB SDK产生PHP致命错误

PHP Fatal error: Cannot use object of type stdClass as array in fb-sdk/FacebookRedirectLoginHelper.php on line 191 

我们还没有做过任何应该启动它的相关代码更改。 我们错过了升级吗?

回答

2

线路191-193修复建议:

if (isset($response->access_token)) { 
return new FacebookSession($response->access_token); 
} 

您也可以尝试转换$ respons到阵列,但不会被优化的解决方案。所以,继续尝试上述解决方案。

或者尝试替换的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); 
+0

感谢您提供此建议的解决方案。您是否使用Facbeook登录测试过自己?你有什么想法为什么突然停止工作? – Collector

+0

Facebook没有正式升级,但我们今天上午也看到了我们项目的这个错误,这个修复对我们很有帮助。我希望这会帮助你。 –

+0

这似乎是在我们的开发机器上工作,很快我们会部署,我会更新此评论。非常感谢你。您使用的是哪个版本的SDK? – Collector

0

更换上线 “$回应[ 'ACCESS_TOKEN']” 以 “$响应 - >的access_token” 186和187在FacebookRedirectLoginHelper.php