0
0

akippaの予約CSVからGoogleカレンダーに転記するLambda関数 #1

Last updated at Posted at 2024-07-29

バックオフィスが生成AIでがんばるシリーズですが、今回はプライベートで利用しているサービスの自動化についてやっていきます。

やりたいこと

akippa(アキッパ)の駐車場予約情報CSVをオーナーサイトからダウンロードして予約情報をGoogleカレンダーに転記します。

方針

以下の処理を行うAWSのLambda関数を作成して実現させます。

  1. akippaのオーナーサイトにログインします
  2. 予約一覧のページにあるCSVダウンロードのリンクから予約一覧CSVをダウンロードします
  3. CSVから1行ごとの予約情報をパースして、Googleカレンダーに Google calendar API を使用して転記します

なおコードをクリーンにするため、akippaオーナーサイトのログイン情報(ID/Pass)及びGoogleカレンダーIDやAPIのトークン(JSON)はLambda関数の環境変数に保存します。
今回コードはChatGPT 4o に作成させ、テストしながらデバッグしていきました。

Googleカレンダーの準備

まずは、新しいカレンダーを作成します。設定画面の下のほう「カレンダーの統合」にあるカレンダーIDを取得して控えます。

Google Calendar API の準備

  1. GCPにログインして、新しいプロジェクトを作成します。プロジェクト名は任意のものを使用してください
    image.png

  2. 「APIとサービス」から「+APIとサービスを有効にする」をクリックします
    image.png

  3. "calendar"等で検索してGoogle Calendar APIを探し、有効にします
    image.png

  4. 「IAMと管理」から「サービスアカウント」を選択し、新しいサービスアカウントを作成します
    image.png

  5. サービスアカウント名は任意のものを設定し、メールアドレスをコピーして控え、完了ボタンを押します
    image.png

  6. 作成したサービスアカウントの右端の「操作」から「鍵を管理」を選択します
    image.png

  7. 「鍵を追加」から「鍵を作成」を選択します
    image.png

  8. 秘密鍵の作成で、JSONを選択して作成します
    image.png

  9. すると自動的にJSON形式の鍵がダウンロードされますので、安全に保管します

  10. これでGoogle Calendar API の準備は完了です。カレンダーIDとJSONの内容を後で使用しますので控えておきましょう

Lambda関数の準備

  1. AWSコンソールよりLambda関数を作成します。「関数を作成」ボタンから作成してください
  2. 今回はpythonで作成します。「一から作成」を選択し、関数名は任意のもので、ランタイムは Python を選択します。右下の「関数の作成」を押下してください
    image.png
    関数が作成できたら、環境変数を設定します。

Lamda関数の環境変数の設定

先ほど作成した関数を表示し、設定タブの中の「環境変数」から環境変数を追加します。
image.png
具体的には下記の環境変数を追加し、値のほうに適切な値を設定します。

  • GOOGLE_APPLICATION_CREDENTIALS_JSON
    ⇒ GCPからダウンロードしたJSONファイルを開いて中身をコピペ
  • calendar_id
    ⇒ 作成した Google Calender の カレンダーID
  • username
    ⇒ akippaのユーザーネーム(ID)
  • pass
    ⇒ akippaのパスワード

ここまで出来たらChatGPTに生成してもらったコードを貼り付けていきますが、今回はここまで。

まとめ

今回はGoogleカレンダーAPIの準備を行いました。
次回はLambda関数を作成し、実際にakippaとのサイトからCSVをダウンロードして転記する処理に進みたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0