# はじめに
Zoomの会議を作成するAPIを使ってみたので、備忘として手順を残します。
時世的にZoomを利用している方多いと思うので、参考になれば幸いです。
[準備] アプリの登録
マーケットプレイスからBuild Appを選択し、アプリの登録を進めます。
今回のサンプルではJWTでの認証を選択します。
Choose your app typeでJWTのcreateボタンを押し、アプリの名前を設定します。
続いて項目を埋めて行きます。赤枠で囲まれた必須項目のみ埋めています。
入力できたら右下のContinueを押します。
App Credentialsの画面でAPI KeyとAPI Secretが得られます。
この画面下部の「View JWT Token」を押すと期限付きのトークンが表示されます。
アプリケーションからAPIを呼び出す準備としてはここまでで完了です。
サンプルプログラム
公式のnodeサンプルを参考にZoomの会議作成APIを実行するサンプルを作ってみます。
[サンプル]
https://github.com/zoom/zoom-api-jwt
[会議作成API仕様]
https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate
[index.js] ※会議作成APIを実行して、レスポンスをテキストに書き出すサンプル
// 依存ライブラリ
const jwt = require('jsonwebtoken');
const rp = require('request-promise');
// 定数
const userId = 'xxx@xxx.com'; // Zoomアカウント(メールアドレス)
const apiKey = 'xxxxxxxxxxx'; // api key
const apiSecret = 'xxxxxxxx'; // api secret
// payload
const payload = {
iss: apiKey, // API Keyを指定
exp: ((new Date()).getTime() + 3600000) // トークン有効期限 1時間
};
// token生成
const token = jwt.sign(payload, apiSecret);
// APIリクエストの設定
let options = {
method: 'POST',
url: 'https://api.zoom.us/v2/users/' + userId + '/meetings',
auth: { 'bearer': token },
headers: {
'User-Agent': 'Zoom-api-Jwt-Request',
'content-type': 'application/json'
},
json: {
'topic': 'test meeting',
'type': '2',
'start_time': getMeetingDate(), // 現在日時の1日後
'timezone': 'Asia/Tokyo',
'settings': { 'use_pmi': 'false' }
}
};
// リクエスト
rp(options)
.then(function (resJson) {
writeToFile(resJson); // レスポンスをファイルに書き出す
})
.catch(function (err) {
console.log(err);
})
// getMeetingDate, writeToFileは省略
トークン生成
index.jsの抜粋。API実行に必要なトークンを実行ごとに生成しています。
// payload
const payload = {
iss: apiKey, // API Keyを指定
exp: ((new Date()).getTime() + 3600000) // トークン有効期限 1時間
};
// token生成
const token = jwt.sign(payload, apiSecret);
APIのパラメータ
index.jsの抜粋。APIのパラメータを設定しています。
let options = {
〜中略〜
json: {
'topic': 'test meeting',
'type': '2',
'start_time': getMeetingDate(), // 現在日時の1日後
'timezone': 'Asia/Tokyo',
'settings': { 'use_pmi': 'false' }
}
};
設定しているパラメータの説明。
パラメータ | 説明 |
---|---|
topic | 会議のタイトル |
type | 会議タイプ。2を指定で会議予約。1だと即時。 3, 8で定期会議も設定可能 |
start_time | 会議の開始時間。yyyy-MM-dd T HH:mm:ss 形式。 |
timezone | タイムゾーン指定。サポートするタイムゾーンの一覧。 |
settings | 各種設定 |
settings > use_pmi | PMI(Personal Meeting ID)を使うかどうか。 |
実行結果
{
"id": 11111111111,
"join_url": "https://xxxxx.zoom.us/j/xxxx?pwd=xxxxx",
"password": "xxxxxx"
}
よく使いそうなものだけ抜粋しました。
※ 全文はAPI仕様のReferenceを参照
idとpasswordは、まんま会議のID/PWで、join_urlが会議のURLです。
会議作成APIをアプリに組み込んだ場合、これらの情報をメールやチャットで相手に送るような使い方が多いかと思います。
参考
開発者ドキュメント
https://marketplace.zoom.us/docs/guides
APIリファレンス
https://marketplace.zoom.us/docs/api-reference/introduction