💻

kintoneとPowerAutomateでZoom会議を予約する

2023/12/19に公開

本記事は kintone Advent Calendar 2023 23日目の記事です。

記事概要

kintoneでレコードを登録したら、PowerAutomateのクラウドフローでZoomのAPIを叩いて、会議室を予約します。

自社でもこの記事の内容を実現してみたい。という方がおみえでしたら、kintoneスポット開発無料相談フォームから、ぜひお問い合わせください。

参考記事

Zoom APIの初期設定でかなり苦労したのですが、こちらの記事に助けられました。
きちんとした手順を踏みたい方はこちらの記事をお勧めします!

kintone-Zoom連携自習1日目

全体の流れ

  1. ZoomでAPI初期設定をする。
  2. kintoneアプリを作る
  3. PowerAutomateでwebhookを受け取る
  4. Zoomのアクセストークンを取得する。
  5. アクセストークンを使って会議室を予約する。
  6. 予約結果を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を参照。

Create a meeting

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専用のコネクタもあるっぽいので、それを使うつもりでしたが、うまく動きませんでした。

接続作ろうとすると、下図のエラーです。誰かうまく使えた人がいたら、ぜひ教えてください。

https://www.qloba.com/forms/9841

Discussion