首页 > 解决方案 > 带有谷歌驱动 API OAuth 2.0 的 Asp.net MVC 在生产中不起作用

问题描述

我正在尝试构建一个网络应用程序来打开一些我已经在谷歌驱动器中的视频。

我已经有视频的直接链接,并且我有一个带有视频播放器的网页,该播放器将 URL 作为参数来播放它。

问题是当我从 localhost 运行该站点时,或者 VS2015 正在按我的需要运行,并且视频播放没有问题。同时,在公共主机的生产主机中,一直显示无法打开谷歌帐户网站以获得认证批准的错误。我已经在使用 FlowMetadata,因为谷歌在这里显示 https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth#web-applications-asp.net-mvc

我的自定义只是针对我的驱动器和只读范围,我也使用 API V3,并且我从开发人员控制台生成了我的凭据作为“其他”,因此不需要添加特定的 URL 作为受信任的重定向页面。我的公共域也得到了验证**我已经尝试过为 web 生成凭据并使用重定向 url 和相同的问题错误如下

NotSupportedException: Failed to launch browser with "https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&response_type=code&client_id=xxxxxxx.apps.googleusercontent.com&redirect_uri=http%3A%2F%2F127.0.0.1%3A62583%2Fauthorize%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly"

标签: c#asp.netasp.net-mvcgoogle-drive-apigoogle-oauth

解决方案


对于您正在使用的 Web 应用程序 OAuth 实现,如文档 [1] 中所述,您确实需要添加一个重定向 URI:

为了成功运行以下代码,您必须首先在 Google API 控制台中为您的项目添加重定向 URI

从开发人员控制台创建凭据时,您需要选择“Web 应用程序”而不是“其他”,这样您就可以添加重定向 URI。

[1] https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth#web-applications-asp.net-mvc


推荐阅读