无法打开 Google xlsx 电子表格/Google Drive 权限也被阻止
Posted
技术标签:
【中文标题】无法打开 Google xlsx 电子表格/Google Drive 权限也被阻止【英文标题】:Unable to open Google xlsx spreadsheet / Also Google Drive permission Blocked 【发布时间】:2021-03-26 17:36:25 【问题描述】:我目前正在使用一个 Google Apps 脚本来成功打开一个 Google 表格电子表格(与我的帐户共享只读)并执行一些阅读功能。
我收到了另一个电子表格,我想在上面运行类似的流程。
如果我尝试:
SpreadsheetApp.openById("_______")
(适用于另一张纸),我在这张纸上得到Exception: Service Spreadsheets failed while accessing document with id _____"
。这个电子表格实际上是 Google Drive 上的一个 xlsx(但它似乎仍然可以在 Google 表格中打开)而不是原生 Google 表格,所以我认为这可能是问题所在......?
所以现在我尝试使用DriveApp.getFileById("____")
将其作为 Google Drive 文件进行访问。但是现在我收到了一个授权请求,允许我的脚本访问 Google Drive。当我授权它时,我得到:
此应用已被阻止 此应用试图访问您 Google 帐户中的敏感信息。为确保您的帐户安全,Google 阻止了此访问。
我还没有找到解决此问题的方法。我使用的是私人 Google 帐户,而不是使用公司的应用程序。 有什么想法吗?
【问题讨论】:
您的 Google 帐户是否启用了高级保护? 您的第一个问题是尝试通过 SpreadsheetApp 检索 xlsx 文件时的常见行为,因为这不受支持。见this related feature request。关于您的第二个问题,我无法重现此问题。您是否检查过其他文件是否会发生这种情况?你以前注意到这个工作吗?您是否对帐户设置进行了任何更改? (如前所述启用Advanced Protection,或者你有什么)。 我没有启用高级保护。 这似乎不是文件本身的问题,而是整体问题。如果我尝试var files = DriveApp.getFiles();
,尝试单击授权后仍然有相同的消息
您是否检查过是否可以在另一个项目中重现此内容?你在使用default project吗?
【参考方案1】:
找到了权限问题的解决方案。
为了使用 Apps 脚本,我从 @alper 的 solution 修改了这个脚本,该脚本来自 @tellowkrinkle 的 comment。
执行以下操作:
-
转到https://console.developers.google.com 并为自己创建一个新项目
在顶部的搜索框中搜索 Google Drive API,并将其打开
单击左侧的 OAuth 同意屏幕并进行设置。
假设您的帐户不是组织的一部分,您必须说明您的应用是供外部用户使用的并且正在测试中
在所需的范围部分,添加 .../auth/docs 和 .../auth/drive(我不确定哪个需要,它可能只是其中之一)。如果您未完成 (2),这可能无法使用
添加您想与 gdrive 副本一起使用的帐户作为您应用的测试人员。只有这些帐户才能使用您的 gdrive 副本,因此每个人都必须自己编译(除非有人去 Google 审查他们的)。我只添加了我自己的帐户,因为我是唯一使用我的驱动器的应用脚本的人。
单击右上角的 3 个点并选择“项目设置”。记下“项目编号”。
转到您的 Apps 脚本。转到资源 > 云平台项目。插入 (4) 中的项目编号。
下次您尝试运行您的 Apps 脚本时,系统会要求您进行授权,但这次您将有机会真正成功地执行此操作。
【讨论】:
Aidan Jalili 发布了一个 Answer 说:..请注意 Royal200H 的回答——您需要实际输入https://www.googleapis.com/auth/drive
和 https://www.googleapis.com/auth/docs
以添加范围
不幸的是,这个解决方案只是一个半解决方案。似乎权限在一周后丢失,此时需要重新授权。在您打开脚本编辑器并运行提示重新授权的功能之前,任何以“设置并忘记”的方式运行的脚本都将停止工作。有什么想法吗?以上是关于无法打开 Google xlsx 电子表格/Google Drive 权限也被阻止的主要内容,如果未能解决你的问题,请参考以下文章