从Google Calendar API获取国家/地区的假期列表

Moh*_*eer 7 javascript google-calendar-api google-api

我想使用JavaScript从Google Calendar API中提取一些国家/地区的假期列表.

可能吗?我怎样才能做到这一点?

Mid*_*993 14

是的,使用谷歌API,你可以做到这一点.

  • 在Google开发者帐户中创建API应用.https://console.developers.google.com
  • 在"凭据"选项卡中,您可以创建API密钥,您可以获得类似"AIzaSyBcOT_DpEQysiwFmmmZXupKpnrOdJYAhhM"的内容
  • 然后,您可以使用此网址访问假日日历

https://www.googleapis.com/calendar/v3/calendars/en.uk%40holiday.calendar.google.com/events?key=yourAPIKey

  • 嗨@ Midhun1993,我按照你的方法.但我一直看到"需要登录"消息.请帮忙提供建议:https://drive.google.com/file/d/1wQ8FZPTzDXpZxvDAKNiUDKHqJeniynhd/view?usp=sharing (5认同)
  • 如何获取另一个国家的日历列表? (3认同)
  • 嗨@BorgyManotoy我认为:https://restcountries.eu/会帮助你.请检查 (2认同)
  • 感谢 Midhun1993,但我想我需要可以在 api 中使用的国家/地区列表(在您的回答中)。目前已经用“美国”、“英国”、“新加坡”、“中国”、“印度”、“菲律宾”、“西班牙”进行了测试...但仍然有很多国家我想使用但不使用不知道在 API 调用中提供的值。这就是为什么我想获取可以在调用此 API 时使用的国家/地区(代码)列表。谢谢 (2认同)
  • 这对国家来说非常有效。目前,API 返回指定国家/地区“过去一年”、“当前年份”和“未来年份”3 年的假期。有没有办法获得过去或未来的特定年份? (2认同)

shi*_*kla 7

谷歌提供了假期列表的API。

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

  1. 就像我们想要美国的假期清单一样

然后,更改 url 中的文本

calendars/en.usa
Run Code Online (Sandbox Code Playgroud)

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

在这之后,

  1. 我们在“items”数组中获取所有假期事件列表。

像这样,

 "items": [
  {
   "kind": "calendar#event",
   "etag": "\"3101513576000000\"",
   "id": "20200101_60o30dr46oo30c1g60o30dr56g",
   "status": "confirmed",
   "htmlLink": "https://www.google.com/calendar/event?eid=MjAyMDAxMDFfNjBvMzBkcjQ2b28zMGMxZzYwbzMwZHI1NmcgZW4udXNhI2hvbGlkYXlAdg",
   "created": "2019-02-21T13:46:28.000Z",
   "updated": "2019-02-21T13:46:28.000Z",
   "summary": "New Year's Day",
   "creator": {
    "email": "en.usa#holiday@group.v.calendar.google.com",
    "displayName": "Holidays in United States",
    "self": true
   },
   "organizer": {
    "email": "en.usa#holiday@group.v.calendar.google.com",
    "displayName": "Holidays in United States",
    "self": true
   },
   "start": {
    "date": "2020-01-01"
   },
   "end": {
    "date": "2020-01-02"
   },
   "transparency": "transparent",
   "visibility": "public",
   "iCalUID": "20200101_60o30dr46oo30c1g60o30dr56g@google.com",
   "sequence": 0
  },
  {
.........
Run Code Online (Sandbox Code Playgroud)

我们将在那里获得所有详细信息,例如“摘要”键中的假日名称

"summary": "New Year's Day",
Run Code Online (Sandbox Code Playgroud)