Windows Phone 8 Facebook LoginWithApp不再适用于我

时间:2014-10-02 08:18:28

标签: c# facebook facebook-c#-sdk

从今天早上起,Facebook SDK似乎无法再使用Facebook应用登录。当我调用C#SDK中的FacebookSessionClient.LoginWithApp()方法时,它将打开Facebook然后继续打开一个带有Facebook网站登录的webframe。当凭据填写在网页框架上时,应用程序不会回复原始应用程序,因此您无法再登录Facebook。

我已在两台设备上对此进行了测试,两者似乎都无法正常工作。

是否有其他人遇到此问题,或者这是解决方案的已知问题?

这是我的RelayCommand调用方法

public RelayCommand LoginButton
    {
        get
        {
            return _loginButton = _loginButton ??
                new RelayCommand(() =>
                    {
                        var fbSessionClient = new FacebookSessionClient("app_id");
                        fbSessionClient.LoginWithApp("email,basic_info,user_friends", "secret_string");
                    });
        }
    }

我的UriMapperBase处理程序

    class FacebookAppAuthenticationHelper : UriMapperBase
{
    public override Uri MapUri(Uri uri)
    {
        return new LoginViewModel().MapUri(uri);
    }
}

我的Facebook URI回调处理程序

public Uri MapUri(Uri uri)
    {
        // if URI is a facebook login response, handle the deep link (once per invocation)
        if (AppAuthenticationHelper.IsFacebookLoginResponse(uri))
        {
            FacebookSession session = new FacebookSession();

            try
            {
                session.ParseQueryString(HttpUtility.UrlDecode(uri.ToString()));

                // Handle success case
                FacebookAuthorized = true;

                // do something with the custom state parameter
                if (session.State != "secret_string")
                {
                    //nop
                }
                else
                {
                    // save the token and continue (token is retrieved and used when the app is lauched)
                    FacebookSettings.AccessToken = session.AccessToken;
                    FacebookSettings.FacebookId = session.FacebookId;
                    FacebookSettings.TokenExpires = session.Expires;
                }
            }
            catch (Facebook.FacebookOAuthException)
            {
                if (!this.facebookLoginHandled)
                {
                    // Handle error case
                    this.facebookLoginHandled = true;
                    // return to a different uri
                    FacebookSettings.FacebookId = null;
                    FacebookSettings.AccessToken = null;
                    FacebookSettings.TokenExpires = DateTime.MinValue;
                }
            }
            FacebookSettings.Save();
            return new Uri("/View/MainPage.xaml", UriKind.Relative);
        }

        // by default, navigate to the requested uri
        return uri;
    } 

1 个答案:

答案 0 :(得分:1)

似乎这个问题出现在Facebook方面,并且已经修复了今天的更新。