使用 addEditor() 时向电子邮件添加消息

Adding message to email when using addEditor()

在 Apps 脚本中,我目前正在以编程方式生成文件,通过 addEditor() 添加用户并自动向他们发送电子邮件。

我现在想做的是将其展开以包含一条消息。我认为这对应于这个绿色框:

我在这里也发现了类似的问题,但一直无法解决:

这是我目前拥有的:

  setPermission(documentId, email) {

    // Get the document to set permissions on
    const file = DriveApp.getFileById(documentId);

    // Turn off sharing by editors
    file.setShareableByEditors(false);

    // Add the email to editors
    file.addEditor(email);

  }  

如果我尝试做类似的事情:

...
file.addEditor(email, {emailMessage: 'Test'});

我收到以下错误:

Exception: The parameters (String,(class)) don't match the method signature for DriveApp.File.addEditor.

所以我很好奇:

  1. 这可行吗?
  2. 语法需要是什么?

作为 documented, file.addEditor() has only one argument: an email address (or a User 对象)。因此无法通过该方法添加电子邮件。

但是,您可以使用 Advanced Drive Service 来完成此操作。 首先,您需要 enable 高级驱动服务。

然后使用类似这样的东西 (reference):

Drive.Permissions.insert(
  {
    'role': 'writer,
    'type': 'user',
    'value': email // the email address you wish to share with
  },
  documentId, // id of the file you want to share
  {
    'sendNotificationEmails': 'true',
    'emailMessage': message // The message you want to send, as a plain text string
  });