0

私の Facebook アプリケーションでは、Facebook にログインして権限を付与した後、Facebook.login ダイアログが閉じません。間隔と FB.getLoginStatus を使用して回避策を試みましたが、権限を付与し、アプリがアカウント設定に表示されていても、この応答は「not_authorized」のみを返します。

ページに次のタグがあります。

<meta http-equiv="X-UA-Compatible" content="IE=9">
<script src="//connect.facebook.net/en_US/all.js"></script>

同様の質問で説明されているように、メタタグは問題ではないようです

FB.init({
        appId: 'xxxxxxxxxxxxx', 
        status: false,
        channelUrl: 'My_Channel_File.html'
    });

channel-File には、上記と同じ script-tag が含まれています。他のパラメーターは、oauth、xfbml、cookie、status、およびFrictionlessRequests など、さまざまに変更しました (別の場所で見たことがあります)。

この問題は、IE10 を使用する Win8 でのみ発生します。

前もって感謝します!

4

1 に答える 1

0

問題を解決しました。FB-jssdk を非同期で初期化する必要があります。

window.fbAsyncInit = function () {
    FB.init({
        appId: 'xxxxxxxxxxxxxx',
        status: true,
        cookie: true,
        xfbml: true
    });
};

(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)); 

何らかの理由でこのようにすると、FB.login のダイアログが期待どおりに閉じられ、すべて正常に動作します =)

編集: 問題は、IE で変更する必要があるセキュリティ プロパティでした:
インターネット プロパティ -> 安全性 -> 下部の [セキュア モード] のチェックボックスを有効にする必要があります。そうすれば、同期でも機能します。非同期FB.initとして
(私はドイツ人なので、英語のプロパティ名はわかりません)

于 2013-02-20T15:05:49.763 に答える