" PERMISSION_DENIED"在Google Spreadsheet REST API v4上

时间:2016-09-13 12:24:26

标签: rest http google-sheets google-spreadsheet-api

我尝试通过http从谷歌表中读取数据。我使用的是v4 google电子表格api:

https://sheets.googleapis.com/v4/spreadsheets/1MZJEOzkzy5iJ9HPy2GU-Ky3vdaIzGGDQH8BMt4n3OGI/values/Sheet1!A1:D5

我明白了:

{
  "error": {
    "code": 403,
    "message": "The request cannot be identified with a client project. Please pass a valid API key with the request.",
    "status": "PERMISSION_DENIED"
  }
}

工作表在线发布,每个人都可以编辑它。它也适用于api v3。

4 个答案:

答案 0 :(得分:1)

首先,确保您有权调用此电子表格,并在开发人员控制台中启用Sheets API。您还可以尝试将此电子表格的隐私设置更改为公开,并检查您是否可以立即访问它。此403错误通常是由授权请求中的某些配置错误或遗漏引起的。如果你authorizing requests with OAuth 2.0,请确保使用适当的范围。

有关详细信息,您可以在获取HTTP 401s或403s时查看thread如何调试Google OAuth 2.0令牌

答案 1 :(得分:1)

您必须在URI上附加字符串“key = yourAPIkey”作为查询。 API密钥在开发人员的控制台中生成

答案 2 :(得分:0)

如果更新应用程序访问范围,则必须重新验证应用程序并更新credentials.json。 在google-sheet快速入门指南中,他们已经启动了只有读取范围的教程。如果您想稍后编写或更新google-sheet,则必须更改其范围并再次更新credentials.json 首次进行身份验证时请仔细查看,仅授予阅读权限。但是,如果更新范围并尝试重新进行身份验证,则会要求获得读取和管理工作表权限的权限。

答案 3 :(得分:0)

为了更新作用域,您需要删除保存在TOKENS_DIRECTORY_PATH中的令牌文件,再次执行代码并登录。然后Oauth2将为您提供新的更新令牌。