WebAuthenticationBroker 和 Facebook:应用程序的设置不允许一个或多个给定的 URL

WebAuthenticationBroker and Facebook: One or more of the given URLs is not allowed by the App's settings

我有一个现有的通用应用程序。尝试实现 Facebook 登录。

我将 Windows 应用程序添加到 Facebook 应用程序,并将来自 Windows 商店的应用程序 SID 粘贴到那里(ms-app://s-1-15-2-...没有 ms-app://) 根据 http://facebooksdk.net/docs/windows/sso/.

这是获取授权的代码url

var client = new FacebookClient();
 var url = _facebookClient.GetLoginUrl(new
                {
                    client_id = Config.FacebookAppIdCZ ,
                    redirect_uri = WebAuthenticationBroker.GetCurrentApplicationCallbackUri().AbsoluteUri,
                    scope = "email,public_profile",
                    display = "popup",
                    response_type = "token"
                });

然后我打电话给

WebAuthenticationBroker.AuthenticateAndContinue(url);

在 Windows Phone,授权代理显示 Facebook 登录 UI 并且一切正常。

但是在 Windows 当我打电话给

var auth = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, url);

Facebook 告诉我

Given URL is not allowed by the Application configuration: One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.

我猜这是 Facebook 配置问题,但我被卡住了。我确定应用程序 SID 是正确的,它在 Windows 商店中和我调用 WebAuthenticationBroker.GetCurrentApplicationCallbackUri() 时相同(因为该应用程序已与商店关联)。

也许 redirect_uri 具有不同平台的价值。

当完整的重定向 url 不在字段中时,我在 asp 上遇到了这个错误

有效的 OAuth 重定向 URI(fb 应用 -> 设置 -> 高级 -> OAuth 设置)

您也可以尝试将重定向域 _url 添加到 App Domains。

另一件事,您是否尝试使用 fiddler 查看发送和接收的内容?

ps。请原谅我的英语不好,我是法国人。

这是 Facebook 的临时故障,请参阅 https://developers.facebook.com/bugs/1448059258828537/?__mref=message_bubble. If things like this happen again, consider making an alternative login by using and approach as I describe here http://dotnetbyexample.blogspot.com/2015/06/custom-oauth-login-to-facebook-for.html