作者:许更剑_725 | 来源:互联网 | 2022-12-10 13:09
一年多来,我一直在网页上使用Google Sheets APIv4来显示公开共享的Google Spreadsheet中的数据。
即使我们没有任何改变,Sheets API现在仍返回403,权限被拒绝错误。我尝试访问的工作表是我拥有的工作表,并且共享设置确实正确。
此问题已于18年7月17日报告给我。
我正在使用Javascript访问公共表,并且由于不需要身份验证,因此仅指定了API密钥。
如果我尝试在“来宾”浏览器窗口中使用公共网址打开公共工作表,则该工作表可见,并且无需身份验证。
为什么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标签=“ https://apis.google.com/js/api.js ”)来加载gapi。
然后,我使用gapi.load('client',getData)捕获客户端库加载事件,其中getdata是包含上面引用的代码段的函数的名称。
这是公开表的直接URL:
注意:上面代码中的API密钥仅限于我们的域。
如果我稍稍更改代码并使其需要授权,则通过将OAuth clientId和Scope添加到gapi.client.init()调用中,Sheets API确实可以成功检索电子表格,但这无法实现创建电子表格的目的。公开表。
这是公开工作表上共享设置的快照