ASP.Net - Google Calendar API V3 redirect_uri_mismatch 错误

Posted

技术标签:

【中文标题】ASP.Net - Google Calendar API V3 redirect_uri_mismatch 错误【英文标题】:ASP.Net - Google Calendar API V3 redirect_uri_mismatch error 【发布时间】:2017-04-10 11:08:34 【问题描述】:

我在使用 Google Calendar API V3 获取刷新令牌时收到 redirect_uri_mismatch 错误。我有网络应用程序,它向用户显示谷歌日历访问同意窗口,如果用户允许访问,我将从请求接收到的刷新令牌存储到我的数据库。我也有每天运行一次的 Windows 服务。该服务为所有允许日历访问我的应用程序的用户获取谷歌日历事件。它在我的本地环境中运行良好,但在实时站点上出现错误。

在生成客户端 ID 和密码时,我选择了 Application Type 作为 Other。如何解决实时 URL 上的此错误,或者我可以在 Google API 控制台中的何处更改重定向 uri?

我同时拥有使用日历 API 的 Web 应用程序和 Windows 服务,因此我希望两者都使用相同的客户端 ID 和密码。为应用程序类型 Web 应用程序和其他 Windows 服务生成单独的令牌对我来说不是一个选项,因为我已经尝试过了,它会引发未经授权的客户端错误,而 Windows 服务尝试使用生成的刷新令牌获取日历事件引发 Web 应用程序客户端 ID 和机密。

【问题讨论】:

【参考方案1】:

此错误表明您使用的是 Web 重定向流程,而不是支持 JS 小部件的推荐流程。 Web 重定向流程没有利用许多功能,例如跨设备登录、无线安装等。

此问题与客户端 ID 的 授权重定向 URI 字段设置有关。

解决:

在Google API Console 中访问您的凭据列表。 从项目下拉列表中,选择您的project。 在凭据页面上,查找 OAuth 2.0 客户端 ID 列表,然后选择 Web 应用程序客户端 ID。这会将您带到详细信息页面。 在 Restrictions 部分中,Authorized Redirect URI 字段应包含将接收重定向流的适当协议、主机名、端口和路径信息.

这是一个相关的 SO 票:Google OAuth 2.0 redirect_uri_mismatch error

【讨论】:

重定向 uri 更改选项仅在您选择 Application Type 作为 web application 时可用。我正在使用其他类型,因为我也想在 Windows 服务中使用相同的凭据。

以上是关于ASP.Net - Google Calendar API V3 redirect_uri_mismatch 错误的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Asp.Net 查看 Google 地图,出现错误:InvalidKeyOrUnauthorizedURLmapError

在 .NET 3.5 ASP.NET MVC 应用程序中使用 Google Maps API

ASP.NET MVC C# Google Drive API 重定向不匹配 URI

ASP.net core web api:使用 Facebook/Google OAuth 访问令牌进行身份验证

对 ASP.NET Core 中的 Google OAuth 包感到困惑

SPA (Aurelia) + ASP.NET Core WebAPI + Google 身份验证