"Authorization is required to perform that action" 没改代码就突然

"Authorization is required to perform that action" all of a sudden after no change to code

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

我也试过这个 link 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文件,文件只有一个函数。我没有使用任何高级服务,也没有 link 将其发送到任何图书馆。

更新:我尝试复制文件,然后再次进入脚本编辑器以 运行 代码。这次授权弹出窗口出现了,所以我点击继续。出现以下内容:代码需要

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

我点击"Accept"。代码开始 运行,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
  };

UrlFetchApp 中的 oauthConfig 已被弃用。它于 6 月 26 日关闭。以下 link 将向您展示如何将您的代码从 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);