Google Calendarから日本の祝日データを取得する方法についての調査メモ。
ポイント
- GDataを使う場合はデベロッパーKEYが必要だが、GDataを使わなくても日本の祝日カレンダーは取得できる。
- 祝日名と日付を取得したい場合、Projection valueは"full-noattendees"で。(fullより少しだけデータが小さくなる。)
- 利用規約はGoogleカレンダー利用規約。
日本の祝日カレンダーのID
- japanese__ja@holiday.calendar.google.com (Googleカレンダーの公式版)
- japanese@holiday.calendar.google.com (Googleカレンダーのもう1つのID)
- outid3el0qkcrsuf89fltf7a4qbacgt9@import.calendar.google.com (mozilla.org版)
- mozilla.orgにあるカレンダーをインポートしたもの
- 下記の休日に対応していて、最も精度が高い
- 2008/5/6の振替休日
- 2009/5/6の振替休日
- 2012/3/20の春分の日 (Google公式版では3/21になっている)
- 元はCalendar - Holiday files (mozzila Calendar Project)
- 他にも、Googleカレンダー内で検索するとたくさんある
URLサンプル
http://www.google.com/calendar/feeds/japanese@holiday.calendar.google.com/public/full-noattendees?start-min=2008-01-01&start-max=2008-01-31&max-results=10&alt=json-in-script&callback=callbackHoliday
取得データサンプル
callbackHoliday({
"version":"1.0",
"encoding":"UTF-8",
"feed":{
"xmlns":"http://www.w3.org/2005/Atom",
"xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/",
"xmlns$batch":"http://schemas.google.com/gdata/batch",
"xmlns$gCal":"http://schemas.google.com/gCal/2005",
"xmlns$gd":"http://schemas.google.com/g/2005",
"id":{"$t":"http://www.google.com/calendar/feeds/japanese%40holiday.calendar.google.com/public/full-noattendees"},
"updated":{"$t":"2008-02-13T10:01:04.000Z"},
"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],
"title":{"type":"text","$t":"Japanese Holidays"},
"subtitle":{"type":"text","$t":"Japanese Holidays"},
"link":[
{
"rel":"alternate",
"type":"text/html",
"href":"http://www.google.com/calendar/embed?srcu003djapanese@holiday.calendar.google.com"
},
{
"rel":"http://schemas.google.com/g/2005#feed",
"type":"application/atom+xml",
"href":"http://www.google.com/calendar/feeds/japanese%40holiday.calendar.google.com/public/full-noattendees"
},
{
"rel":"http://schemas.google.com/g/2005#batch",
"type":"application/atom+xml",
"href":"http://www.google.com/calendar/feeds/japanese..."
},
{
"rel":"self",
"type":"application/atom+xml",
"href":"http://www.google.com/calendar/feeds/japanese..."
}
],
"author":[{"name":{"$t":"Holiday Calendars"},"email":{"$t":"doozer.holiday.calendars@gmail.com"}}],
"generator":{"version":"1.0","uri":"http://www.google.com/calendar","$t":"Google Calendar"},
"openSearch$totalResults":{"$t":"2"},
"openSearch$startIndex":{"$t":"1"},
"openSearch$itemsPerPage":{"$t":"10"},
"gCal$timezone":{"value":"Etc/GMT"},
"entry":[
{
"id":{"$t":"http://www.google.com/calendar/feeds/japanese..."},
"published":{"$t":"2006-09-06T04:52:22.000Z"},
"updated":{"$t":"2006-09-14T08:16:28.000Z"},
"category":[{
"scheme":"http://schemas.google.com/g/2005#kind",
"term":"http://schemas.google.com/g/2005#event"
}],
"title":{"type":"text","$t":"成人の日"},
"content":{"type":"text","$t":""},
"link":[
{
"rel":"alternate",
"type":"text/html",
"href":"http://www.google.com/calendar/event?...",
"title":"alternate"
},
{
"rel":"self",
"type":"application/atom+xml",
"href":"http://www.google.com/calendar/feeds/japanese..."
}
],
"author":[{"name":{"$t":"Japanese Holidays"}}],
"gd$recurrence":{"$t":"DTSTART..."},
"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},
"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},
"gCal$uid":{"value":"24cihigm..."},
"gCal$sequence":{"value":"0"},
"gd$when":[{"startTime":"2008-01-14","endTime":"2008-01-15"}],
"gd$where":[{"valueString":""}]
},
{
"id":{"$t":"http://www.google.com/calendar/feeds/japanese..."},
"published":{"$t":"2006-09-06T04:52:22.000Z"},
"updated":{"$t":"2006-09-14T08:16:28.000Z"},
"category":[{
"scheme":"http://schemas.google.com/g/2005#kind",
"term":"http://schemas.google.com/g/2005#event"
}],
"title":{"type":"text","$t":"元日"},
"content":{"type":"text","$t":""},
"link":[
{
"rel":"alternate",
"type":"text/html",
"href":"http://www.google.com/calendar/event?...",
"title":"alternate"
},
{
"rel":"self",
"type":"application/atom+xml",
"href":"http://www.google.com/calendar/feeds/japanese..."
}
],
"author":[{"name":{"$t":"Japanese Holidays"}}],
"gd$recurrence":{"$t":"DTSTART..."},
"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},
"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},
"gCal$uid":{"value":"egd5o1dg438h..."},
"gCal$sequence":{"value":"0"},
"gd$when":[{"startTime":"2008-01-01","endTime":"2008-01-02"}],
"gd$where":[{"valueString":""}]
}
]
}
});
参考
Tam-calendar.js に Google Calendar の祝日データを取り込む « iDeasilo
API Reference Guide - Google Calendar APIs and Tools - Google Code (本家リファレンス)
API Reference Guide - Google Calendar APIs and Tools - Google Code (上記の、取得データ内容の指定についての部分)
Using JSON with Google Data APIs - Google Data APIs - Google Code (JSONPについてなど)
Google カレンダー利用規約
Googleカレンダーの「日本の祝日」が間違っている | Google Mania - グーグルの便利な使い方
0 件のコメント:
コメントを投稿