如何在Gmail插件中使用drive.file auth范围?

时间:2019-01-20 01:19:58

标签: google-apps-script google-drive-api gmail-addons

我正在努力成为一名优秀的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方法都无法正常工作,并且出现错误消息,提示我需要https://www.googleapis.com/auth/drive范围。

在DriveApp文档中,它确实表示需要“驱动器”范围,但这是否意味着没有应用程序无法完全访问其所有文件,就无法将数据保存到用户的驱动器中?听起来很疯狂。还是我SOL?我仍然不太了解范围的工作原理,或者是否需要在其他地方进行其他更改以使其起作用。

2 个答案:

答案 0 :(得分:1)

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


根据OP

的评论
  

我正在使用云端硬盘服务。我正在使用DriveApp.getFoldersByName(),DriveApp.getRootFolder(),DriveApp.createFolder()和DriveApp.createFile()。

请仔细阅读文档。其中包括每种方法所需的范围。

示例

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

  

getRootFolder()

     

获取位于用户云端硬盘根目录的文件夹。

     

返回

     

文件夹-用户云端硬盘的根文件夹

     

授权

     

使用此方法的脚本需要具有以下一个或多个范围的授权:

     

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

答案 1 :(得分:0)

成功!浏览完Drive API之后,我发现必须启用Drive API并使用Drive.Files.insert()。