我有一个与我们域中的所有成员共享的谷歌电子表格。我想要一个脚本,只要其中一个用户运行脚本,它就会将电子表格作为电子邮件附件发送。
按照这个问题作为指导,我得到了以下代码:
function sendEmail() {
var ssID = SpreadsheetApp.getActiveSpreadsheet().getId();
var sheetName = SpreadsheetApp.getActiveSpreadsheet().getName();
//var email = Session.getUser().getEmail();
var email = "xxxxx@example.com";
var subject = "Order Form";
var body = "Please find the attached Order Form for drop-ship delivery.";
var oauthConfig = UrlFetchApp.addOAuthService("google");
oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope=https://spreadsheets.google.com/feeds/");
oauthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oauthConfig.setConsumerKey("anonymous");
oauthConfig.setConsumerSecret("anonymous");
var requestData = {"method": "GET", "oAuthServiceName": "google", "oAuthUseToken": "always"};
var url = "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key="
+ ssID + "&gid=0&portrait=true" +"&exportFormat=xls";
var result = UrlFetchApp.fetch(url , requestData);
var contents = result.getContent();
MailApp.sendEmail(email,subject ,body, {attachments:[{fileName:sheetName+".xls", content:contents, mimeType:"application//xls"}]});
}
此代码有效,但前提是我首先从脚本编辑器运行代码(这涉及授权访问谷歌邮件帐户),然后在使用脚本时授权脚本。
所以,我把文件传给了订单部门,同样,它只有在每个用户从脚本编辑器授权脚本时才有效,然后在使用它时授权脚本。
有没有办法消除“通过脚本编辑器授权”?我真的不想进入每个用户帐户来为他们授权这个脚本(并且必须记住对创建的任何新用户做同样的事情)?
感谢您提供的任何帮助!