我想獲得我正在製作的Facebook應用程序的權限,但每次我嘗試在IE8中運行應用程序時,我都無法獲得顯示的權限框。我已經在Firefox中測試了應用程序,它可以正常打開,並獲得所有權限(我不要求任何特殊的權限)。在IE中的Facebook權限造成無限的Facebook循環
當我在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();
}
任何人都看到任何問題?
你在Facebook的iframe中工作嗎?或您自己的網站? – ifaour 2011-04-12 21:08:04
在iframe裏面 – 2011-04-12 21:11:44
ok試試1)在你的頭文件中加入'P3P:CP =「HONK」'[參考](http://developers.facebook.com/docs/samples/canvas/))。如果它不工作,2)嘗試添加一個自定義通道到你的JS初始化([ref](http://developers.facebook.com/docs/reference/javascript/fb.init/)) – ifaour 2011-04-13 14:31:15