http://developers.facebook.com/docs/guides/mobile/web/で説明されているように、ユーザーが自分のFacebookアカウントでログインできる必要があるモバイルサイトを構築しています。iPhoneとAndroidデバイスでは動作しますが、WindowsPhoneでは動作しません。これが起こることです:
- ログインボタンを押すと、Facebookアカウントの使用を許可する必要のあるFacebookページが表示されます。
- 許可すると、「 https://www.facebook.com/dialog/permissions.request 」にリダイレクトされ、空白のページが表示されます。Androidでは「window.FB.login」コールバックが呼び出され(以下のコードを参照)、情報を取得してユーザーをリダイレクトできますが、WindowsPhoneではその空白のページしか表示されません。Facebookページにアクセスすると、自分のサイトがアプリリストに登録されています。したがって、登録は正しく機能しました。
サンプルページhttp://www.facebookmobileweb.com/hello/にログインしようとすると、同じことが起こります。
Windows Phoneで動作させる方法を知っている人はいますか?そしてそれは可能でさえありますか?これが起こるサイトをたくさん見つけたからです。
これは私のコードです:(これもAndroidおよびiPhoneデバイスで機能します)。
var fbApi = {
init: function () {
$.getScript(document.location.protocol + '//connect.facebook.net/en_US/all.js', function () {
if (window.FB) {
window.FB.init({
appId: MY_APP_ID,
status: true,
cookie: true,
xfbml: false,
oauth: true,
});
}
});
},
login: function () {
/// <summary>
/// Login facebook button clicked
/// </summary>
log("login facebook button clicked");
if (window.FB) {
//Windows phone does not enter this method, Android and Iphone do
window.FB.login(function (response) {
if (response.status) {
log('it means the user has allowed to communicate with facebook');
fbAccessToken = response.authResponse.accessToken;
window.FB.api('/me', function (response) {
//get information of the facebook user.
loginService.subscribeSocialUser(response.id, response.first_name, response.last_name, fbAccessToken, "", "FaceBook", fbSucces, fbFail);
});
} else {
log('User cancelled login or did not fully authorize.');
}
},
{ scope: 'email'
});
}
}
};