从 Google 日历 API 中获取澳大利亚的假期列表

Get Holidays List of Australia from Google Calendar API

我正在使用

https://www.googleapis.com/calendar/v3/calendars/en.australian%23holiday%40group.v.calendar.google.com/events?key=YourApiKey

获得澳大利亚 public 假期,但我收到空项目数组

{
 "kind": "calendar#events",
 "etag": "\"p32kslj59m6eeu0g\"",
 "summary": "Holidays in Australia",
 "updated": "2021-03-05T08:30:05.375Z",
 "timeZone": "UTC",
 "accessRole": "reader",
 "defaultReminders": [],
 "nextPageToken": "CjASLgojMjAyMTA0MDVfNjBvMzBjaGk2b28zMGMxZzYwbzMwZHI1NmsYkN324_Pw7gIaDwgAEgAYmKz8oN6Y7wIgASIHCAIQzunfEQ==",
 "items": []
}

知道如何获得澳大利亚假期吗?

Google Calendar API 正在返回正确的结果,但它在多个页面上返回它们。您可以通过以下方式获取下一页:

https://www.googleapis.com/calendar/v3/calendars/en.australian%23holiday%40group.v.calendar.google.com/events?key=YourApiKey&pageToken=CjASLgojMjAyMTA0MDVfNjBvMzBjaGk2b28zMGMxZzYwbzMwZHI1NmsYkN324_Pw7gIaDwgAEgAYmKz8oN6Y7wIgASIHCAIQzunfEQ==

在此处查看有关分页的更多信息:https://developers.google.com/calendar/v3/pagination
客户端库可以轻松处理这些多页响应。

页面大小默认为 250 个事件,但这也包括您未请求的已删除事件。此特定日历上的前 250 个事件已标记为已删除,因此您会看到一个空白页面。

查看详情:https://developers.google.com/calendar/v3/reference/events/list

maxResults (integer)
Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.

我可以使用以下方法将所有内容强制放在一个页面上,但这确实不是一个好的答案。如果事件总数大于 2500,您仍然可能会得到一个不完整的列表: https://www.googleapis.com/calendar/v3/calendars/en.australian%23holiday%40group.v.calendar.google.com/events?maxResults=2500&key=[YOUR_API_KEY]'

似乎有一个错误,因为初始响应 return 没有事件但是有一个页面令牌这不是系统的预期功能。我已经提交了 issue report

try me

请求;

卷曲\

'https://www.googleapis.com/calendar/v3/calendars/en.australian%23holiday%40group.v.calendar.google.com/events?key=[YOUR_API_KEY]' \
  --header 'Accept: application/json' \
  --compressed

Returns

{
 "kind": "calendar#events",
 "etag": "\"p33kpjmcjvaeuu0g\"",
 "summary": "Holidays in Australia",
 "updated": "2021-03-06T07:14:02.000Z",
 "timeZone": "UTC",
 "accessRole": "reader",
 "defaultReminders": [],
 "nextPageToken": "CjASLgojMjAyMTA0MDVfNjBvMzBjaGk2b28zMGMxZzYwbzMwZHI1NmsYkN324_Pw7gIaDwgAEgAYgMXbj4-b7wIgASIHCAIQ5I7jEQ==",
 "items": []
}

它应该在哪里 return 事件

如果我再添加下一个 pagetoken

请求

卷曲 'https://www.googleapis.com/calendar/v3/calendars/en.australian%23holiday%40group.v.calendar.google.com/events?pageToken=CjASLgojMjAyMTA0MDVfNjBvMzBjaGk2b28zMGMxZzYwbzMwZHI1NmsYkN324_Pw7gIaDwgAEgAYgMXbj4-b7wIgASIHCAIQ5I7jEQ%3D%3D&key=[YOUR_API_KEY]'
--header 'Accept: application/json'
--压缩

回应

{
 "kind": "calendar#events",
 "etag": "\"p32e9tk5uvaeuu0g\"",
 "summary": "Holidays in Australia",
 "updated": "2021-03-06T07:14:02.000Z",
 "timeZone": "UTC",
 "accessRole": "reader",
 "defaultReminders": [],
 "nextPageToken": "CjASLgojMjAyMjEyMjZfNjBvMzBjaGk2NG8zNGMxZzYwbzMwZHI1Nm8YsM-liJbz7gIaDwgAEgAYgMXbj4-b7wIgASIHCAIQvo_jEQ==",
 "items": [
  {
   "kind": "calendar#event",
   "etag": "\"3227284619238000\"",
   "id": "20200425_60o30chi6so3gc1g60o30dr56g",
   "status": "confirmed",
   "htmlLink": "https://www.google.com/calendar/event?eid=MjAyMDA0MjVfNjBvMzBjaGk2c28zZ2MxZzYwbzMwZHI1NmcgZW4uYXVzdHJhbGlhbiNob2xpZGF5QHY",
   "created": "2021-02-18T09:58:29.000Z",
   "updated": "2021-02-18T09:58:29.619Z",
   "summary": "ANZAC Day Observed (Victoria)",
   "description": "Holiday or observance in: Victoria",

响应已 return 正确编辑。