我正在开发一项 Golang 服务,该服务将连接到 Google Drive 并下载文件。问题是,无论我如何更新项目权限,当我运行应用程序并转到浏览器窗口进行 OAuth 时,它只显示在metadata授予更多权限时需要授予的权限,以便我可以下载文件。以下是我为该服务采取的步骤:我在 Google Developer Console 中创建了一个项目。在那个项目中,我启用并更新了 Google Drive 权限以捕获所有auth/drive权限(我也尝试过授予所有权限,并且只授予一些细粒度的权限)。我从这个例子创建了 Golang 服务:https ://developers.google.com/drive/api/v3/quickstart/go我运行 Golang 应用程序,它提示我在浏览器中打开一个 URL 以进行 OAuth 身份验证。我在浏览器中打开链接,使用我的应用所有者 gmail 帐户进行身份验证,无论我做什么,这都是唯一显示的 OAuth 范围:如果我使用Drive API Explorer 执行文件下载,则表明我需要以下权限:当我在资源管理器中单击“执行”时,OAuth 弹出窗口会显示我对我的应用程序期望的所有权限并且可以正常工作:我做错了什么或错过了什么?这可能是因为该应用程序是“内部”应用程序吗?
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
问题出在我用来搭建应用程序的Golang Quick-Start 样板代码中。
此行覆盖了我在控制台中明确设置的权限设置。
// If modifying these scopes, delete your previously saved token.json.
config, err := google.ConfigFromJSON(b, drive.DriveMetadataReadonlyScope)
if err != nil {
log.Fatalf("Unable to parse client secret file to config: %v", err)
}
更改为:
// If modifying these scopes, delete your previously saved token.json.
config, err := google.ConfigFromJSON(b, drive.DriveScope)
if err != nil {
log.Fatalf("Unable to parse client secret file to config: %v", err)
}
- 1 回答
- 0 关注
- 95 浏览
添加回答
举报
0/150
提交
取消