0

我有一个与我们域中的所有成员共享的谷歌电子表格。我想要一个脚本,只要其中一个用户运行脚本,它就会将电子表格作为电子邮件附件发送。

按照这个问题作为指导,我得到了以下代码:

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"}]}); 

}

此代码有效,但前提是我首先从脚本编辑器运行代码(这涉及授权访问谷歌邮件帐户),然后在使用脚本时授权脚本。

所以,我把文件传给了订单部门,同样,它只有在每个用户从脚本编辑器授权脚本时才有效,然后在使用它时授权脚本。

有没有办法消除“通过脚本编辑器授权”?我真的不想进入每个用户帐户来为他们授权这个脚本(并且必须记住对创建的任何新用户做同样的事情)?

感谢您提供的任何帮助!

4

1 回答 1

0

不幸的是不是。另请参阅我的问题和谷歌开发者倡导者之一的回答。

您可以为我打开的问题投票以寻求解决方案。

于 2013-08-29T19:28:42.620 回答