设置使用 Google App Script 创建的新幻灯片的权限
Posted
技术标签:
【中文标题】设置使用 Google App Script 创建的新幻灯片的权限【英文标题】:Setting the privileges of a new slide created using Google App Script 【发布时间】:2020-08-19 07:39:18 【问题描述】:我使用 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, subject, 'Here is the file' + fileUrl + ' body of message',
attachments: [file.getAs(MimeType.PDF)],name: 'Auto Emailer'
);
虽然电子邮件正常发送,但 URL 不是公共 URL。如何确保任何收件人都可以访问该网址? 在 google app 脚本上没有找到访问权限的任何属性。
【问题讨论】:
【参考方案1】:解决方案:
要创建特定文件的公开共享链接,您可以执行以下操作:
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:Resouces => Google 高级服务:启用 Drive API:
参考资料:
Enum Access
【讨论】:
以上是关于设置使用 Google App Script 创建的新幻灯片的权限的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Google OAuth 2.0 Playground 运行 Google App Script 功能 |调用者没有权限
Google App Script Regex exec() 仅在一个函数中返回 null
将cURL与PHP文件中的Google Apps Script Web App一起使用时遇到问题
Google App Script Web App GET 和 POST 请求被 CORS 策略阻止