【问题标题】:FB SDK produces a PHP Fatal errorFB SDK 产生 PHP 致命错误
【发布时间】:2017-08-21 12:21:18
【问题描述】:

首先注意到 [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

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

【问题讨论】:

    标签: php fbsdk


    【解决方案1】:

    建议修复第 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);
    

    【讨论】:

    • 感谢您提供此建议的解决方案。您是否使用 Facbeook 登录自己对此进行了测试?你知道它为什么突然停止工作吗?
    • Facebook 没有宣布正式升级,但我们今天早上在我们的项目中也看到了这个错误,这个修复对我们有用。我希望这对你现在有帮助。
    • 这似乎在我们的开发机器上运行,很快我们将进行部署,我将更新此评论。非常感谢你。您使用的是哪个版本的 SDK?
    • 我们总是喜欢使用最新的东西 ;) 所以,我猜 Facebook SDK v5 的最新版本和图形版本是 2.8。
    • 有趣。我认为这是因为我们使用的是较旧的 v4。谢谢(你的)信息。它现在可以实时运行。很大的帮助:)
    【解决方案2】:

    在 FacebookRedirectLoginHelper.php 的第 186 和 187 行将“$response['access_token']”替换为“$response->access_token”

    【讨论】:

      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-11
        • 1970-01-01
        • 2016-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-16
        • 1970-01-01
        相关资源
        最近更新 更多