无法打开 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/drivehttps://www.googleapis.com/auth/docs 以添加范围 不幸的是,这个解决方案只是一个半解决方案。似乎权限在一周后丢失,此时需要重新授权。在您打开脚本编辑器并运行提示重新授权的功能之前,任何以“设置并忘记”的方式运行的脚本都将停止工作。有什么想法吗?

以上是关于无法打开 Google xlsx 电子表格/Google Drive 权限也被阻止的主要内容,如果未能解决你的问题,请参考以下文章

[Google Drive下载表以C#格式下载到XLSX

为啥我的电子表格以 .xlsx 扩展名保存,但在我将其更改为 .xls 之前不会发生?

将数据从一个电子表格复制到另一个 Google 表格

新 Google 电子表格的 BigQuery 访问权限

安卓手机里面的微信打不开xlsx后缀的文档

无法访问通过 Google 电子表格 API 通过服务帐户创建的工作表