FB SDK создает фатальную ошибку PHP

Впервые заметили [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