Google drive api 使用客户端API在Google Drive应用程序数据文件夹中创建Google Sheets电子表格

Google drive api 使用客户端API在Google Drive应用程序数据文件夹中创建Google Sheets电子表格,google-drive-api,google-sheets-api,google-authentication,Google Drive Api,Google Sheets Api,Google Authentication,我想使用客户端JS在Google Drive应用程序数据文件夹(API docs at)中创建一个Google工作表 我可以像这样创建非工作表文件(在处理所有身份验证内容后,按照): gapi.client.drive.files.create({ 资源:{ 名称:“myfile.txt”, 父项:['appDataFolder'], mimeType:“文本/普通” }, 字段:“id” })。然后(res=>{ 日志(“创建正常:响应为”,res); }).catch(e=>{ 日志(“创建

我想使用客户端JS在Google Drive应用程序数据文件夹(API docs at)中创建一个Google工作表

我可以像这样创建非工作表文件(在处理所有身份验证内容后,按照):

gapi.client.drive.files.create({
资源:{
名称:“myfile.txt”,
父项:['appDataFolder'],
mimeType:“文本/普通”
},
字段:“id”
})。然后(res=>{
日志(“创建正常:响应为”,res);
}).catch(e=>{
日志(“创建失败:错误为”,e)
})
但是,如果我使用
mimeType:'application/vnd.google apps.spreadsheet'
,那么我会返回此错误:

reason: "notSupportedForAppDataFolderFiles",
message: "Method not supported for files within the Application Data folder."
此错误消息似乎完全没有文档记录。我怀疑这是不允许的:你不能在App Data文件夹中存储Google工作表,可能是因为工作表根本不是作为文件存储在驱动器中的,它们是通过驱动器团队的某种UI伪造而显示出来的。但我没有证实这一点

我想这样做的原因是,请求访问应用程序数据文件夹的应用程序不需要请求访问所有其他文件。如果我无法将表格放入应用程序数据文件夹,那么据我所知,为了创建电子表格,我的应用程序需要请求完全访问所有用户的电子表格,而这完全不需要;它将使用自己的一个,就是这样。我不想要求访问,因为用户(正确地)会认为这是巨大的越界。

指定:

当您尝试在应用程序数据文件夹中创建文件时,会自动创建该文件夹

使用此文件夹可存储用户不应直接与之交互的任何文件

此文件夹仅可由您的应用程序访问,其内容对用户和其他驱动器应用程序隐藏

因此,虽然没有关于Google sheets不允许出现在application data文件夹中的直接信息,但可以假设Google sheets文件不符合上述标准

至于作用域:

  • 您可以使用范围
    https://www.googleapis.com/auth/drive.file
  • 这是一个狭窄的范围,应用程序只能访问此应用程序创建的文件,请参阅
  • 通过使用此作用域,可以避免请求访问所有用户文件,因此用户无需担心向应用程序提供此作用域