41

コンソールにこのメッセージがあります

FB.getLoginStatus() called before calling FB.init(). 

私のコード

<div id="fb-root"></div>
<script>
        // Load the SDK Asynchronously
        (function(d){
           var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
           if (d.getElementById(id)) {return;}
           js = d.createElement('script'); js.id = id; js.async = true;
           js.src = \"//connect.facebook.net/fr_FR/all.js#xfbml=1\";
           ref.parentNode.insertBefore(js, ref);
         }(document));
</script>
<div class="fb-like" data-send="false" data-layout="button_count" data-width="100" data-show-faces="false"></div>

理由がわかりません。私のすべてのウェブサイトで、この facebook のようなプラグインを 1 回だけ呼び出しました。

4

6 に答える 6

91

簡潔な答え

URL に追加&status=0してjs.src、警告を非表示にします。

//connect.facebook.net/fr_FR/all.js#xfbml=1&status=0

完全な答え

FB.init()パラメータがハッシュ (#) 記号の後に指定されている場合、ロード時に facebook スクリプトによって内部的に呼び出されます。ここxfbmlが渡されるので、そうFB.init()呼ばれます。

(ソースコード: http://connect.facebook.net/fr_CA/all/debug.jsこの投稿時の行 8699)

明示的に指定されていない場合は、init() のデフォルトの引数が使用されますstatus。arg のデフォルトはtrue- です。これにより、起動時に FB スクリプトが呼び出さgetLoginStatus()れます。関数呼び出しにはアプリ ID が必要であるため、エラーが発生します。

FB ソーシャル プラグインはアプリ ID を必要としません。facebook.com からの iframe にレンダリングされるため、FB のログイン ステータスと Cookie にアクセスできます。

FB 開発者のソーシャル プラグイン セクションの [コードを取得] ウィザードは、パラメータを含む URL を生成します。これは、パラメータ IMHO xfbmlで更新する必要があります。status=0

于 2013-05-16T17:09:09.793 に答える
1

の解決策を実装した後に「無効なアプリ ID」という警告が表示された場合

https://stackoverflow.com/a/16593474/1428052

次に appId を js.src URL に追加して、それが機能するようにします。

//connect.facebook.net/en_US/all.js#xfbml=1&status=0&appId=YOUR_APP_ID

この appId が存在すると、基本的なアプリ設定で FB.init() が自動的に呼び出されます。

于 2014-10-02T12:19:04.123 に答える
0

FB.initfbログインステータス関数を呼び出す前に関数を呼び出す必要があります

    <div id="fb-root"></div>
    <script src="//connect.facebook.net/en_US/all.js"></script> 
    <script>
      FB.init({
            appId  : 'YOUR APP ID',
            status : true, // check login status
            cookie : true, // enable cookies to allow the server to access the session
            xfbml  : true,  // parse XFBML
            oauth : true
        });

    // Load the SDK Asynchronously
    (function(d){
       var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
       if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = \"//connect.facebook.net/fr_FR/all.js#xfbml=1\";
       ref.parentNode.insertBefore(js, ref);
     }(document));
  </script>
于 2013-02-15T06:41:43.913 に答える
0

ここで同様の SO の質問に答えました。
実際、「いいね」ボタンもまったく表示されない場合、この質問は他の質問とまったく同じです。

私の場合、コンソール エラーが表示されますが、[いいね] ボタンも表示されます。

于 2012-10-16T09:57:55.507 に答える
0

このコードを使用して動作させました:

<!--[if IE]>
<script src="https://connect.facebook.net/pt_BR/all.js?xfbml=1" type="text/javascript"></script>
<![endif]-->
<script src="https://connect.facebook.net/pt_BR/all.js#xfbml=1" type="text/javascript"></script>

 <div class="fb-like"
          data-href="https://www.myurl.com" 
          data-send="true" data-layout="button_count" 
          data-width="50" data-show-faces="false"></div>
于 2013-05-13T20:37:32.817 に答える