如何在我的 Gmail 插件中使用 drive.file 授权范围?

How do I use the drive.file auth scope in my Gmail addon?

我正在努力成为一名优秀的 Google Apps 脚本编写者并在我的应用程序中使用不太宽松的范围,但我无法让它与 https://www.googleapis.com/auth/drive.file 一起工作。

我有一个 Gmail 插件需要在用户的 Google 驱动器中创建文件和文件夹。现在我让它在清单中的 https://www.googleapis.com/auth/drive 范围内正常工作,所以我知道代码本身的功能。但是当我将范围更改为 https://www.googleapis.com/auth/drive.file 时,DriveApp 方法的 none 不再起作用,我收到一条错误消息说我需要 https://www.googleapis.com/auth/drive范围。

在 DriveApp 文档中它确实说它需要 "drive" 范围,但这是否意味着没有应用程序可以在没有完全访问用户所有文件的情况下将数据保存到用户的云端硬盘?这听起来很疯狂。或者我是 SOL?我仍然不太明白示波器是如何工作的,或者我是否需要在其他地方做任何其他更改才能使它们工作。

这是不可能的,因为没有任何 DriveApp 方法需要该范围。参考https://developers.google.com/apps-script/reference/drive/drive-app


来自 OP

的评论

I'm using the Drive service. I'm using DriveApp.getFoldersByName(), DriveApp.getRootFolder(), DriveApp.createFolder(), and DriveApp.createFile().

请仔细阅读文档。每种方法所需的范围都包含在此处。

示例

来自https://developers.google.com/apps-script/reference/drive/drive-app#getrootfolder

getRootFolder()

Gets the folder at the root of the user's Drive.

Return

Folder — the root folder of the user's Drive

Authorization

Scripts that use this method require authorization with one or more of the following scopes:

https://www.googleapis.com/auth/drive

成功!通过驱动器 API 后,我发现我必须启用驱动器 API 并使用 Drive.Files.insert()。