错误 400:分发 Xamarin Forms 应用程序时的 redirect_uri_mismatch

Posted

技术标签:

【中文标题】错误 400:分发 Xamarin Forms 应用程序时的 redirect_uri_mismatch【英文标题】:Error 400: redirect_uri_mismatch when distributing Xamarin Forms App 【发布时间】:2021-02-11 01:11:14 【问题描述】:

我正在尝试通过 Visual Studio 2019 中的 Google Play 商店分发我的 Xamarin Forms android 应用。

我遵循 Microsoft 的本教程: https://docs.microsoft.com/en-us/xamarin/android/deploy-test/publishing/publishing-to-google-play/?tabs=windows

我完成了设置 Google 开发者帐户以及在 google 开发控制台和 OAuth2 客户端中创建应用程序的步骤。

然后我在表单中输入了客户 ID 和客户密码并尝试注册。我没有被转发到授权页面,而是看到了这个错误: Error 400: redirect_uri_mismatch

不幸的是,我不能只将 uri 添加到 OAuth2 客户端,因为每次尝试注册按钮时端口都会更改。

那么,我该如何解决这个问题呢? 我可以以某种方式修复 Visual Studio/Xamarin Forms 使用的端口吗? 有完全不同的方法吗?

非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

您需要创建桌面应用凭据而不是 Web 应用才能从 Visual Studio 注册

【讨论】:

【参考方案2】:

这里的问题是,当您尝试注册时,Visual Studio 会随机更改 IIS Express 端口号。要解决此问题,请打开文件:

[项目名称].vs\config\applicationhost.config

其中 [projectname] 是不带方括号的项目名称,并滚动到以下节点:

<binding protocol="http" bindingInformation="*:12345:localhost" />

其中“12345”是 IIS 分配给该站点的随机端口。删除星号 * 以便您只有:

<binding protocol="http" bindingInformation=":12345:localhost" />

对上述所有节点执行此操作。保存文件,然后重新打开 VS。分发到 Google Play,重新输入您的客户端 ID 和客户端密码,然后单击注册,现在应该会显示允许访问屏幕弹出窗口。

【讨论】:

感谢这个答案完成了这个问题的第一个答案!

以上是关于错误 400:分发 Xamarin Forms 应用程序时的 redirect_uri_mismatch的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.forms - Gridview 行高错误

让你的Xamarin.Forms应用程序访问

Xamarin.Forms:Android 项目构建错误 - AppData\Local\Xamarin 文件夹中缺少文件

Xamarin.Forms 和 XamarinMediaManager:如何管理错误案例?

弹出窗口中的 Xamarin.Forms 日期选择器

无法在 xamarin.forms 上运行 XAMARIN UI TEST,错误 System.Exception