開発コストを削減「BiTT開発」って?
開発コストを削減「BiTT開発」って?
2019.06.25

Google Calendar API と PHP で 予定の取得と追加をしてみるよ(準備編)

ハル

半年前ぐらいに一眼カメラを買ってカメラ沼にズブズブとハマっているハルです。

最初、ズームレンズを買ったのですが、単焦点レンズというものに手を出したいなとも思っています。

ですが、まだ今のレンズのローンがあり、すぐには買えない……。かなしいです。

さて、最近、Google Calendar APIをつかって、自分のカレンダーに予定の追加と削除をしたくなりました。みなさんもそういうとき、ありますよね? そこで今回の記事では、Google Calendar APIを使うために必要な下準備をしていきます。

ちなみに、もう下準備終わってるよ! という方はこちらの後編の記事をご覧ください。

Google Calendar APIの準備

Google Cloud Platform にアクセスします。

Google Cloud Platform: https://console.cloud.google.com/

プロジェクトの選択

Google Cloud Platform で 上部メニューバーの 【プロジェクトの選択】 の部分でプロジェクトをクリックします。選択するプロジェクトがない場合は作成する必要があります(すでに作成している場合、プロジェクト名の表示になっています)。

プロジェクトの作成

プロジェクトがなく新規に作成する場合の説明です。

右上の 【新しいプロジェクト】 をクリックします。

『新しいプロジェクト』 の作成画面が表示されます。【プロジェクト名】 の入力欄にプロジェクト名を入力し、【作成】ボタンをクリックします。

これでプロジェクトが作成できました。

APIの有効化

次に Google Calendar API の有効化の設定を行います。

左上のメニューボタンをクリックし、左に表示されるメニューから、 【API とサービス】 > 【ライブラリ】 をクリックします。

『API ライブラリ』 の画面が表示されたら 検索フォームで『calender』と入力し検索します。『Google Calendar API』がヒットするので選択し、詳細画面へ移動します。

『Google Calendar API』 の詳細画面に 【有効にする】 ボタンがあります。クリックして有効化完了です。

サービスアカウントの作成

つぎにサービスアカウントの作成を行います。サービスアカウントとは、個々のエンドユーザーのアカウントと違い、APIを制御するためアカウントです。

左のメニューを表示させ、 【APIとサービス】 > 【認証情報】 をクリックします。

【認証情報を作成】 のボタンから 【サービス アカウント キー】 をクリックします。

サービス アカウント キーの作成ページが開いたら、サービス アカウント で 【新しいサービス アカウント】 を選択し、 【サービス アカウント名】 に任意の名前を入力します。

すると、自動で 【サービス アカウント ID】 も入力されます。

【キータイプ】 は 【JSON】 を選択。その後、【作成】 ボタンを押しましょう。

役割を選択するか確認の選択が出ます。 役割を割り当てなくても問題なく動くので、【役割なしで作成】 を選択し次に進みます。

作成が終了するとjsonファイルがダウンロードされます

認証情報が記述されているこのjsonファイルを、実際にアプリケーションを作成するときに使用します。

Googleカレンダーの準備

次に、Googleカレンダーの準備を行います。

新しくカレンダーを作成し、先ほど作ったサービスアカウントでアクセスできるように設定しましょう。

新規カレンダーを作成

まず、カレンダーを追加します。

Googleカレンダーを開き、他の左のメニューから 【他のカレンダー】 の横にある 【+(プラスのボタン)】 をクリックします。

任意のカレンダーの名前を設定して 【カレンダーを作成】 をクリックします。

カレンダーにサービスアカウントの権限を設定

カレンダーにサービスアカウントを設定し、さらに権限を付与します。

サービスアカウントのメールアドレスの確認

作成しておいたサービスアカウントのメールアドレスを確認します。確認の方法はふたつあります。

ひとつめはサービスアカウント作成時にダウンロードしたjsonファイルの 【client_email: 】 に記述されているものを確認する方法。

そしてもうひとつは、アカウント作成したときの Google Cloud Platform の左メニューから 【IAMと管理】 の 【サービスアカウント】 から確認する方法です。

どちらかの方法でメールアドレスが確認ができたら、権限の設定に移ります。

カレンダーで権限の設定

Googleカレンダーに戻ります。

Googleカレンダーの右上あたりにある歯車マークから 【設定】 から設定画面を開きます。

設定画面で、左メニューの 【マイカレンダーの設定】 で、 先ほど作成したカレンダーを選択します。

詳細画面へ切り替わります。スクロールをし、 【特定のユーザーとの共有】 の項目で、 【+ ユーザーを追加】 ボタンをクリックします。

【特定のユーザーと共有】 設定の入力欄が表示されます。

【メールアドレスまたは名前を追加】 にサービスアカウントのメールアドレスを設定します。

【権限】 には 【変更および共有の管理権限】 を選択します。

(もし、予定の取得だけなら 【閲覧権限(すべての予定の詳細)】で問題ありません。今回のチュートリアルでは予定の追加も行いたいので、強い権限を選択しています)

そして、 【送信】 をクリックします。

【特定のユーザーとの共有】 の設定項目にサービスアカウントが追加されたことが確認できるかと思います。

これで下準備が終了しました!

長くなってしまったので、今回はここまで。次の記事で実際にPHPでカレンダーの予定取得と予定追加をやってみたいと思います。

今回紹介した権限周りの設定を一度行ったときに、私自身ハマってしまいました。上記の設定をしっかりすれば、次の記事で紹介するPHPでの操作はスムーズに行えるかと思います!

次へ続くっ!

2