云端硬盘 API 应用程序 OAuth 权限未更新

Drive API App OAuth Permissions Not Updating

我正在开发一个 Golang 服务,它将连接到 Google 驱动器并下载一个文件。问题是,无论我如何更新项目权限,当我 运行 申请并转到浏览器 window 到 OAuth 时,它只显示 metadata 需要授予的权限,当授予更多这样我就可以下载文件了。

以下是我为该服务采取的步骤:

  1. 我已经在 Google 开发者控制台中创建了一个项目。

  2. 在那个项目中,我已经启用并更新了 Google 驱动器权限以捕获所有 auth/drive 权限(我也尝试授予所有权限并且只授予一些粒度权限)。

  3. 我根据这个例子创建了 Golang 服务:https://developers.google.com/drive/api/v3/quickstart/go

  4. 我 运行 Golang 应用程序提示我在浏览器中打开 URL 以进行 OAuth 身份验证。

  5. 我在浏览器中打开 link,使用我的应用程序所有者 gmail 帐户进行身份验证,并且 无论我做什么,每次都如此 这是只有 OAuth 范围显示:

如果我使用 Drive API Explorer to perform the file download 它表明我需要这些权限:

当我在资源管理器中单击 "Execute" 时,OAuth 弹出窗口显示了我希望我的应用程序获得的所有权限并且可以正常工作:

我做错了什么或遗漏了什么?

这会不会是因为该应用是 "internal" 应用?

问题出在我用来构建应用程序的 Golang Quick-Start boilerplate code 中。

这一行覆盖了我在控制台中明确设置的权限设置。

    // 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)
    }