我需要编辑使用我的nodeJs webapp 创建的、由我拥有或与我共享的Google Drive 文件。
使用“https://www.googleapis.com/auth/drive/file”范围我可以编辑我拥有的文件。
要编辑与我共享的文件,我必须使用“https://www.googleapis.com/auth/drive”范围。但是这个范围在登录时向用户发送了一条非常可怕的消息:“这将允许 xxx:查看、编辑或删除所有Google Drive 文件”(粗体是我的)。
我不想删除您的文件并且我不想编辑您的所有文件:有没有办法以不那么可怕的范围实现我的目标?
如果您想编辑文件,
drive
范围的唯一替代方案是drive.file
,它可以访问您使用应用程序打开或创建的文件(ref)。
由于这不适合您,恐怕您将不得不使用可怕范围。
考虑到您的情况,我认为您可能对此功能请求感兴趣,涉及限制对特定文件夹的访问的可能性。我认为如果它得到实施,这对您来说非常有用。我建议您为该问题加注星标,既可以跟踪其发展情况,也可以帮助确定其实施的优先顺序:
您现在只能编辑“https://www.googleapis.com/auth/drive/file”范围内的共享文件。你只需要通过
supportsAllDrives: true
到api函数。例如,以下是我仅使用“https://www.googleapis.com/auth/drive/file”范围的 api 调用,以将文件与“folder_id”表示的共享文件夹同步:
const service = google.drive({ version: "v3", auth: oauth2Client })
const folder = await service.files.create({
requestBody: {
name: "xxxx",
parents: [folder_id],
mimeType: "application/vnd.google-apps.folder"
},
fields: "id,name",
supportsAllDrives: true
})