Google Sheets API:调用者没有权限

时间:2018-07-10 09:10:38

标签: google-sheets google-sheets-api google-apis-explorer

我正在尝试从cron读取文档:

https://sheets.googleapis.com/v4/spreadsheets/<sheet_id>?key=<api_key>

任何链接的人都可以使用我的文档。


My #1 key settings:    
Application restrictions:

 - IP addresses (web servers, cron jobs, etc.) - I added my external IP address.
 - API restrictions - none

My #2 key settings:
Application restrictions:

 - IP addresses (web servers, cron jobs, etc.) - I added my external IP address.
 - API restrictions - Google Sheets API

My #3 key settings:
Application restrictions:

 - IP addresses (web servers, cron jobs, etc.) - I added my external IP address.
 - API restrictions - Google Sheets API, Google Drive API

My #4 key settings:
Application restrictions:

 - IP addresses (web servers, cron jobs, etc.) - none
 - API restrictions - Google Sheets API

My #5 key settings:
Application restrictions:

 - IP addresses (web servers, cron jobs, etc.) - none
 - API restrictions - Google Sheets API, Google Drive API

My #6 key settings:
Application restrictions:

 - IP addresses (web servers, cron jobs, etc.) - none
 - API restrictions - none

当我尝试使用每个键打开文档时,出现403错误:

{
  "error": {
    "code": 403,
    "message": "The caller does not have permission",
    "status": "PERMISSION_DENIED"
  }
}

使用API​​资源管理器(https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/get)时,会发生相同的错误。

同时,该文档本身可以通过任何计算机和任何浏览器的链接成功打开,甚至可以打开未授权用户的链接。

这个问题开始于7月9日晚上9:35(UTC + 0)。

在发生此错误之前,我已经成功使用#1 key settings从文档中接收了数据。

更新

我发现了另一个奇怪的细微差别:在所有其他文档上都没有这样的问题。在一个特定的文档上观察到错误。我将访问设置与其他设置进行了比较-它们是相同的。

更新2:

我试图复制该表并通过API打开它-错误是相同的。 一个小时后,我再次尝试-一切正常。

2 个答案:

答案 0 :(得分:1)

看到HoverPhoenix评论后,我在 Viewer 模式下将对我的工作表的访问权限更改为**任何具有链接的人**。

Example Access Image

更改访问权限后,它可以正常工作。如果要考虑数据安全性,那么最好的选择是使用OAuth 2.0客户端ID作为凭据。

答案 1 :(得分:0)

如@thinktwice所说,建议打开工作表中的Anyone with the link选项。

我正在使用python,而这个created_spreadsheet.share('', role='reader', type='anyone') 对我有用。