【发布时间】:2019-07-14 18:29:00
【问题描述】:
我正在尝试在 Google Cloud Platform 文档中的“试用此 API”功能上测试 Google Cloud Logging API,但我收到了回复:
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
我知道我的响应正文是正确的,因为它适用于 OAuth 2.0,但在我使用 API 密钥时会失败。
身份验证 2.0: Working request using OAuth 2.0
API 密钥: Non-Working request using API Key
Google 文档说他们为这个“试用这个 API”功能生成了自己的 API 密钥。 https://developers.google.com/explorer-help/
由于 Google 使用他们自己的 API 密钥,我不明白为什么我会收到 PERMISSION_DENIED 的响应状态。
编辑: 如果您想尝试一下,这里有一个指向 Google Cloud Platform 中的 Try this API 功能的链接。 https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/write?apix_params=%7B%22resource%22%3A%7B%22entries%22%3A%5B%7B%22logName%22%3A%22projects%2F%5BPROJECT_ID%5D%2Flogs%2Frequests%22%2C%22resource%22%3A%7B%22type%22%3A%22http_load_balancer%22%2C%22labels%22%3A%7B%7D%7D%7D%5D%7D%7D
这是我在代码中用来创建条目的 python 请求:
import requests
entry = {
"entries": [
{
"logName": "projects/[PROJECT_ID]/logs/requests",
"resource": {
"type": "http_load_balancer",
"labels": {}
}
}
]
}
requests.post('https://logging.googleapis.com/v2/entries:write?key=[YOUR_API_KEY]', data=json.dumps(entry))
API 密钥是由我的具有“日志编写器”、“日志查看器”和“日志记录管理员”权限的用户创建的。从理论上讲,这应该是我发出发布请求所需的所有权限。但是,它仍然返回“PERMISSION_DENIED”状态。
任何帮助将不胜感激。提前谢谢你。
【问题讨论】:
-
嗨 Jonathan Sou - 欢迎来到 Stack Overflow!这个问题是否涉及代码,如果有,请编辑?
-
@jonathan-sou 我在下面提供了答案,但我很好奇:您是否尝试单击“凭据”旁边的“(?)”按钮?它有助于提供一些类似的上下文。
-
我添加了我尝试在我的代码中使用的请求的代码 sn-p。 @John - “(?)”按钮导致凭据常见问题解答,解释了使用 API 密钥和 OAuth 2.0 之间的区别,但并不能真正帮助我解决问题。
标签: google-api http-status-code-403 google-apis-explorer google-cloud-logging