设置使用Google App脚本创建的新幻灯片的权限

问题描述

我使用的Google App脚本创建了一张新幻灯片

var targetDocument = SlidesApp.create("New Doc");
  var targetDocumentUrl = targetDocument.getUrl();

在对targetDocument进行了一些修改(所有工作都可以完成)之后,我想使用脚本通过电子邮件将targetDocumentUrl发送给特定的人

function sendEmail(recipient,subject,fileUrl){
  var file = DriveApp.getFileById(getIdFromUrl(fileUrl));
  GmailApp.sendEmail(recipient,'Here is the file' + fileUrl + ' body of message',{
     attachments: [file.getAs(MimeType.PDF)],name: 'Auto Emailer'
 });  
}

尽管电子邮件正常发送,但网址不是公共网址。如何确保该URL可被任何收件人访问? 在google app脚本中找不到访问权限的任何属性

解决方法

解决方案:

要创建特定文件的公共共享链接,您可以执行以下操作:

function createSlide() {
  
  const name = "New Doc" 
  const targetDocument = SlidesApp.create(name);
  const targetDocumentUrl = targetDocument.getUrl();
  const file = DriveApp.getFileById(targetDocument.getId());

//file.setSharing(DriveApp.Access.ANYONE_WITH_LINK,DriveApp.Permission.EDIT);
file.setSharing(DriveApp.Access.DOMAIN_WITH_LINK,DriveApp.Permission.EDIT);  
  
}

如果您来自 G Suite 帐户,请使用:

file.setSharing(DriveApp.Access.DOMAIN_WITH_LINK,DriveApp.Permission.EDIT);

否则,您应该可以使用:

file.setSharing(DriveApp.Access.ANYONE_WITH_LINK,DriveApp.Permission.EDIT);

要求:

不要忘记激活Drive API:资源 => 高级Google服务:启用 Drive API

Enable Drive API

参考文献:

Enum Access