我正在构建一个移动站点,用户必须能够使用他的 facebook 帐户登录,如http://developers.facebook.com/docs/guides/mobile/web/中所述。它适用于 Iphone 和 Android 设备,但不适用于 Windows Phone。这就是发生的事情:
- 当我按下登录按钮时,我得到了 facebook 页面,我必须在其中授予使用我的 facebook 帐户的权限。
- 在我给予承诺后,它会重定向到“ https://www.facebook.com/dialog/permissions.request ”并显示一个空白页面。在 Android 上调用“window.FB.login”回调(参见下面的代码),我可以在其中获取信息并重定向用户,但在 Windows Phone 上它只显示该空白页面。当我转到我的 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'
});
}
}
};