1

我正在构建一个移动站点,用户必须能够使用他的 facebook 帐户登录,如http://developers.facebook.com/docs/guides/mobile/web/中所述。它适用于 Iphone 和 Android 设备,但不适用于 Windows Phone。这就是发生的事情:

  1. 当我按下登录按钮时,我得到了 facebook 页面,我必须在其中授予使用我的 facebook 帐户的权限。
  2. 在我给予承诺后,它会重定向到“ 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'
        });
    }

}
};
4

1 回答 1

0

我以这里描述的其他方式做到了:http: //developers.facebook.com/docs/authentication/

于 2012-05-11T14:01:37.993 回答