0

Facebook の JavaScript クライアント側のアプリ認証に問題があります。以下のコードは、アプリが承認されていない場合に期待どおりに機能し、アプリ承認ポップアップが表示されます。同じコードを codeignigter で実行すると、認証ダイアログが表示されません。

      // 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/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));

  // Init the SDK upon load
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '169550646480230', // App ID
      channelUrl : '//'+window.location.hostname+'/channel', // Path to your Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });
4

2 に答える 2

0

これを考え出した。

Javascript 認証の前に PHP facebook 呼び出しが実行されると、サーバーで例外が生成され、すべての HTML アクティビティが停止します。理由からAsyncと呼ばれていると思います。

于 2012-04-18T18:52:54.150 に答える
0

これは、次の 2 つのことが原因である可能性があります (ここでは仮定を行っています)。

  1. CSRF が有効で、Facebook からの外部応答をブロックしている
  2. FB からの応答は、無効な URI 文字が原因で除外されます。

最初に CSRF を無効にし、それが機能するかどうかを確認します。それが私の出発点になります。

于 2012-04-17T14:12:39.750 に答える