2

我正在尝试获取我正在制作的 facebook 应用程序的权限,但每次我尝试在 IE8 中运行该应用程序时,我都无法显示权限框。我已经在 Firefox 中测试了该应用程序,它可以正常打开,并获得所有权限(我不要求任何特殊权限)。

当我在 IE8 中运行调试器时,我看到一旦程序运行FB.getLoginStatus(function (response) {(见下面的代码),它就会进入 facebook 编写的无限循环代码。

我认为问题在于我如何进行权限调用。我有一个用于登录的表单,一旦用户尝试登录该站点,它将调用权限方法。这是我使用的表单中的表单和按钮:

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

这是我使用的身份验证方法:

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

所以这里有一个问题:你安装了 Flash 吗?IE8 就是这样,可能会尝试加载基于 Flash 的 XD,然后静默失败。如果您安装 Flash(和/或为此设置一个问题),它可以工作吗?

于 2011-04-12T22:38:46.977 回答
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 回答