kintone-Zoom連携自習1日目
Zoomミーティングの登録が面倒なので、kintone側に設定して同じ設定を使い回してミーティングを登録したい。
検証環境はmac os
構成は下記のような感じ

概要
認証部分の作成
1・認証用のZoom Appを作成する
2・kintoneに認証情報保存用Appを作成する
3・Zoom API用のアクセストークンを取得する
Zoomミーティングの作成
4・Zoom API用のアクセストークンを認証情報保存用のkintoneアプリに登録する
5・kintoneにZoomミーティング予約アプリを作成する
6・Zoom API を利用してミーティングを作成するプログラムをAWS Lambdaで実装する
7・kintoneのミーティング予約アプリのWebhookに6のLambdaのエンドポイントURLを設定する
まず3まで作成する。
認証情報が取得できたら、その情報を使ってミーティングを作成する。
その後、同じ流れでkintoneのミーティング設定が削除されたら、Zoomのミーティング情報も削除する。
認証部分の作成
1・認証用のZoom Appを作成する
個人用のZoomアカウントでZoomの管理画面にログインします。
その後、開発プラットフォームにログインしてZoom Appを作成します。
詳細は下記を参照のこと。
https://marketplace.zoom.us/docs/guides/build/server-to-server-oauth-app/



クレデンシャル情報は後でZoomへの認証情報として利用します。

スコープ設定はとりあえず全てチェックします。不要スコープは後で外すことができます。

2・kintoneに認証情報保存用Appを作成する
kintoneにZoomの認証情報を保存するアプリを作成します。
※OAuthの仕組みについては特に言及しません。また、OAuthの定義の認可・認証の言葉とは違う使い方をしていますのでご了承ください。
Zoom App作成の1-3の画面にて生成されたクレデンシャル情報3点をkintoneのレコードとして登録します。また、認証後に発行されるアクセストークンを保存するフィールドも用意します。
アクセストークンの取得方法は下記を参照のこと。
https://marketplace.zoom.us/docs/guides/build/server-to-server-oauth-app/#use-account-credentials-to-get-an-access-token
3・Zoom API用のアクセストークンを取得する
2までできたらコマンドラインからZoomのアクセストークンを取得してみます。取得方法は下記に記載のコマンドです。
curl -X POST -H 'Authorization: Basic Base64Encoder(clientId:clientSecret)' https://zoom.us/oauth/token?grant_type=account_credentials&account_id={accountId}
macでは、Authorizationに渡すclientId:clientSecretをBase64エンコードする場合は下記の通り。
echo -n "clientId:clientSecret" | base64
※clientId:clientSecretは前段で取得したClient IDとClient secretで置き換えます。
curl -X POST -H 'Authorization: Basic Base64Encoder(clientId:clientSecret)' 'https://zoom.us/oauth/token?grant_type=account_credentials&account_id={accountId}'
curlの戻り値にアクセストークンが入っているので、それを利用してAPIを実行する。
List users
https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/users
curl -H 'Authorization:Bearer {access_token}' 'https://api.zoom.us/v2/users'
List meetings
https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/meetings
curl -H 'Authorization:Bearer {access_token}' 'https://api.zoom.us/v2/users/me/meetings?userId=me'
Zoomのコンソールからミーティングを登録して表示されるか確認します。
続きます。