ビジネスとIT活用に役立つブログBlog


GoogleCalendarAPIを利用して、PHPでGoogleカレンダーの情報を取得してみよう!(予定編)

この記事をシェアする:
前回はGoogleの提供している日本の祝日カレンダーから祝日データを取得してみました。
今回は以下の2種類の方法で、自分のGoogleカレンダーの予定を取得してみようと思います。

  • カレンダーを公開し、前回同様APIキーを用いて取得する(方法1)
  • サービスアカウントを用いて、認証でカレンダーを取得する(方法2)

筆者の環境

  • CentOS 7
  • PHP 7.3.4

取得するカレンダーイメージ

仮のデータを入力した、以下のカレンダーから情報を取得してみます。

カレンダーを公開し、APIキーを用いて取得する(方法1)

STEP1 カレンダーを一般公開する

Googleカレンダーのメニューから「設定と共有」を選択します。


アクセス権限欄の「一般公開して誰でも利用できるようにする」を選択します。


警告のアラートが出るので「OK」を選択します。
※警告に表示されているとおり、一般公開することにより誰でも閲覧可能になります。(2つ目の方法はこの一般公開をしない方法になっています。)


カレンダーの統合欄にある、カレンダーIDをメモします。

STEP2 GoogleCalendarAPIキーの取得

前回の記事を参考にAPIキーの取得を行います。

STEP3 PHPでデータの取得

前回のコードからの変更点
  • カレンダーIDを日本の祝日カレンダーからSTEP1で取得したカレンダーIDに変更
  • 終日でない予定もあるので$resultsの取得箇所を変更

実行結果

終日予定、時間指定の予定、日をまたいでいる予定もしっかり取得できました!

サービスアカウントを用いて、認証でカレンダーを取得する(方法2)

1つ目の方法ではカレンダーを一般公開する必要があり、誰でも閲覧可能になってしまいます。
一般公開できないアカウントの場合は以下の方法でカレンダーを取得することができます。

STEP1 サービスアカウントの取得

前回の記事を参考にGoogleCalendarAPI有効化まで行います。
続いて、「認証情報を作成」から「サービスアカウント」を選択します。


サービスアカウント名とサービスアカウントIDを入力し「作成」ボタンを押下します。


サービスアカウントの権限(オプション)はそのまま「続行」ボタンを押下します。


「キーを作成」ボタンを押下し、キータイプがJSONになっていることを確認して「作成」ボタンを押下します。
ここでダウンロードされたサービスアカウントの秘密鍵は後で使いますので、保存しておきます。

STEP2 情報を取得したいカレンダー側の設定

STEP1で取得したサービスアカウントにカレンダーを共有します。
Googleカレンダーのメニューから「設定と共有」を選択します。


特定のユーザーとの共有欄の「ユーザーを追加」ボタンを押下します。

ダイアログが開きますので、STEP1で取得したJSONファイルをテキストエディタで開き、「client_email」の値を入力し、「送信」ボタンを押下します。

1つ目の方法同様カレンダーIDを使いますので、カレンダーの統合欄のカレンダーIDをメモしておきます。

STEP3 PHPでデータの取得

GoogleAPIのライブラリが必要になるので、下記のURLにアクセスしインストールします。

A PHP client library for accessing Google APIs

composerでインストールする方法と、.zip形式でダウンロードしインストールする方法がありますが、今回はcomposerでインストールします。

また、STEP1で取得した秘密鍵もサーバの同階層にアップロードします。

下記のコードを作成してみました。

実行結果

こちらの方法でも問題なく取得できました!

まとめ

いかがでしたでしょうか。取得したデータを使って通知BOTを作ったり、独自デザインのカレンダーに自動的にデータを表示させたりもできそうですね。

The following two tabs change content below.
アーティス

アーティス

創造性を最大限に発揮するとともに、インターネットに代表されるITを活用し、みんなの生活が便利で、豊かで、楽しいものになるようなサービスやコンテンツを考え、創り出し提供しています。
この記事のカテゴリ:

SNSで最新の情報を
受け取ることができます!