Google apps script 共享文件时不发送通知

Google apps script 共享文件时不发送通知,google-apps-script,google-drive-api,Google Apps Script,Google Drive Api,我编写了一个代码,可以将某个文件夹的文件复制粘贴到其他文件夹,并与其他人共享文件,这些人可以编辑或查看文件 我需要在将副本和权限复制到新文件时,不向编辑和查看者发送电子邮件通知操作 你使用的第一个代码是: var PeopleToEdit = file.getEditors(); var PeopleToView = file.getViewers(); for (var i=0 ; i < PeopleToEdit.length; i++){ newFil

我编写了一个代码,可以将某个文件夹的文件复制粘贴到其他文件夹,并与其他人共享文件,这些人可以编辑或查看文件

我需要在将副本和权限复制到新文件时,不向编辑和查看者发送电子邮件通知操作

你使用的第一个代码是:

  var PeopleToEdit = file.getEditors();
  var PeopleToView = file.getViewers();
      for (var i=0 ; i < PeopleToEdit.length; i++){
      newFile.addEditor(PeopleToEdit[i]);}
      for (var i=0 ; i < PeopleToView.length; i++){
      newFile.addViewer(PeopleToView[i]);}
var PeopleToEdit=file.getEditors();
var PeopleToView=file.getViewers();
for(var i=0;i
但是,对于电子邮件,我试着这样做:

function addEditors(file1, file2){
var file = DriveApp.getFileById(file1);
var PeopleToEdit = file.getEditors();
for (var i=0 ; i < PeopleToEdit.length; i++){
       
 Drive.Permissions.insert(
  {
   'role': 'writer',
   'type': 'user',
   'value': PeopleToEdit[i].getEmail()
  },
  file2,
  {
   'sendNotificationEmails': 'true'
  });
函数加法器(文件1、文件2){
var file=DriveApp.getFileById(file1);
var PeopleToEdit=file.getEditors();
for(var i=0;i
在我的本地驱动器中工作,但当我在共享驱动器中使用它时,显示此错误,我不知道会发生什么

GoogleJsonResponseException:对drive.permissions.insert的API调用失败,错误为:未找到文件:1-QSWWZI2F0PHJW4AO_LLP5fLn2Ica_MhkUClM-s-E

两件事
  • 为共享驱动器上的文件创建驱动器权限时,需要将参数
    supportsAllDrives
    设置为
    true

  • 如果不想发送通知,则需要将
    sendNotificationEmails
    设置为
    false

  • 样本请求:

    Drive.Permissions.insert(
    {
    “角色”:“作者”,
    “类型”:“用户”,
    “值”:PeopleToEdit[i].getEmail()
    },
    文件2,
    {
    “SupportsAllDrive”:正确,
    “sendNotificationEmails”:false
    });
    
    您好,谢谢。错误不再显示,它可以工作,但现在只与“成员”和“来宾”共享在中,我要复制的文件不会出现在新文件中。但非常感谢。您好!您所说的
    来宾是什么意思?
    ?不是共享驱动器的成员但有权访问您要插入的文件的人权限?此文件副本是否分配在共享驱动器中?您好,是的,文件在共享驱动器中,但此文件不在共享驱动器中与不同的人单独共享。例如,共享驱动器中有16人,其中包含6个文件。这6个文件与16人(成员)共享,文件号1与成员(16人)和4人(来宾)同时共享,文件号2与“成员”共享和其他不同的7个人(来宾)。当它运行时,只与成员共享(16),我需要文件也与来宾共享。我不知道我是否解释得很好,谢谢lotIn
    PeopleToEdit[I]。getEmail()
    你有所有想要的用户吗(即,共享驱动器中的用户加上
    来宾
    ?当您登录
    PeopleToEdit
    时,此数组是否包含您所需的所有用户?您的意思是除了
    PeopleToEdit
    之外,还要对
    PeopleToView
    执行相同的请求?