“在没有更改代码后突然”需要授权才能执行该操作

时间:2015-05-28 08:20:05

标签: google-apps-script authorization

我在这里看了答案:How do I stop the error, Authorisation is required to perform that action in Google Script。这并不能解决我的问题,因为我没有更改任何代码,并且我第一次运行它时已经授权了代码。我突然收到Authorization is required to perform that action错误。

我还尝试了此链接https://developers.google.com/apps-script/troubleshooting#common_errors并在编辑器function test() { var a=1}中运行了一个空白函数。这运行正常,没有给我提示授权脚本,没有错误。因此,在按照Google的说明操作后:To authorize the script, open the Script Editor and run any function.我仍然收到Authorization is required to perform that action错误。

我没有做任何花哨的事。该脚本只有一个.gs文件,该文件只有一个函数。我没有使用任何高级服务,我也没有将它链接到任何库。

更新:我试图复制该文件,然后再次进入脚本编辑器运行代码。这次授权pop就在那里,所以我点击继续。以下显示:代码想要

View and manage the files in your Google Drive. Send email as you Connect to an external service

我点击“接受”。代码开始运行,2秒后Authorization is required to perform that action.现在,每当我尝试运行代码时,它甚至都不会给我授权弹出窗口。它只是给了我错误。

这是代码的oauth部分。剩下的代码只是更多的代码。

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

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

  //get request
  var request = {
    "method": "GET",
    "oAuthServiceName": "google",
    "oAuthUseToken": "always",
    "muteHttpExceptions": true
  };

1 个答案:

答案 0 :(得分:1)

UrlFetchApp中的 oauthConfig已被弃用。它在6月26日被关闭了。以下链接将向您展示如何将代码从oauthConfig迁移到Oauth1库 https://developers.google.com/apps-script/migration/oauth-config

编辑: 从评论中看起来您希望将电子表格保存为驱动器中的pdf。这是一段可以做到这一点的代码。

  var ss = SpreadsheetApp.openById(fileId);
  var blob = ss.getBlob().setName("new_file_name.pdf");
  DriveApp.createFile(blob);