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

Setting the privileges of a new slide created using Google App Script

我使用 Google 应用程序脚本创建了一张新幻灯片

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, subject, 'Here is the file' + fileUrl + ' body of message', {
     attachments: [file.getAs(MimeType.PDF)],name: 'Auto Emailer'
 });  
}

虽然电子邮件正常发送,但 Url 不是 public url。我如何确保任何收件人都可以访问 url? 未在 google 应用脚本上找到任何访问权限属性。

解决方案:

要创建特定文件的 public-shareable link,您可以执行以下操作:

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

要求:

别忘了激活云端硬盘 API:资源 => 高级 Google 服务:启用驱动器API:

参考文献:

Enum Access