共享文件时不发送通知 [英] DO NOT send notifications when share a file

查看:22
本文介绍了共享文件时不发送通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

您使用的第一个代码是:

  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]);}

但是,对于我尝试使用的电子邮件:

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'
  });

在我的本地驱动器中工作正常,但是当我在共享驱动器中使用它时,显示此错误,我完全不知道会是什么。

googleJsonResponseException:调用drive.permissions.insert接口失败,错误为:找不到文件:1-qsWWwWZI2f0phJW4AO_LLP5fLn2Ica_MhkUClM-s-E

推荐答案

两件事

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

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

请求示例:

Drive.Permissions.insert(
  {
   'role': 'writer',
   'type': 'user',
   'value': PeopleToEdit[i].getEmail()
  },
  file2,
  {
   'supportsAllDrives': true, 
   'sendNotificationEmails': false
  });

这篇关于共享文件时不发送通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆