通过api分享私人Google日历

时间:2015-02-17 14:40:19

标签: javascript google-calendar-api

我正在尝试通过我的节点应用程序访问Google上托管的日历,但由于我的日历需要授权,我无法通过给定的api查询。

我将如何禁用此功能/使我的应用程序可以访问日历?

这是我的api查询: https://www.googleapis.com/calendar/v3/calendars/heathwallace.com_gpupieshkuc85dd832m9gjrh9g@group.calendar.google.com

这就是回应:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}

2 个答案:

答案 0 :(得分:2)

如果您查看文档Calendars: get,例如:您会注意到它的状态

  

需要授权

现在通常,如果您将某些内容设置为公开,则可以使用公共API密钥检索它。我把我的一个测试日历设置为公用,然后尝试使用公共API密钥检索它。 (密钥和日历名称都已更改)

https://www.googleapis.com/calendar/v3/calendars/tfaf72h2ubfsftl3h4l5qd87s@group.calendar.google.com?key=AIzaSyBBH88dIQPjcl5nIG-n1mmuQ12J7HThDBL

结果

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}

结论:您必须经过身份验证才能检索数据。使用OAuth2或服务帐户。通常情况下,我建议您使用服务帐户并授予其访问相关日历的权限。由于安全问题,我不会使用JavaScript的服务帐户,因此我无法帮助您。

对您的问题

回答,您必须通过身份验证才能查看日历。没有办法解决这个问题。

答案 1 :(得分:0)

您可以轻松地执行此操作(无需Oauth)。 最神奇的是在开发者控制台console.developers.google.com中创建开发人员密钥(在API& Auth - >凭证 - >公共访问密钥 - >服务器应用程序密钥中)

确保再次在控制台中启用日历API(API& Auth - > Apis)

获取https://www.googleapis.com/calendar/v3/calendars/heathwallace.com_gpupieshkuc85dd832m9gjrh9g%40group.calendar.google.com/events?key= {YOUR_API_KEY}

我刚刚成功检索了你的日历。