1
0

Google Meetに参加/退出するとSlackに通知するBotの作り方(プレビュー版)

Last updated at Posted at 2023-12-07

Slackのハドルミーティングでは参加/退出の際にチャンネル内に表示されるため一目でわかりますが、Google Meetを使う際もSlackに参加/退出の通知が来ると便利ですよね。
今回はプレビュー版のGoogle Meet APIを使用してMeetの入退出イベントを取得し、Slackに通知を飛ばす方法を解説します。
通知部分のコードを変えればSlack以外にDiscordなどでも通知可能です。

前提条件

その他条件については Developer Preview Program Terms 参照。

注意

2023/12/21に仕様変更があり、Space Nameが今までは spaces/3eaf892f-2628-445d-ba90-918e9f53e077 形式だったのが、spaces/abc-mnop-xyz 形式に変わるようです。
それに伴い、12/21以前から使用している場合は、環境変数 SPACE_NAME の変更およびサブスクリプションへの再登録が必要です。

用語について

  • Space: ミーティングID (例: abc-mnop-xyz) 単位。
  • Conference: Space内に誰かが参加すると自動的に作成され、参加者が0人になると自動的に終了する。

コード

GCP周りの設定

Pythonライブラリのダウンロード

承認されたユーザーにのみPythonクライアントライブラリは公開されているため、pip等でそのままはインストールできません。
上記の申請が承認されると、以下の Download the client library リンクから飛べるGoogleドライブにアクセスが付与されているはずなので、ダウンロードします。

OAuth設定

OAuth同意画面を https://www.googleapis.com/auth/meetings.space.created スコープで作成します。
https://console.cloud.google.com/apis/credentials/consent

また、クライアントIDを作成します。
https://console.cloud.google.com/apis/credentials

gcloud CLI のインストール

以下のような記事を参考に gcloud コマンドを使用可能な状態にしてください。
https://qiita.com/G-awa/items/e6904b040caa0096fba0

gcloud auth
gcloud auth application-default login

Artifact Registry にアップロード

以下を参考にして twine でアップロードします。
https://cloud.google.com/artifact-registry/docs/python/store-python

なお、ローカルで動かすだけであればpipでそのままローカルからパッケージをインストールしてOKです。

設定

mv .env.example .env
mv .env.yaml.example .env.yaml
  1. .env, .env.yaml ファイルに環境変数を入力
  2. requirements.txtの1行目にArtifact Registryのリポジトリ名を入力
pip install -r requirements.txt

実行

ローカルでの実行

python main.py

Cloud Functionsへのデプロイ

gcloud functions deploy your-function-name \
--gen2 \
--runtime=python312 \
--region=asia-northeast1 \
--source=. \
--entry-point=subscribe \
--trigger-topic=your-topic-name \
--env-vars-file .env.yaml

サブスクリプションの更新について

Expire time must be between 0 and 7 days from now とのことで、サブスクリプションは1週間ごとに更新が必要です。

参考

設定の詳細や最新情報はこちらを参照してください。

1
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
1
0