プログラミングノート

プログラミングの備忘録です

Google APIをPHPウェブアプリケーションから呼び出す(APIキー) 第7回

作成済みのAPIキーを使って、公開されているGoogle カレンダーから祝日のデータを取得します。

 

APIキーの作成については、Google APIを使用するための設定(APIキーの作成) 第3回 - プログラミングノート をご覧ください。

 

概要

  リクエストURLにデータ取得先のカレンダーIDを埋め込み、パラメータでAPIキーとデータの抽出条件を指定します。

 作成したリクエストURLとパラメータを、PHPのfile_get_contentsメソッドの引数に指定し実行すると、カレンダーのデータ(JSON形式)を取得することができます。

 

手順

  1. リクエストURLを作成
  2. 抽出条件のパラメータを作成
  3. URLとパラメータを指定してカレンダーデータを取得
  4. 取得した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キー(必須)

 key = APIコンソールで作成した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データをデコード

PHPjson_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 APIPHPウェブアプリケーションから呼び出す(APIキー)

 

参照

Setting up API keys - API Console Help

Best practices for securely using API keys - API Console Help