1
/
5

サービスアカウント認証でGoogleカレンダーAPIを使ってみた【株式会社ライトコード】

はじめに

GoogleカレンダーAPIを使ってGoogleカレンダーに予定を追加するというのをやりました。

またAPIの認証方法に、OAuth 2.0での認証とサービスアカウントを用いての認証がありますが

今回はサービスアカウントでの認証でAPIを使用していきます。

また今回はphpのコードでAPIを実行していきます。

今回は以下の環境で開発しています。

  • Laravel 9.17.0
  • php8.0
  • GCPのプロジェクトがある

GoogleカレンダーAPIとは

GoogleカレンダーAPIとは、その名の通りGoogleカレンダーを操作するためのAPIです。

カレンダーの予定を作成、更新、削除などを行うことができます。

当然ですがGoogleが提供しています。

実装に向けての準備

では実装に向けてGCPのプロジェクト内で準備をしていきます。

準備としては以下の3点です。

  1. Google Calendar APIの有効化
  2. サービスアカウントの作成およびキーのダウンロード
  3. 予定を入れたいGoogleアカウントのカレンダーの管理権限をサービスアカウントに付与する

Google Calendar APIの有効化

プロジェクトのダッシュボードで「APIとサービス」>「ライブラリ」に移動します。

ライブラリにて「Google Calendar API」で検索し、出てきたページに飛びます。

遷移したページ内にて「有効にする」というボタンがあるので、そのボタンを押して

Google Calendar APIを有効にします。

サービスアカウントの作成およびキーのダウンロード

プロジェクトの「IAMと管理」>「サービスアカウント」に移動します。

「サービスアカウントを作成」を選択しサービスアカウント名を入力し説明欄に適宜説明を記述します。

(サービスアカウントIDの入力欄がありますが、サービスアカウント名を入力すると自動で反映されます。特段こだわりがなければ自動で反映されたものそのまま使って問題ありません)

各所入力が完了したら「完了」ボタンを押すとサービスアカウントが作成されます。

サービスアカウントの作成ができたら次はキーの作成を行っていきます。

サービスアカウント作成時同様「IAMと管理」>「サービスアカウント」に移動します。

作成したサービスアカウントの詳細画面に移動しキー(鍵)を管理するページに移動します。

そこに「鍵を追加」と書かれたボタンばあるのでそれを押して、「新しい鍵を作成」を選択します。

そうするとキーのタイプを選ぶ画面が出るのでJSONタイプを選択し、ダウンロードします。

ダウンロードしたキーは紛失しないよう管理してください。

補足ですが2024年6月16日以降、サービスアカウントのキーの漏洩が確認されると自動でサービスアカウントが無効化されます。

ですのでキーの管理は公開された場所に保管しないようにしましょう。

GitHubのpublicリポジトリ等も無効化の対象のようですので注意です。

↓参考↓

https://cloud.google.com/blog/ja/products/identity-security/automatically-disabling-leaked-service-account-keys-what-you-need-to-know

予定を入れたいGoogleアカウントのカレンダーの管理権限をサービスアカウントに付与する

サービスアカウント認証で他のユーザーのカレンダーに予定を入れたい場合は、そのカレンダーの管理権限をサービスアカウントにも付与しないといけません。

まずGoogleアカウントのカレンダーの画面に移動します。

予定を入れたいカレンダーの「設定と共有」の画面に移動して、「特定のユーザーまたはグループと共有する」の欄の「ユーザーやグループを追加」のボタンを押します。

そうするとアカウントを選択する欄と、権限選択の欄がでくるのでサービスアカウントのメールアドレスを選択し「変更及び共有の管理権限」の権限を選択し「送信」ボタンを押します。

以上で権限付与は完了です。

実装

準備が整ったのでいよいよ実装に取り掛かります。

記事の続きは下のリンクをクリック!

https://rightcode.co.jp/blogs/47044


エンジニア積極採用中です!

現在、WEBエンジニア、モバイルエンジニア、デザイナー、営業などを積極採用中です!

採用ページはこちら:https://rightcode.co.jp/recruit

社員の声や社風などを知りたい方はこちら:https://rightcode.co.jp/blogs?category=life

社長と一杯飲みながらお話しませんか?(転職者向け)

特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk

もっとワクワクしたいあなたへ

現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「営業」などを積極採用中です!

ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。

有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。

  • もっと大きなことに挑戦したい!
  • エンジニアとしてもっと成長したい!
  • モダンな技術に触れたい!

現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?

ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。

  • ライトコードの魅力を知っていただきたい!
  • 社風や文化なども知っていただきたい!
  • 技術に対して熱意のある方に入社していただきたい!

一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。

【コーポレートサイト】https://rightcode.co.jp/

【採用募集】https://rightcode.co.jp/recruit(こちらからの応募がスムーズ)

【wantedlyぺージ】https://www.wantedly.com/companies/rightcode

Invitation from 株式会社ライトコード
If this story triggered your interest, have a chat with the team?
株式会社ライトコード's job postings

Weekly ranking

Show other rankings
Like Hiroyuki Choshi's Story
Let Hiroyuki Choshi's company know you're interested in their content