使用 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.
所以我很好奇:
- 这可行吗?
- 语法需要是什么?
作为 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
});
在 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.
所以我很好奇:
- 这可行吗?
- 语法需要是什么?
作为 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
});