从公共 Google 日历获取 JSON

2022-08-30 19:31:00

如何获取公共 Google 日历的事件?我有它,但没有acess到它。我不想更改其事件,也不想登录。JSONID

我想从中获取一个与我的/数据库同步。JSONPHPMySql

https://www.googleapis.com/calendar/v3/calendars/{calendarId}

但得到登录错误:

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

答案 1

自 2014 年 11 月 17 日起,Google 日历 API 的 v1 和 v2 已停用。

Google Calendar API V3要求其几乎所有操作都进行oauth身份验证。据我所知,这也需要用户交互。

但是,对于公共日历,仍然可以使用单个链接来获取JSON数据(Google目前尚未记录这一点 - 我不知道这是他们的疏忽还是明天可能会消失的私有API)。

  1. Google 开发者控制台注册您的应用
  2. 在 Google Developers Console 中激活 Google Calendar API。
  3. “凭据”下,创建新的公共 API 访问密钥(您可能希望将引荐来源网址留空以进行测试)
  4. JSON 网址现在如下所示

    https://www.googleapis.com/calendar/v3/calendars/{calendarid}/events?key={Your Public API Key}

(大括号 {} 不应出现在实际的 url 中)。

API 文档描述了您可以包含的其他参数(除了您还可以包含参数 &callback=,就像大多数 JSON 请求一样,为 javascript 创建 JSONP 响应)。


答案 2

您的日历必须公开共享!如果您仅共享了忙/闲状态,则此方法有效:

http://www.google.com/calendar/feeds/{calendarId}@group.calendar.google.com/public/basic?orderby=starttime&sortorder=ascending&futureevents=true&alt=json

完整详细信息 - 仅当日历完全公开共享时,此方法才有效

http://www.google.com/calendar/feeds/{calendarId}@group.calendar.google.com/public/full?orderby=starttime&sortorder=ascending&futureevents=true&alt=json

或者只是忙于此

http://www.google.com/calendar/feeds/{calendarId}@group.calendar.google.com/public/free-busy?orderby=starttime&sortorder=ascending&futureevents=true&alt=json

参数排序排序顺序和未来事件是可选的,但可能会对您以后:)


推荐