c# - 从 Web 应用程序访问 Google 驱动器中的文件和文件夹
问题描述
我正在尝试创建一个 ASP.NET MVC Web 应用程序来访问 Google 驱动器文件。
到目前为止我创建的内容:
- 从 Google 开发者控制台启用我的 API。
- 为提供“OAuth 2.0 客户端 ID”的 Web 应用程序创建了一个项目及其凭据。
- 我已将其粘贴到我的 Web 应用程序中。
如果我创建一个控制台应用程序,它可以正常工作,但不能在 Web 应用程序中。我收到身份验证错误。
我已关注此链接,但如果您仔细查看,您会发现它有 client_secret.json,它仅适用于已安装的应用程序(桌面应用程序)。
身份验证错误就像这个附加的屏幕截图
解决方案
回答
根据.NET 的 Google Drive API 文档, 400 错误是由于在这种情况下缺少参数redirect_uri。您必须确保您credentials.json
的格式如下:
{
"installed": {
"client_id": "xxxx.apps.googleusercontent.com",
"project_id": "quickstart-xxxx",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "xxxx",
"redirect_uris": [
"urn:ietf:wg:oauth:2.0:oob",
"https://example.com"
],
"javascript_origins": [
"https://example.com"
]
}
}
您在哪里"urn:ietf:wg:oauth:2.0:oob"
告诉 OAuth 服务器您希望代码在同一页面中。我强烈建议您搜索 Google 官方文档。有关访问 Google API 的更多信息,请查看Google OAuth 文档
参考
推荐阅读
- android - Flutter 中的 firebase_messaging 插件出错
- html - 使用“let”获取表格行
- php - 对于 PHP 中的这个问题,如何将我的代码重定向到正确的循环中?
- maven - Maven Liquibase @update 注释的目的是什么
- flutter - Flutter:加载资产错误,除非热重载(BLOC + MultiImagePicker)
- ios - 调用另一个 ViewController 会出错 - 在后台线程上调用 UI API
- javascript - 尝试遍历图层数组以添加到 web 地图时出现“T 未定义”错误
- backend - 有没有一种方法可以在 OctoberCMS 后端表单中选择或创建下拉选项?
- php - Laravel:如何修复 laravel 新项目错误?
- javascript - 使用 JavaScript 中的添加和删除功能使用不同文件夹上传多文件(需要在一个输入中删除单个文件)