Facebook身份验证页面错误 - 未登录

时间:2016-09-10 17:50:48

标签: android xamarin facebook-login oauth2 xamarin.auth

我几天来一直在研究这个问题,把头发拉了出来。另一个最准确描述我的问题的主题是here,但建议的解决方案对我不起作用。

我正在使用Xamarin Forms创建一个跨平台的移动应用程序,我正在尝试将Facebook登录作为我的用户身份验证手段。我以模态方式呈现登录页面,在每个移动平台项目中以特定于平台的方式呈现页面,并使用Xamarin.Auth API处理大量身份验证。以下snippit来自Android实现:

        var activity = Context as Activity;
        var authenticator = new OAuth2Authenticator(
            clientId: AppConstants.FacebookAppId,
            scope: "",
            authorizeUrl: AppConstants.FacebookAuthorizeUri,
            redirectUrl: AppConstants.FacebookRedirectUri);
        authenticator.Completed += async (sender, eventArgs) => 
        {
            // Check for authentication, call Graph API, deserialize JSON, etc...
        };
        activity.StartActivity(authenticator.GetUI(activity));

这是基本上每个在线示例提供的样板代码,并且应该呈现Facebook登录页面。但是,在点击我的Facebook登录按钮后,它会以模态方式推送呈现的页面,我得到的就是:

Facebook Login Error

"未登录:您尚未登录。请登录并重试。"

我有两次和三次检查clientId参数与我的Facebook Developer Console上的Facebook App ID相匹配。我已确保提供给OAuth2Authenticator对象的重定向和授权URI是正确的。我已将重定向URI添加到我的Facebook Developer Console。使用keytool和openssl找到的我的开发keyhash也是正确的。我的包名和类名(package.name.MainActivity)在控制台中也是正确的(我的项目中的包名是通过双击Android项目手动设置的,转到' Android Manifest'和放入我自己的包名称)。我已经多次从Facebook Developer Console中删除并读取了Android项目。

我的问题是,我可能在这里缺少Xamarin平台的其他任何步骤吗?我真的不知道错误似乎是什么。我很感激有关此事的任何帮助/意见。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我设法让这个工作,但解决方案对我没有意义...在Facebook Developer控制台上的有效重定向URI列表中,我回去列出了redirectUrl authorizeUrl(m.facebook.dialog / oauth和facebook.com/connect/login_success.html)。有些人可能会看到并说:“好吧,呃!”但是我做了很多阅读/研究Facebook提供的文档,以及开发人员博客/视频,而且我没有看到其他任何人放置这两个网址。

因此,我的建议是将开发者控制台中的两个网址作为有效的重定向网址。