无法使用 Sheets API 访问公共工作表

2023-11-23

一年多以来,我一直在网页上使用 Google Sheets APIv4 来显示公开共享的 Google 电子表格中的数据。

尽管我们这边没有任何改变,但 Sheets API 现在返回 403,权限被拒绝错误。我尝试访问的工作表是我拥有的工作表,并且共享设置似乎是正确的。

这个问题是在 2018 年 7 月 17 日向我报告的。

我正在使用 Javascript 访问公共表,并且由于不需要身份验证,因此仅指定 API 密钥。

如果我尝试在“访客”浏览器窗口中使用公共 URL 打开公共工作表,则该工作表可见并且不请求任何身份验证。

为什么 API 会突然拒绝读取公开共享的工作表?

这是我用来检索公共表的代码。

gapi.client.init({
            'apiKey': 'AIzaSyC5fTcQun-1r83DVWlPmGAZpoUGPNcuM34',
            'discoveryDocs': ['https://sheets.googleapis.com/$discovery/rest?version=v4']
        }).then(function() {
            return gapi.client.sheets.spreadsheets.values.get({
                'spreadsheetId': '1e3KBd0277mz79IgxNch1-lwWdlJGiJQSe2eMNcXWYes',
                 'range': 'Sheet1!A:E'
            });
 }, errorMessage).then(function(response) { // Code to process the response });

在链接到读取公共电子表格的脚本的 html 文件顶部,通过插入 src tag = " 的脚本标签来加载gapihttps://apis.google.com/js/api.js"

然后我使用gapi.load('client', getData) 捕获客户端库加载事件,其中getdata 是包含上面引用的代码片段的函数的名称。

这里是直接网址到公开表:

NOTE:上面代码中的 API 密钥仅限于我们的域。

如果我稍微更改代码并使其需要授权,通过将 OAuth clientId 和 Scope 添加到gapi.client.init() 调用,sheets API 确实成功检索电子表格,但这破坏了制作公开表。

这是公共表上共享设置的快照


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 Sheets API 访问公共工作表 的相关文章

随机推荐

  • 如何在 Javascript 中比较字符串数组?

    我想看看两个字符串数组是否相等 Eg compare abc def def abc 应该返回true同样 compare abc def def ghi 应该返回false 做这个的最好方式是什么 JavaScript 没有 Set 或
  • 在tensorflow-gpu 中“未找到‘CXXABI_1.3.8’” - 从源安装

    我已经重新安装了Anaconda2 当 python c 导入张量流 时出现以下错误 ImportError home jj anaconda2 bin lib libstdc so 6 找不到版本 CXXABI 1 3 8 home jj
  • 使用子类参数重写子类方法?

    当子类重写时 如何强制基本方法采用相同的特定子类实例 i e abstract class Animal def mateWith that Animal class Cow extends Animal override def mate
  • 如何通过 Node.js 连接到 Postgres

    我发现自己试图创建一个 postgres 数据库 所以我安装了 postgres 并启动了一个服务器initdb usr local pgsql data 然后我开始了这个实例postgres D usr local pgsql data现
  • ASP.NET MVC2 中具有 SelectList 绑定的 ViewModel

    我正在尝试为名为 Product 的 Linq2SQL 实体实现一个编辑 ViewModel 它有一个链接到品牌列表的外键 目前我正在通过 ViewData 并使用 DropDownListFor 填充品牌列表 因此 div class e
  • M1 Mac 上的 Scrapy:MemoryError:无法为 ffi.callback() 分配写入+执行内存

    我是 scrapy 新手 最近开始在 M1 MacBook Air 上使用它 我遇到了一个问题 例如 当我尝试做这样的事情时 scrapy shell bbc com 它会返回我 MemoryError 无法为 ffi callback 分
  • Spark 中有哪些不同的联接类型?

    我查看了文档 它说支持以下连接类型 要执行的连接类型 默认内 必须是以下之一 内部 交叉 外部 完整 full outer 左 left outer 右 right outer 左半 左反 我看了看堆栈溢出答案关于 SQL 连接和最上面的几
  • 将字符串的 printf 填充 0

    有没有办法将 printf 中的空格字符替换为 0 填充字段宽度 使用的代码 printf 010s this 似乎不适用于字符串 确实 0flag 仅适用于数字转换 您必须手动执行此操作 int print padleftzeroes c
  • logback.xml 应该在 SBT/Scala 项目中的哪个项目目录中?

    我有一个 SBT Scala 项目 logback 似乎可以工作 但完全忽略了我的logback xml配置文件 我已放置在src main scala logback xml 它没有任何作用 它的正确位置是什么 任何人都可以发布一个 SB
  • 由于“错误 LNK2028:无法解析的令牌...”,我无法编译解决方案

    我有一个用 C 编写的 dll 和一个用 Visual C 编写的 exe 我将 dll 中的函数声明为 string declspec dllexport ConfigureHAT T STRING pathFile 在 exe 项目中
  • 重置 Chrome DevTools 控制台上下文的方法

    Chrome gt DevTools gt console 中是否有任何功能可以清除 重置 删除在测试时声明的变量和函数 就像调用clear 清除日志一样 举个例子 我有一个用 let 关键字声明的变量 let str Hello 我通过控
  • 在测试中实例化多个 Spring Boot 应用程序

    我有几个 Spring Boot 应用程序实例 它们同时对数据库进行一些工作 每个实例都在单独的 JVM 中运行 这是一种用 Java 编写测试以在一个 JVM 上进行测试的方法吗 就像下面这样 设置一些嵌入式数据库用于测试目的 甚至只是模
  • 为什么在 AngularJS 中使用 $onInit? [复制]

    这个问题在这里已经有答案了 在 AngularJS 中 onInit函数是否可以在没有该函数的情况下进行相同的初始化 例如这个 module component myComponent controller function const c
  • 理解和可视化递归

    我在这里提到了几个有关递归的问题 但我无法理解递归如何解决这个特定问题 Python中获取字符串中所有字符组合的递归程序 st def combi prefix s if len s 0 return else st append pref
  • 是否可以在 Twitter Bootstrap 中的模态中使用“行”和“跨度”?

    我正在尝试使用 Twitter Bootstrap 中的模式来实现联系表单 理想情况下 我希望前两个字段集彼此相邻对齐 第三个字段集 包含文本区域和提交按钮 占据模式的整个宽度 我尝试使用行和跨度来使它们很好地发挥作用 但不确定如何进行此操
  • 是否应该在第二个 lambda 中重用 LINQ lambda 表达式参数?

    下列的这个问题我想知道lambda参数表达式实例的重用应该被认为是好还是坏 我有时会得到一个完整的 LINQ 表达式树 其中相同的 lambda 参数实例在第二个非嵌套 lambda 中正确使用 class Person public in
  • PHP 中 mb_detect_order() 的奇怪行为

    我想检测一些文本的编码 使用 PHP 为此 我使用 mb detect encoding 函数 问题是 如果我使用 mb detect order 函数更改可能编码的顺序 该函数会返回不同的结果 考虑下面的例子 html lt lt lt
  • Chrome 扩展:下载/导出“即时”创建的内容

    我需要让用户下载从扩展中包含的某些数据动态创建的文件 但我不想在服务器端执行此操作 作为一个现实世界的例子 有一个变量包含文本 hello world 我希望用户能够下载 创建 TXT包含此类文本的文件 是否可以 2010年10月30日编辑
  • 无法安装node-sass

    我正在尝试安装node sass 但它不让我安装 我尝试过更新npm 我把这个放进去 sudo npm install g 节点 sass 我得到了这个 从错误之前的一行开始 gyp verb build dir attempting to
  • 无法使用 Sheets API 访问公共工作表

    一年多以来 我一直在网页上使用 Google Sheets APIv4 来显示公开共享的 Google 电子表格中的数据 尽管我们这边没有任何改变 但 Sheets API 现在返回 403 权限被拒绝错误 我尝试访问的工作表是我拥有的工作