创建一个谷歌应用脚本网络应用,以最小的范围将文件上传到谷歌云端硬盘



我想创建一个Google App Script网络应用程序,以允许用户将文件上传到我的Google云端硬盘的文件夹中

问题是我已经在这里检查了驱动器范围列表,

为了执行上传操作,此范围必须由用户审查

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

它带有一个可怕的描述See, edit, create and delete all of your Google Drive files这太强烈了。

有没有办法在不太强的作用域内执行上传操作?

非常感谢。

例如,在您的情况下,以下范围如何?

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

官方文件如下。裁判

对应用创建或打开的文件的每文件访问权限。文件授权基于每个用户授予,并在用户取消对应用的授权时撤销。

在此范围内,只能访问此应用程序创建的文件和文件夹。

参考:

  • 对用户进行身份验证

添加:

从您以下的回复中,

也感谢您的回复,我有更新。当我在编辑器中运行代码时,它会抛出一个错误:' { [例外:您没有权限调用 DriveApp.Folder.createFile。所需权限:googleapis.com/auth/drive] 名称:"异常"}' 所以我想我的问题没有解决方案 T.T

我知道您正在将createFile与云端硬盘服务(DriveApp)一起使用。在这种情况下,需要使用https://www.googleapis.com/auth/drive的范围。似乎这是当前的规范。为了使用https://www.googleapis.com/auth/drive.file的范围,在高级Google服务中使用Drive API怎么样?通过这种方式,您可以通过设置来使用范围来appsscript.json哪个是清单文件。

首先,请将https://www.googleapis.com/auth/drive.file作为"oauthScopes": ["https://www.googleapis.com/auth/drive.file"]添加到appsscript.json的清单文件中。裁判

虽然我不确定您的实际脚本,但创建电子表格的示例脚本如下。

示例脚本:

在使用此脚本之前,请在高级 Google 服务中启用云端硬盘 API。

function myFunction() {
const obj = Drive.Files.insert({title: "sampleSpreadsheet", mimeType: MimeType.GOOGLE_SHEETS, parents: [{id: "###folderId###"}]});
console.log(obj.id)
}
  • 运行此脚本时,将创建新的电子表格以按https://www.googleapis.com/auth/drive.file的范围进行folderId

注意:

  • 如果需要使用其他作用域,请将其添加到oauthScopes中。

引用:

  • 体现
  • 清单结构
  • 相关线程。
    • 我可以在具有只读权限的情况下使用 DocumentApp.openById() 吗?

最新更新