简体   繁体   English

FB SDK产生PHP致命错误

[英]FB SDK produces a PHP Fatal error

First noticed [27-Mar-2017 17:47:16 GMT+0] a FB SDK integration that worked very well allowing people to login to our site via their Facebook account just stopped working. 首先注意到[2017年3月27日17:47:16 GMT + 0] FB SDK集成非常有效,允许人们通过其Facebook帐户登录到我们的网站而刚刚停止工作。 The server logs show the following error 服务器日志显示以下错误

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

We have not done any relevant code change that should have initiated it. 我们尚未进行任何应启动的相关代码更改。 Have we missed an upgrade? 我们错过升级了吗?

Suggested fix for line 191-193: 建议的191-193行修复:

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

You can also try converting $response to array but that won't be optimized solution. 您也可以尝试将$response转换$response数组,但这不是优化的解决方案。 So, go ahead and try aforementioned solution. 因此,继续尝试上述解决方案。

Or try replacing in src/Facebook/FacebookRedirectLoginHelper.php 或者尝试替换为src/Facebook/FacebookRedirectLoginHelper.php

 if (isset($response['access_token'])) {
    return new FacebookSession($response['access_token']);

WITH

  $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”

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM