2

作成しているFacebookアプリのアクセス許可を取得しようとしていますが、IE8でアプリを実行しようとするたびに、アクセス許可ボックスを表示できません。私はFirefoxでアプリをテストしましたが、正常に開くことができ、すべてのアクセス許可を正常に取得できます(特別なアクセス許可は要求しません)。

IE8でデバッガーを実行すると、プログラムがヒットFB.getLoginStatus(function (response) {すると(以下のコードを参照)、Facebookによって記述されたコードの無限ループに移動することがわかります。

問題は、パーミッションの呼び出し方法が原因だと思います。ユーザーがサイトにログインしようとすると、permissionsメソッドを呼び出すログインに使用するフォームがあります。これが私が使用するフォームのフォームとボタンです:

<form id = "membershipInfo" method = "post" action = "Login.aspx">
<input type = "button" id = "submitInfo" class = "MemberInfo" value = "Take Me There!" onclick = "authorize(acceptPermissions, rejectPermissions)"/>

そして、これが私が使用するauthメソッドです:

function authorize(successCallback, failureCallback) {
FB.getLoginStatus(function (response) {
   //****** DOES NOT MAKE IT PAST HERE *******//
    if (response.session) {
        // logged in and connected user, carry on
        session = response.session;
        //Set access token
        accessToken = response.session.access_token;
        //Call success callback
        successCallback();
    } else {
        // no user session available, Lets ask for perms
        FB.ui(
        {
            method: 'permissions.request',
            perms: permissionString //(equals "" )
        },
        function (response) {
            if (response && response.session != null) {
                //Get session
                session = response.session;
                //Set access token
                accessToken = response.session.access_token;
                //Call success callback
                successCallback();
            } else {
                //Call failure callback
                failureCallback();
            }
        });
    }
});

ユーザーがアクセス許可を受け入れると、ここにある成功コールバックメソッドに移動します(これまでに到達することはありません)。

function acceptPermissions() {
    //Code done before moving on
    $('#submitInfo').submit();
}

誰か問題がありますか?

4

2 に答える 2

0

それは私にはうまくいくはずなので、おそらくFacebookにバグレポートを提出する良い機会です。

そうは言っても、代わりにFB.loginを使用してコードをクリーンアップできると思いますhttp://developers.facebook.com/docs/reference/javascript/FB.login/

FB.login(function(response){
    if(response.session){
        // logged in and connected user, carry on
        session = response.session;
        //Set access token
        accessToken = response.session.access_token;
        //Call success callback
        successCallback();
    }
    else{
        failureCallback();
    }
}, {perms: permissionString});
于 2011-04-12T19:10:44.803 に答える
0

だからここに質問があります:あなたはFlashをインストールしていますか?IE8は、現状のままで、FlashベースのXDを読み込もうとして、サイレントに失敗している可能性があります。Flashをインストールする(および/またはそのためのキャッチを入れる)場合、それは機能しますか?

于 2011-04-12T22:38:46.977 に答える