作成している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();
}
誰か問題がありますか?