2011-08-29 18 views
10

Facebookと統合されたFacebookアプリケーションを開発中で、ユーザーのFBセッションを取得しようとしています。私が理解する限り、一般的な使用シナリオは次のとおりです。FB.getLoginStatusはユーザーがFacebookにログインしていないと起動しません

  1. コールFB.init()
  2. それを適切なコールバックを与える
  3. コールFB.getLoginStatus

次のコード(アプリケーションID)を実行しました。

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
    <!-- 

    function init(){ 
     FB.init({ 
      appId : '9999999999999', 
      status : true, // check login status 
      cookie : true, // enable cookies to allow the server to access the session 
      xfbml : true, // parse XFBML 
      channelUrl : 'http://127.0.0.1:8888/channel.html', // custom channel 
      oauth : true // enable OAuth 
     }); 
     alert('going to call FB.getLoginStatus '); 

     FB.getLoginStatus(function(response) { 
      alert('whoo hoo!!! getLoginStatus called the callback'); 
     }); 
    } 
    init(); 
    //--> 
</script> 

ユーザーが既に同じブラウザセッションでFacebookにログインしている場合、期待どおり、その後すべてが動作します - 人口_response.authResponse_を返します。ただし、ユーザーがFacebookにログインしていない場合、コールバックはまったくトリガーされません。ブラウザのネットワークログを確認すると、Facebookは次の応答を返します(http://www.facebook.com/dialog/oauthからのリクエスト?)。

Application Error: There was a problem getting data for the application you requested. The application may not be valid, or there may be a temporary glitch. Please try again later.

ChromeとFirefox(Mac)でこれを確認しました。


更新

私は答えたみんなに感謝したいと思います。

Benさんのコメントが答えました。

ありがとうございました - あなたは私に多くの欲求不満を救った。

+12

あなたのアプリはサンドボックスモードですか?もしそうなら、これを引き起こす可能性のあるバグがあります:http://bugs.developers.facebook.net/show_bug.cgi?id=19359 –

+0

channelUrlをループバックとして使用していますか?私はループバックがその機能のために働くとは思わない。 –

+0

channelUrlの使用方法についてはこちら[https://developers.facebook.com/docs/reference/javascript/FB.init/]で説明しています。明らかに、ロード時間を短縮し、いくつかの問題を回避するのに役立ちます。 私が開発中に何かしても本当に気にしないで、私がライブに行くときに助けてください。 –

答えて

11

原因は最近のbugで、サンドボックスモードにのみ影響します。私はサンドボックスモードをオフにし、それは魅力的に機能しました。

+1

私はあなたにキスすることができます!どうもありがとうございました。私はすべての夜を過ごして、試してみる...私は何が起こったか分からなかった...いい仕事Facebook。 6ヶ月後、まだ問題は残っています... –

+1

リンクは現在死んでいます。 –

0

は、イベントをロードする強制的に試してみてください:

FB.getLoginStatus(function(response) { 
    alert('whoo hoo!!! getLoginStatus called the callback'); 
}, true); 

それはFB.getLoginStatusに記載されています。

場合によっては、イベントが発生しないことがあります。

+0

その1つ、喜びはありません –

+0

負荷を強制するために真を追加すると、私のために無応答の問題が修正されました! –

関連する問題