0

ユーザーがFacebookにログオンしているときにクローム拡張機能を使用して簡単なアラートウィンドウを表示しようとしています。私はjavascript sdkコードを初期化していて、background.htmlページにログインステータスを取得するコードもあります。私のmanifest.jsonファイルはバックグラウンドページを正しく呼び出します。Chrome拡張機能によるjavascriptを使用したFacebookの認証

background.htmlページにブレークポイントを配置できません。 。私はこれは私がjavascriptのFacebookのSDKを宣言し、ユーザーがログインしているかどうかをチェックするに取り掛かるべきかであるかどうかを知りたい

<div id="fb-root"></div> 

<script src="http://connect.facebook.net/en_US/all.js"></script> 

<script> 

window.fbAsyncInit = function() { 
    FB.init({ 
     appId : 'my App id (i have my app id)', 
     status : true, // check login status 
     cookie : true, // enable cookies to allow the server to access the session 
     xfbml : true // parse XFBML 
    }); 
    }; 

    (function() { 
    var e = document.createElement('script'); 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 

FB.getLoginStatus(function(response) { 
    if (response.authResponse) { 
      alert("logged in");} 
    else { 
     // no user session available, someone you dont know                            
    } 
}); 

</script> 
+1

あなたはこれを行うための最善の方法を見つけましたか? :) – TigrouMeow

答えて

2

あなたは、あなたのコード内の問題の多くを持って、最初にそれを修正して、説明することができます:

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'your app id', 
     status: true, 
     cookie: true, 
     xfbml: true, 
     channelUrl : 'http://WWW.MYDOMAIN.COM/channel.html', 
     oauth : true 
    }); 

    FB.getLoginStatus(function(response) { 
     if (response.authResponse) { 
       alert("logged in");} 
     else { 
      // no user session available, someone you dont know                            
     } 
    }); 
    }; 
    (function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + 
     '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 

今考慮すべきポイント:

  1. Javascript SDK documentation
  2. oauthフラグを使用して読みますOAuth 2.0
  3. を有効にするには、あなたが
  4. を入れて(私はここでは非同期にそれをロードしています)非同期ロードまたは標準的な方法ではなく、それらの両方を使用するか必要なすべてのあなたのFacebookがfbAsyncInit
  5. に呼び出すチャンネルファイルを追加します
  6. はTHER、これは背景ページに行われているので、あなたが背景ページがヘッドレスであるため、認証は別のページで行われていることを確認する必要があり、これらの記事にtwo
+0

こんにちはifaour、これはアドオンであるため、チャンネルURL以外のあなたのおすすめを実装しました。しかし、私はFacebookにログインしているときにこのアラートウィンドウが表示されません。また、私のinspect要素ウィンドウに 'fb-root'も表示されません。 – Praveen

+0

Fb.getloginStatus()の外で呼び出すと警告ウィンドウが表示されます – Praveen

+0

[this](http://codepad.org/Ip66G79A)を試すことができますか? Facebookにログインしているときにこのページを読み込むと、*ログインしたアラートが表示されます。 – ifaour

0

oneを読みますeにはUIはありません。では、ユーザーはどのようにして承認をクリックしますか?

私はFacebook APIを知らないのですが、OAuth2なので、 "facebook_auth.html"と呼ばれる別のhtmlページを作成し、そこに認証コードを置きます。それが承認された後、ifaourが述べたものに従ってください。彼は彼が何をしているかを知っているようだ。あなたの背景ページは、その新しいタブ(chrome.tabs.create)を認証に開くだけです。

は、このチュートリアルを見て、とFacebookにそれを適用します。 http://code.google.com/chrome/extensions/tut_oauth.html

+0

ありがとうmansour。私はそれを調べます。 – Praveen

関連する問題