Google云端硬盘 - 用户通过电子邮件获取rootFolder ID

时间:2016-05-18 01:10:06

标签: google-apps-script google-drive-api google-apps-for-education

我们希望将学校资料的副本推送到学生自己的“我的云端硬盘”文件夹中。

以下脚本效果很好,很好地将源文件夹的链接放在学生“与我共享”文件夹中。

function setPermissions(){
var id = "SOURCE_FOLDER_ID"
var firstGet = DriveApp.getFolderById(id)
var folder = firstGet.getId()

 Drive.Permissions.insert(
 {
 'role': 'writer',
 'type': 'user',
 'value': 'TARGET_USER_EMAIL',
  }, 
 folder,
       {
       'sendNotificationEmails': 'false'       
      });
}

然而,这些是8或9岁的年轻学生,我们希望我们制作的项目文件夹最终位于“我的驱动器”位置,而无需从学生方面进一步点击。

我知道我们可以使用addFolder()将文件夹放入学生的Google云端硬盘根文件夹中。

但是,这意味着知道学生的根文件夹ID。

有谁知道如何通过迭代他们的电子邮件地址来获取学生的根文件夹ID?

Google has documentation关于如何获取当前用户的rood文件夹,但我希望得到班上所有学生的根文件夹ID。

或者我是以错误的方式接近这个?

1 个答案:

答案 0 :(得分:0)

如果您要重新插入权限 - Drive.Permissions.insert() - 您正在共享该文件,那么默认位置就是"与我共享",所以你&#39 ;分享后需要移动文件。

我认为你想从你的问题中选择的另一种方法是使用Drive.Files.copy(),如果该项目放在parents[]属性中指定的文件夹中,它将放置一个副本。未在请求正文中设置parents[]数组会将目标设置为帐户的Google云端硬盘根目录。