0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ZOOM APIを利用してミーティングのスケジュールを編集する (準備編)

Last updated at Posted at 2021-12-08

前書き

社内のシステムからZOOMでスケジュールを編集する必要があったため調査内容をまとめておきます。 執筆時点(2021-11-23)ではこの内容で実現できました。 (スケジュールを編集する部分はこちら)

事前準備

APIキーを取得する

ZOOMのマーケットプレイスからAPIキーを有効にします。 有効にする手順等は以下の記事が詳しいです。

有効にした後、APIKeyやAPISecretが表示されるので保存しておきます。
zoom.png

JWTの用意

ZOOMAPIでは認証情報とパラメータを含めてHTTPリクエストを送信して利用します。 認証はJWTという形式の文字列にする必要があります。

JWT

以下のようなjson文字列をBase64エンコードする。(ヘッダ部)

{
	alg : “HS256”,
	typ : “JWT”
}

以下のようなjson文字列をBase64エンコードする。(ペイロード)

{
	iss : APIキー,
	exp : 生存時間(UNIXタイムスタンプ形式)
}

大まかにはヘッダ部とペイロードを 「.(ピリオド)」で連結し、その文字列に対して秘密鍵(ZOOMのAPISecret)を用いSHA256形式で暗号化します。(署名部)
できた文字列をヘッダ部、ペイロード、署名部の順にそれぞれ「.(ピリオド)」連結したものがJWT文字列となります。

作成したJWT文字列はここから正しく作成できたかデコードして確かめられます。

今回はライブラリに任せてしまいます、PHP用にcomposerから入れました。
composer require firebase/php-jwt

ZOOM APIを利用する

ZOOMでは上記のように作成したトークンをヘッダに書いて送信します。 具体的にはこのようになります。 `Authorization: Bearer トークン文字列;`

ユーザの情報を取得する

https://api.zoom.us/v2/users/ にGETでリクエストすると使用しているZOOMアカウントの情報をjson形式で取得できます。 ヘッダにはトークンを入れましょう。

PHPのCURLでAPIを叩いたときのソースは下記のようになります。

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.zoom.us/v2/users/");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
	"Authorization: Bearer ".$jwt.";",
	"Content-type: application/json; charset=UTF-8;"
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);

レスポンスはjson形式で使用したアカウントのメールアドレスや名前などユーザ情報が取得できます。
このjsonのidに書かれている文字列を使用してスケジュール編集に関するAPIを叩くので記録しておきましょう。

{
	"page_count": 1,
	//省略
	"next_page_token": "",
	"users": [
		{
			"id": "XXXXXXXXXXX", //これ
		}
	]
}

まとめ

今回はZOOMAPIの利用のための準備を行いました。ユーザの情報を取得できていればZOOM公式に書いてあるようなAPIは利用できると思います。 スケジュール操作のAPIはパラメータの説明などで長くなるため別の記事にします。

参考文献

https://qiita.com/nanbuwks/items/ed74a76a0f294c0bf4ed https://marketplace.zoom.us/ https://qiita.com/nanbuwks/items/ed74a76a0f294c0bf4ed https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetings https://qiita.com/Naoto9282/items/8427918564400968bd2b https://jwt.io/ https://openid-foundation-japan.github.io/draft-ietf-oauth-json-web-token-11.ja.html https://github.com/firebase/php-jwt
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?