先日、↓の立会外分売に関するブログを作成しました。
このブログは自作したpythonプログラムがサーバーから定期的に実行されることにより自動的に情報が更新されていくという特徴があるのですが、このブログに対して更にGoogleカレンダーと連携する機能を持たせようと考えました。
そこで、今回はGoogleカレンダーに外部から予定を追加するための方法について解説したいと思います。
API有効化
Googleカレンダーに対して予定を追加するにはGoogleが提供しているAPIを使用します。そのため、まずはAPIの有効化を行います。
まずはGoogle Cloud Platformにアクセス。
APIとサービス→ライブラリを選択します。

Google Calendar APIを選択します。

下のような画面が出るので有効にするボタンをクリック

これでAPIが有効となりました。
OAuth同意画面の作成
次にAPIを使用して外部からカレンダーの情報を取得したり情報を追加するための認証に関する設定をしていきます。
APIとサービス→OAuth認証をクリック

UserTypeは外部を選択して作成ボタンをクリックします。(内部はそもそも選択できません)

アプリ名に適当な名前を、ユーザーサポートメールは自身のメールアドレスを入力します。

画面を下の方にスクロールし、デベロッパーの連絡先情報を入力します。このメールアドレスは上と一緒でOKです。
この3か所を入力したら保存して次へをクリック。また、それ以降の画面でも全て保存して次へをクリックしていきます。

サービスアカウントの作成
今度はサービスアカウント作成をします。(カレンダーに予定を追加するための専用アカウントみたいなものと思ってもらえればOKです)
再度APIとサービスから、今度は認証情報をクリックします。

画面上の認証情報を作成→サービスアカウントをクリックします。

サービスアカウント名に適当な名前を入れます。その下の欄はサービスアカウント名と連動して自動的に入力されます。
入力したら完了ボタンをクリックして完了です。

サービスアカウントのキーの生成
作成したサービスアカウントでGoogleサービスのAPIにアクセスするための認証キーを作成します。
サービスアカウント欄に先程作成したサービスアカウントが追加されているため、それをクリックします。

キーをクリックし、その後鍵を追加→新しい鍵を作成をクリックします。

下記のような画面が表示されますので、キーのタイプをJSONにして作成ボタンをクリックします。

そうすると、ダウンロードフォルダに認証情報が書かれたjsonファイルがダウンロードされます。
このjsonファイルは認証情報が書かれているためセキュリティ上非常に重要なファイルとなります。誰にもアクセスされない場所に適切に保管してください。
間違っても誰でもアクセスできるような場所に配置しないようにしましょう。

カレンダーの共有設定
今度はスケジュールの操作をしたいカレンダーに対して、作成したサービスアカウントからもスケジュールを追加できるように共有設定を行います。
まずはスケジュールを操作したいGoogleカレンダーにログインします。
そして、マイカレンダー欄に並んでいるカレンダー名の横に表示されている’︙’をクリックしてオーバーフローメニューを呼び出します。

こんな感じでメニューが表示されるので、設定と共有をクリックします。

特定のユーザーとの共有まで移動し、ユーザーを追加をクリックします。

作成したサービスアカウント名を入力します。
まt、権限を「変更及び共有の管理権限」とします。

送信ボタンをクリックすると以下のように特定のユーザーとの共有に作成したサービスアカウントが追加されます。

以上でpythonでGoogleカレンダーを操作するための準備は終了です。
あとはスケジュールを追加するためのプログラミングをしていきます。
プログラミングに関しては次の記事をご覧ください。
コメント