除非在脚本编辑器中运行,否则Google脚本不会要求授权

时间:2014-06-17 21:49:21

标签: google-apps-script

我正在尝试将一张纸的PDF附加到电子邮件中,并使用下面的代码。问题是它必须首次从编辑器运行,否则授权模式不会出现,脚本就会挂起。我需要能够从工作表本身运行此脚本。这是我的代码:

function spreadsheetToPDF(key, id, name) {

  var oauthConfig = UrlFetchApp.addOAuthService("spreadsheets");
  var scope = "https://spreadsheets.google.com/feeds"

  oauthConfig.setConsumerKey("anonymous");
  oauthConfig.setConsumerSecret("anonymous");
  oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oauthConfig.setAuthorizationUrl("https://accounts.google.com/OAuthAuthorizeToken");    
  oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");  

  var requestData = {
    "oAuthServiceName": "spreadsheets",
    "oAuthUseToken": "always",
  };
  var pdf = UrlFetchApp.fetch("https://docs.google.com/a/propertysolutions.com/spreadsheets/d/"+key+ "/export?format=pdf&size=0&fzr=true&portrait=false&fitw=true&gid=" + id +
                "&gridlines=false&printtitle=false&sheetnames=false&pagenum=UNDEFINED&attachment=true", requestData).getBlob().setName(name);

  return pdf;
}

1 个答案:

答案 0 :(得分:0)

此问题已经讨论了很多次,可以在issue tracker under ref 677中找到,最新的更新提到它不会被修复。

与此同时,其中一篇最新帖子(由E. Koleda撰写)提出了不同的工作流程(并承诺在不久的将来展示示例)。