Google APIをPHPウェブアプリケーションから呼び出す(APIキー) 第7回
作成済みのAPIキーを使って、公開されているGoogle カレンダーから祝日のデータを取得します。
APIキーの作成については、Google APIを使用するための設定(APIキーの作成) 第3回 - プログラミングノート をご覧ください。
概要
リクエストURLにデータ取得先のカレンダーIDを埋め込み、パラメータでAPIキーとデータの抽出条件を指定します。
作成したリクエストURLとパラメータを、PHPのfile_get_contentsメソッドの引数に指定し実行すると、カレンダーのデータ(JSON形式)を取得することができます。
手順
- リクエストURLを作成
- 抽出条件のパラメータを作成
- URLとパラメータを指定してカレンダーデータを取得
- 取得したJSON形式のカレンダーデータをデコード
1.リクエストURLを作成
下のURLで、Google カレンダーからイベントデータを取得します。
https://www.googleapis.com/calendar/v3/calendars/(カレンダーID)/events
このURLはEvents:listページの「Request」>「HTTP Request」に書かれています。
上のURLに、データ取得先のカレンダーのカレンダーIDを埋め込みます。
日本の祝日カレンダーのカレンダーIDは、「japanese__ja@holiday.calendar.google.com」です。
補足
リクエストURLは、API Reference | Google Calendar API | Google Developers のメソッドページに書かれています。それぞれのメソッドページの「Request」>「HTTP Request」をご覧ください。
日本の祝日カレンダーのカレンダーIDを誤って、「ja.japanese#holiday@group.v.calendar.google.com」と指定したとき、「401 Login Required」エラーが発生しました。
2.抽出条件のパラメータを作成
Events:list の主なパラメータについて書きます。
詳しくは、Events: list | Google Calendar API | Google Developers のParametersをご覧ください。
▼APIキー(必須)
▼並び順(任意)
orderBy=startTime
startTime(開始日時) または updated(更新日時)が指定できます。
startTimeを指定する場合は、singleEventsがtrueである必要があります。
▼シングルイベント(任意)
singleEvents=true
繰り返しイベントの抽出に関して指定します。
初期値はfalseです。
▼タイムゾーン(任意)
timeZone=Asia/Tokyo
指定がない場合は、カレンダーのタイムゾーンが使われます。
▼取得開始日時(任意)
timeMin=2017-01-01T00:00:00Z
RFC3339形式で指定します。
▼取得終了日時(任意)
timeMax=2017-12-031T00:00:00Z
RFC3339形式で指定します。
▼1ページの最大件数(任意)
maxResults=10
初期値は250件です。
2500件以下で指定します。
補足
ブラウザのアドレスバーにURLとパラメータを入力しアクセスしたとき、パラメータの指定に誤りがあれば、エラーメッセージが表示されます。
3.URLとパラメータを指定してカレンダーデータを取得
PHPのfile_get_contentsメソッドの引数でURLとパラメータを指定し、file_get_contentsメソッドを実行します。
$results = file_get_contents($url);
4.取得したJSONデータをデコード
PHPのjson_decodeメソッドを使って取得したカレンダーデータ(JSON形式)をデコードします。
$json = json_decode($results, true);
注意
APIキーを安全に保管するため、ソースファイルとは別のファイルにAPIキーを記述し、APIキーを記述したファイルはソースツリーの外に保管することが推奨されています。
記事一覧
第1回 Google APIを使用するための設定(プロジェクトの作成・使用するAPIの設定)
第2回 Google APIを使用するための設定(認証情報の登録)
第3回 Google APIを使用するための設定(APIキーの作成)
第4回 Google APIをPHPウェブアプリケーションから呼び出す
第5回 Google APIをPHPウェブアプリケーションから呼び出す(サービスアカウント)
第6回 Google APIへの問い合わせ状況と割り当てを確認する方法
第7回 Google APIをPHPウェブアプリケーションから呼び出す(APIキー)
参照
Setting up API keys - API Console Help
Best practices for securely using API keys - API Console Help