SpreadsheetApp.openByID 的突然权限问题

J. *_*G. 2 google-sheets google-apps-script

该代码应该从另一个电子表格复制一些数据,然后我对其进行操作。

这段代码昨天有效,然后我今天尝试添加一个库,现在即使在删除库并将我的代码回滚到昨天的版本后,它仍然抛出此错误。

错误信息:

您无权调用 SpreadsheetApp.openById。所需权限:https : //www.googleapis.com/auth/spreadsheets(第 21 行,文件“导入”)

代码:

 data = SpreadsheetApp.openById('1-SyJRflR1YYYYDRo3e7xnDhYYYY6hIGDBKODl9XXXXX').getSheetByName("g1.1").getDataRange().getValues();
Run Code Online (Sandbox Code Playgroud)

我没有在我的任何一个文档中的任何地方使用“//@OnlyCurrentDoc”,所以这不是我的问题。

已为该项目启用 Google Sheets API,如从资源菜单中选中的。

我尝试使用的库函数是一个简单的时间函数(与工作表无关),目前我的项目中的任何地方都没有调用它,并且库已被分离。

The*_*ter 6

可能的问题:

  1. 如果您的库已包含//@OnlyCurrentDoc并且您在添加库后获得了授权,则您的权限可能仅包含当前文档。

  2. 如果您已明确设置范围1,那么这些范围可能不包括https://www.googleapis.com/auth/spreadsheets

可能的解决方案:

  1. 如果您仍想使用该库,请//@NotOnlyCurrentDoc 在主脚本中添加并重新运行该函数。如果没有删除库并重新运行您的功能。

    如果您的脚本包含声明 @OnlyCurrentDoc 的库,则可以使用相反的注释 @NotOnlyCurrentDoc,但主脚本实际上需要访问的不仅仅是当前文件。

  2. 删除清单中的显式范围将触发正常的授权流程。

  3. 如果一切都失败了,请访问您的帐户,找到您的项目并删除所有访问权限。现在,重新运行脚本中的任何函数都会触发正常的授权流程。