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