Google Slides API 似乎忽略了 API 密钥

问题描述

我相信我遇到了 here 概述的相同问题,但该线程从未获得令人满意的解决方案。基本上我已经有一个适用于 Google Sheets API 的工作界面,我将 Slides API 的 discoveryDocscope 添加到我的 gapi.client.init() 调用中,但是当我尝试从我的 Google 演示文稿中阅读gapi.client.slides.presentations.get() 我遇到错误代码 401“请求缺少必需的身份验证凭据。需要 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据。”我已验证为我的 API 密钥启用了 Slides API,并且我已验证我尝试读取的演示文稿是公开的,实际上为 the API example page 提供的示例演示文稿也不起作用,似乎是我的 API键被完全忽略。

gapi.load('client:auth2',() =>
  {
    gapi.client.init({ apiKey: API_KEY,clientId: CLIENT_ID,discoveryDocs: ["https://slides.googleapis.com/$discovery/rest?version=v1","https://sheets.googleapis.com/$discovery/rest?version=v4"],scope: "https://www.googleapis.com/auth/presentations.readonly https://www.googleapis.com/auth/spreadsheets.readonly"})
    .then(()=>{},(e)=>{console.log(e)});
  });

enter image description here

enter image description here

编辑:这显然是 Google 的一个问题。如果我使用 Google Sheets API 和 Google Slides API 的示例文档,则为示例文档提供的公共电子表格的 id 是“1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms”,而为 Slides API 提供的公共演示文稿的 id 是“1EAYk18WDjQ9fCiVeCVeCVcXeVcXeCvC8 .

如果我复制通过 Sheets API 为提供的公共示例电子表格(格式为 https://sheets.googleapis.com/v4/spreadsheets/[spreadsheetId]?key=[apiKey]生成的 https GET 请求,并使用提供的电子表格 ID 和我自己的 API 密钥将其输入到我的浏览器中,我会得到以下:

enter image description here

如果我复制由 Slides API 为示例演示文稿生成的 http GET 请求(格式为 https://slides.googleapis.com/v1/presentations/[presentationId]?key=[apiKey]),并使用给定的演示文稿 ID 和我的 API 密钥将其输入到我的浏览器中,我会得到以下内容

enter image description here

而且由于我已经确认我为我的 API Key 启用了 Sheets API 和 Sides API,所以问题显然在于谷歌端,因为他们自己的文档中列出的过程适用于一个而不是另一个。事实上,如果我将 API 密钥切成两半或打乱它或完全不使用它,我会收到一个错误,表明该 API 密钥无效,而如果我对幻灯片 url 做同样的事情,我永远不会收到有关 API 密钥无效的消息,但仍然收到与我收到的相同的错误 401。 Google Slides API 公然忽略 API 密钥。

编辑 2:这已在 2 年前 here 被报道,但已被公然忽视。很高兴浪费了我一整天的时间来解决这个问题。有人应该告诉谷歌废弃他们的 API 文档

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...