Google APIキーの取得方法とカレンダーAPIで祝日を取得する方法
2019/12/17
GoogleのカレンダーAPIを使ってみようと思ったのですが、APIキーってのを取得しないと使えないので、その取得方法と、カレンダーAPIの使い方をさらっとポストしてみたいと思います。
Google APIキーの取得方法とカレンダーAPIの使い方
1. google developpers console にアクセス
以下のURLにアクセス。
どこからリンクしているのかよく分からなかったのですが、googleで「google developpers console」と検索すれば1発でアクセスできます。
2. プロジェクトを作成
適当なプロジェクト名を付けてプロジェクトを作成します。
プロジェクトダッシュボード
しばらく画面の右下でグルグルと読み込んでいますが、読み込みが終わると以下の様なダッシュボードが表示されます。
これでプロジェクトが作成されました、と事のようです。
3. 使用するAPIを選択し、APIキーを取得する
↑ 左サイドメニューの「APIと認証」→「API」で、様々なAPIがずらっと並ぶ画面になります。
↑ 上部の検索バーに「calendar」と入力すると、目的のカレンダーAPIが表示されます。
↑ 「APIを有効にする」ボタンをクリック
↑ 有効になりました
4. 公開APIの作成
↑ 左サイドメニューの「APIと認証」→「認証情報」をクリック
↑ 下の方の、公開APIへのアクセスの「新しいキーを作成」ボタンをクリック
↑ ブラウザから使用させるので「ブラウザキー」をクリック
↑ どのリファラーからのアクセスを許可するのか設定します。
例えば「http://nodoame.sakura.ne.jp/」以下のページで利用したい場合なら
「nodoame.sakura.ne.jp/*」と設定します。
改行で区切って複数サイトの指定も可能なようです(未確認)。
↑ 入力後、APIキーが作成され、リファラ等が確認できるようになります。
カレンダーAPIで祝日を取得してみる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
/** * GoogleカレンダーAPIから祝日を取得する * */ public function get_holidays() { $year = date(Y); $apiKey = GOOGLE_CALENDAR_API_KEY; // 手順4で作成したAPIキー $holidays = array(); // カレンダーID $calendar_id = urlencode('japanese__ja@holiday.calendar.google.com'); // 取得期間 $start = date($year."-01-01\T00:00:00\Z"); $finish = date($year."-12-31\T00:00:00\Z"); $url = "https://www.googleapis.com/calendar/v3/calendars/{$calendar_id}/events?key={$apiKey}&timeMin={$start}&timeMax={$finish}&maxResults=50&orderBy=startTime&singleEvents=true"; //pr($url); if ($results = file_get_contents($url, true)) { // JSON形式で取得した情報を配列に格納 $results = json_decode($results); // 年月日をキー、祝日名を配列に格納 foreach ($results->items as $item) { $date = strtotime((string) $item->start->date); $title = (string) $item->summary; $holidays[date('Y-m-d', $date)] = $title; } // 祝日の配列を並び替え ksort($holidays); } return $holidays; } |
結果
作成したURLへ直リンした場合
直リンした際にブラウザに表示されるjsonデータ(一部抜粋)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
{ "kind": "calendar#events", "etag": "\"1428886568000000\"", "summary": "日本の祝日", "description": "日本の祝日と行事", "updated": "2015-04-13T00:56:08.000Z", "timeZone": "UTC", "accessRole": "reader", "defaultReminders": [], "items": [ { "kind": "calendar#event", "etag": "\"2778544492000000\"", "id": "20150101_60o30d9l64o30c1g60o30dr4co", "status": "confirmed", "htmlLink": "https://www.google.com/calendar/event?eid=MjAxNTAxMDFfNjBvMzBkOWw2NG8zMGMxZzYwbzMwZHI0Y28gamFwYW5lc2VfX2phQGg", "created": "2014-01-09T12:57:26.000Z", "updated": "2014-01-09T12:57:26.000Z", "summary": "元日", "creator": { "email": "japanese__ja@holiday.calendar.google.com", "displayName": "日本の祝日", "self": true }, "organizer": { "email": "japanese__ja@holiday.calendar.google.com", "displayName": "日本の祝日", "self": true }, "start": { "date": "2015-01-01" }, "end": { "date": "2015-01-02" }, "transparency": "transparent", "visibility": "public", "iCalUID": "20150101_60o30d9l64o30c1g60o30dr4co@google.com", "sequence": 0 }, { "kind": "calendar#event", "etag": "\"2778544490000000\"", "id": "20150112_60o30d9l6go30e1g60o30dr4co", "status": "confirmed", "htmlLink": "https://www.google.com/calendar/event?eid=MjAxNTAxMTJfNjBvMzBkOWw2Z28zMGUxZzYwbzMwZHI0Y28gamFwYW5lc2VfX2phQGg", "created": "2014-01-09T12:57:25.000Z", "updated": "2014-01-09T12:57:25.000Z", "summary": "成人の日", "creator": { "email": "japanese__ja@holiday.calendar.google.com", "displayName": "日本の祝日", "self": true }, "organizer": { "email": "japanese__ja@holiday.calendar.google.com", "displayName": "日本の祝日", "self": true }, "start": { "date": "2015-01-12" }, "end": { "date": "2015-01-13" }, "transparency": "transparent", "visibility": "public", "iCalUID": "20150112_60o30d9l6go30e1g60o30dr4co@google.com", "sequence": 0 }, 以下略 ] } |
戻り値の$holidays
作成された $holidays のダンプ結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Array ( [2015-01-01] => 元日 [2015-01-12] => 成人の日 [2015-02-11] => 建国記念の日 [2015-03-21] => 春分の日 [2015-04-29] => 昭和の日 [2015-05-03] => 憲法記念日 [2015-05-04] => みどりの日 [2015-05-05] => こどもの日 [2015-05-06] => 憲法記念日 振替休日 [2015-07-20] => 海の日 [2015-09-21] => 敬老の日 [2015-09-22] => 国民の休日 [2015-09-23] => 秋分の日 [2015-10-12] => 体育の日 [2015-11-03] => 文化の日 [2015-11-23] => 勤労感謝の日 [2015-12-23] => 天皇誕生日 ) |