Google api 在谷歌日历API的上下文中,404意味着什么?

Google api 在谷歌日历API的上下文中,404意味着什么?,google-api,google-calendar-api,Google Api,Google Calendar Api,我正在尝试使用以下工具以编程方式访问我自己的日历: 在这个API的上下文中,这个错误实际上意味着什么 注: 日历确实存在,并且有事件 API限值甚至还没有接近达到 可能意味着两件事之一。您键入的日历Id正确,或者与您进行身份验证的用户无权访问该日历。确保您是使用具有该日历访问权限的正确用户登录的。您还可以选择执行一项操作,该操作将返回用户当前有权访问的日历列表。这样,您就不必担心可能会漏打日历id 授权 您使用的方法需要授权(用户权限)才能访问其日历。可以在文档页面中看到 您需要使用Oau

我正在尝试使用以下工具以编程方式访问我自己的日历:

在这个API的上下文中,这个错误实际上意味着什么

注:

  • 日历确实存在,并且有事件
  • API限值甚至还没有接近达到
可能意味着两件事之一。您键入的日历Id正确,或者与您进行身份验证的用户无权访问该日历。确保您是使用具有该日历访问权限的正确用户登录的。您还可以选择执行一项操作,该操作将返回用户当前有权访问的日历列表。这样,您就不必担心可能会漏打日历id

授权 您使用的方法需要授权(用户权限)才能访问其日历。可以在文档页面中看到

您需要使用Oauth2和上述作用域之一对用户进行身份验证。然后,您将拥有一个访问令牌,可用于访问此日历

阿皮基 Api密钥用于访问公共数据。除非您的日历设置为“公共”,否则您将无法使用它查看事件。还请记住,api密钥无权更新公共日历,您仍然需要通过身份验证才能对其进行更改

服务帐户
如果这是服务器到服务器应用程序,则应使用服务帐户而不是API密钥。你所需要做的就是像其他用户一样在谷歌日历上添加服务帐户。然后它将访问您的日历。

@DaImTo:我删除了JS标记,因为这个问题与任何特定语言无关,而是与API有关。我在示例中使用了Python,但它与google api Python客户端库中的代码不一样,但我的Python知识有限。@DaImTo:不,这是一个
请求
调用,它是Python中HTTP调用的实现(与您提到的JS中的
获取
类似-只是同步)这是一个服务器到服务器的调用,所以我使用API键。404是“找不到的”(不管这在现实中意味着什么),缺乏授权将是401或403,对吗?我的核心问题是404没有任何文档记录(或者至少我没有找到它)。此外,日历ID是正确的。是的,它可能缺乏授权。如果要使用api密钥选择数据,请确保将日历设置为公共。我已经更新了我的答案。你是对的,谢谢你的更新。我没有意识到密钥是用于配额管理的,而不是用于任何类型的身份验证。
r = requests.get(
        url="https://www.googleapis.com/calendar/v3/calendars/<the ID of my calendar which looks like mydomain_randomstuff@group.calendar.google.com>/events",
        params={
            'key': <the key from the API console>,
            'singleEvents': True,
            'orderBy': 'startTime'
        }
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notFound",
    "message": "Not Found"
   }
  ],
  "code": 404,
  "message": "Not Found"
 }
}
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notFound",
    "message": "Not Found"
   }
  ],
  "code": 404,
  "message": "Not Found"
 }
}