我有一个谷歌电子表格,与我们域名中的所有成员共享。我希望有一个脚本,只要其中一个用户运行脚本,它就会将电子表格作为电子邮件附件发送。
以this question为指导,我得到了以下代码:
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"}]});
}
此代码有效,但前提是我首先从脚本编辑器运行代码(包括授权访问google邮件帐户),然后在使用脚本时授权脚本。
因此,我将文档传递给订单部门,并且只有在EACH USER从脚本编辑器中授权脚本时才能使用它,然后在使用时授权脚本。
有没有办法消除“通过脚本编辑器授权”?我真的不想进入每个用户帐户来为他们授权这个脚本(以及必须记住为创建的任何新用户做同样的事情)?
感谢您提供的任何帮助!