10

FB.init(直前に</body>)呼び出してからFB.getLoginStatus(callback)、コールバック関数を起動しないという単純なこと。

デバッグ後、SDKは「ロード」(つまり)フェーズでスタックし、「ロード」されることはないと思います。そのFB.Auth._loadState == 'loading'ため、SDKがロードされるまで、すべてのコールバックがキューに入れられます。デバッグ中に「ロードされた」イベントを強制的にFB.Event.fire('FB.loginStatus', 'loaded')起動すると(興味がある場合に備えて)、コールバックが正しく呼び出されます。

関連する可能性のある追加の詳細:

  1. 私のアプリはFacebookiframeアプリです(apps.facebook.com/myappから読み込まれます)
  2. IE9を使用しています。Chromeでも同じ動作が発生します
  3. アプリはhttp://localhostでホストされています

どうしたの?SDKがロードされないのはなぜですか?

ありがとう

更新:Chromeで試してみたところ、機能しました(以前は機能しなかった理由はわかりません)。IEではまだ機能しません

4

6 に答える 6

6

Windows の Firefox 3.5 でも同じ問題が発生しましたが、ページに最初にログインしたときだけでした (おそらく、低速のマシンであり、奇妙なタイミングの問題が発生していたためです)。

チェックするたびにFBにログインステータスCookieを強制的に更新させることで修正しました。

FB.getLoginStatus(callback, true); //second argument forces a refresh from Facebook's server. 

「force=true」がないと、コールバックが起動しないことがあります。

于 2011-05-10T00:48:30.573 に答える
4

まったく同じ問題が発生し、Facebookのセキュリティ設定で「セキュアブラウジング」を無効にすることで解決しました。セキュアブラウジングをオンのままにすると、ページは「https」として強制されますが、「セキュアキャンバスURL」が設定されていなかったため、コンソールでも多くのエラーが発生しました。

これが誰かを助けるかもしれないことを願っています:)

于 2012-10-22T20:45:46.807 に答える
2

私の経験では、サードパーティの Cookie が無効になっている場合、getLoginStatus() は Firefox でコールバックを呼び出すことはありません。

元の投稿者は、彼のアプリケーションがhttp://localhostでホストされていると述べました。私はそれで運が良かったことがなく、それが問題を引き起こすと信じています.

ちょうど今日、ユーザーが実際にアプリに接続していない限り、どのブラウザーでも getLoginStatus がコールバックを呼び出さないという問題がありました。これがFacebook側のバグであり、彼らが解決することを願っています.

于 2011-12-13T20:27:56.893 に答える
1

FB.getLoginStatus がそのコールバックを起動しないもう 1 つの可能性は、そのアプリケーションを表示する権限がない「テスト」ユーザー アカウントを使用している場合です。Facebookがエラーメッセージを表示しないのはかなり悪いことです。また、不正な appId と redirectUrl でコールバックが失敗することも確認しました。

于 2012-06-15T08:39:25.030 に答える
0

特にChromeでこの問題に遭遇しました。ページの読み込み時と、ユーザーが開始したアクションの後に呼び出してみましたが、成功しませんでした。

クロスドメインの問題ではないことが判明しました。getLoginStatus()呼び出しは、Chrome の Un-Passwordise 拡張機能によってブロックされていまし。拡張機能を無効にするとすぐに、ページの読み込み時でも完全に機能しました。

この問題の詳細については、こちら: FB.Login(..) 時の Facebook iFrame アプリでの Chrome のみのクロスドメイン スクリプティング エラー

于 2012-01-22T20:28:53.057 に答える
0

この質問は少し古いことを理解していますが、解決策を探して出くわしました。

「Facebook ログインを使用した Web サイト」セクションで、Facebook アプリの構成で設定した内容を再確認してください。サイト URL ドメインは、FB.getLoginStatus (およびその他の関連する認証 Javascript) が提供されているページのドメインと一致する必要があります。

何時間も格闘した後、新しいサーバーで既存のアプリ構成を再利用することはできず、この新しいサーバーの Web サイト ログインを処理する新しいアプリを作成する必要があることに気付きました。

他の回答はおそらくあなたの特定のケースでは同様に有効ですが、私のような他の人がこれについてしばらく苦労している可能性があるため、これが別の場所を確認できることを願っています. 私の特定のケースでは、正しいサイト URL を使用して新しいアプリを作成することが答えでした。

于 2012-07-24T13:21:52.393 に答える