2017-03-28 2 views
-1

最初に気付いた[27-Mar-2017 17:47:16 GMT + 0]人々が自分のFacebookアカウントから私たちのサイトにログインできるようになったFB SDKの統合は、サーバーログに次のエラーが表示されますFB SDKはPHP致命的なエラーを生成します

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

関連するコードの変更は開始されていません。 アップグレードができませんでしたか?あなたはまた、配列に$ RESPONSを変換しようとすることができますが、それが最適なソリューションではありません

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

答えて

2

は、ライン191から193の修正を提案しました。だから、上記の解決策を試してみてください。

またはラインの "$対応 - > access_tokenは" と "$応答[ '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); 
+0

この提案されたソリューションをありがとうございます。あなたはFacbeookのログインでこれを自分でテストしましたか?なぜ突然それが動作を停止したか考えていますか? – Collector

+0

Facebookで公表された公式アップグレードはありませんが、今朝の私たちのプロジェクトでこのエラーが発生し、この修正が私たちのために働いていました。これが今あなたのお手伝いをすることを願っています。 –

+0

これは私たちの開発マシンで動作しているようですが、すぐに展開して、このコメントを更新します。大変ありがとうございます。どのバージョンのSDKを使用していますか? – Collector

0

用いたSRC/Facebookの/ FacebookRedirectLoginHelper.phpに

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

を交換してみてください186 and 187 in FacebookRedirectLoginHelper.php

関連する問題