我想创建一个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() 吗?