Впервые заметили [27-Mar-2017 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); }
Вы также можете попробовать преобразовать $ 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);
Замените «$ response ['access_token»] на «$ response-> access_token» в строке 186 и 187 в FacebookRedirectLoginHelper.php
Лучшим решением является переход на SDK 5 https://developers.facebook.com/docs/php/howto/example_facebook_login