kintoneとPowerAutomateでZoom会議を予約する
本記事は kintone Advent Calendar 2023 23日目の記事です。
記事概要
kintoneでレコードを登録したら、PowerAutomateのクラウドフローでZoomのAPIを叩いて、会議室を予約します。
自社でもこの記事の内容を実現してみたい。という方がおみえでしたら、kintoneスポット開発無料相談フォームから、ぜひお問い合わせください。
参考記事
Zoom APIの初期設定でかなり苦労したのですが、こちらの記事に助けられました。
きちんとした手順を踏みたい方はこちらの記事をお勧めします!
全体の流れ
- ZoomでAPI初期設定をする。
- kintoneアプリを作る
- PowerAutomateでwebhookを受け取る
- Zoomのアクセストークンを取得する。
- アクセストークンを使って会議室を予約する。
- 予約結果をkintoneにコメントで戻す。
ZoomでAPI初期設定をする。
まずは、Zoom側で初期設定を行います。Zoomの公式ヘルプは下記URLを参照
Internal apps (Server-to-server)
詳細→アプリマーケットプレイス
Develop → Build APP
今回使うのは、Server-to-Server OAuthです。少し前まで、JWT APPという名前だった様です。
名前をいれます。
Account ID、Client ID、Client Secretを記録しておきましょう。あとから使います。
InfomationとFeatureは適当にいれます(社名とか)
スコープを指定します。ここは最低限のものに絞るのがよいと思いますが、私は途中うまくいかなかったときに全スコープを指定しました。ちゃんと作るときは、こういうことはやらないほうが良いです。
一通り設定すると下図の様に表示されます。
kintoneアプリを作る
こんな感じのアプリを作ります。
PowerAutomateでwebhookを受け取る
kintoneコネクタを使います。レコード追加時のイベントでwebhookが飛んできます。
Zoomのアクセストークンを取得する。
HTTPコネクタを使って、Zoomのアクセストークンを取得します。
Zoomの公式ヘルプは下記URLを参照
Server-to-Server OAuth
HTTPコネクタは下図のイメージ
ポイントは下記
- Content-Typeはapplication/x-www-form-urlencoded
- AuthorizationはBasic に続けて、client_id:client_secretをBase64エンコードした文字列
- grant_typeはaccount_credentials
- account_idはそのまま指定
アクセストークンを使って会議室を予約する。
HTTPコネクタを使って、Zoomの会議室を予約します。
Create a meetingのAPIを使います。Zoomの公式ヘルプは下記URLを参照。
HTTPコネクタは下図のイメージ
ポイントは下記
- POST /users/{userId}/meetings という形でURL自体にuserIdを含める。
- Content-Typeはapplication/json
- Authorizationで、先ほど取得したアクセストークンを使用。
- topic,start_timeには、kintoneの値を代入。
- 本来はタイムゾーンとかをちゃんと考慮すべきと思いますが、さぼりました。きちんと作るときは、kintoneのタイムゾーンをきちんと意識して作る必要があると思います。
- Create a meeting APIにはもっとたくさんのパラメータがありますが、さぼりました。
- APIからは様々な値が戻ってきます。今回はjoin_urlだけを使いますが、他にも、id,start_url,settings等、きちんと構築する際に活用できそうな項目がたくさんありました。
予約結果をkintoneにコメントで戻す
kintoneのコメントAPIを使って、会議のURLをkintoneに書き戻します。
コメントAPIの公式ヘルプはこちら
HTTPコネクタは下図のイメージ
ポイントは下記
- APIトークンを使っています。
- RecordではWebhookで飛んできたレコード番号を指定
- textには、Zoom API Create a meeting から戻ってきた会議のURL(join_url)を指定
動作イメージ
kintoneにレコード登録をすると、生成されたZoomURLがコメントで返ってきます。
ちゃんと会議予約もできています。よかった。
おまけ
Power AutomateのクラウドフローでZoom専用のコネクタもあるっぽいので、それを使うつもりでしたが、うまく動きませんでした。
接続作ろうとすると、下図のエラーです。誰かうまく使えた人がいたら、ぜひ教えてください。
Discussion