我正在尝试获取我正在制作的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)"/>
这是我使用的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();
}
有人看到任何问题吗?
答案 0 :(得分: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});
答案 1 :(得分:0)
所以这是一个问题:你安装了Flash吗? IE8,就像它一样,可能正在尝试加载基于Flash的XD,然后无声地失败。如果您安装Flash(和/或放入一个catch),它是否有效?