2016-12-30 18 views
1

私たちのページがまだ好きではない人々のためのコンテンツを隠すプロセスです。はじめてFacebook SDKを使用するアイデアは、アクションテキストとボタンを呼び出すことです。ボタンをクリックすると、すでにユーザーがページを好きな場合、コンテンツが表示されます。表示されていない場合は、類似のボタンを表示し、クリック後のコンテンツを表示します。ここで「キャッチされていないReferenceError:FBがコンソールに定義されていません」

はSDK

window.fbAsyncInit = function() { 
FB.init({ 
    appId  : '348511868693215', 
    xfbml  : true, 
    version : 'v2.8' 
}); 
FB.AppEvents.logPageView(); 
}; 

    (function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

を接続し、ここでSDKがロードされる前に、実行すなわちFB前に利用可能である「チェックする」

FB.api({ 
    method:  "pages.isFan", 
    page_id:  page_id, 
    }, function(response) { 
     console.log(response); 
     if(response){ 
      //if liked 
     $(".show-poll").click(function(){ 
     $(".actualpoll").show(); 
     }); 
     } else { 
      $(".show-poll").click(function(){ 
     $(".likepage").show(); 
     }); 
     } 
    } 
    ); 
+0

'var FB 'はどのコード行に書いていますか?変数*を評価する必要があると思いますか? – therobinkim

+0

* "そしてここにチェックするための実際のコードです" *他のコードとの関係でそのコードはどこにありますか?おそらくSDKが含まれる前に実行されます。 'window.fbAsyncInit'関数を作成した理由は、SDKが利用可能なときに呼び出されます。したがって、あなたの他のコードは、その関数の中にあるか、その関数から呼び出されなければなりません –

+0

"チェックコード"は、sdk接続コードの直後です。 – Shalambalam

答えて

0

あなたのコードをチェックするための実際のコードです。 window.fbAsyncInit関数内のコードを移動します。この関数は、SDKが利用可能になると呼び出されます。

+0

これで、window.fbAsyncInit = function(){* and *}; *に "checking code"をラップしました。 :310) v .__ラッパー(sdk.js:90) at sdk.js:133 – Shalambalam

+0

まあ、あなたはどこにでも 'page_id'を宣言していないので、エラーが予想されます。私はそれがどこかで定義されると仮定しました。そうでなければ、なぜあなたは最初のコードでそれを持っていますか? –

+0

壮大な失敗...ページIDを追加しましたが、同じエラーが残っています – Shalambalam

関連する問題