ウェブノウハウ

WEB KNOWHOW

Zoomを連携して自社サービス内でテレビ会議

4. Zoom APIと連携して、自分のアプリからZoomミーティングを生成する

前回までで、コーディング前のすべての準備と確認が終わりました。

いよいよコーディングしていきます。
今回はPHPで、Zoom APIをたたいて会議室を生成し、そのURLを取得して表示するプログラムのサンプルです。

// 文字列をURL-Safe Base64でエンコードする関数
function urlsafe_base64_encode($str){
  return str_replace(array('+', '/', '='), array('-', '_', ''), base64_encode($str));
}


$zoom_url = 'https://api.zoom.us/v2/users/メールアドレス/meetings';
$zoom_api_key = API Key; //ご自分のAPI Key
$zoom_api_secret = API Secret; //ご自分のAPI Secret

$expiration = time() + 20; //Tokenの有効期限(秒)

$header = self::urlsafe_base64_encode('{"alg":"HS256","typ":"JWT"}');
$payload = self::urlsafe_base64_encode('{"iss":"' . $zoom_api_key . '","exp":' . $expiration . '}');
$signature = self::urlsafe_base64_encode(hash_hmac('sha256', "$header.$payload", $zoom_api_secret , TRUE));
$token = "$header.$payload.$signature";

// 即時生成の場合
$data_to_zoom_api = array(
  'type' => "1",
  'topic' => "会議室タイトル",
);

//  時刻指定の場合
//  $data_to_zoom_api = array(
//    "topic" => "会議室タイトル",
//    "type" => "2",
//    "start_time" => "2020-08-17T18:30:00",
//    "timezone" => "Asia/Tokyo",
//    "settings" => array(
//      "use_pmi" => "false"
//    )
//  );

$options = array(
  'http' => array(
    'method'=> 'POST',
    'header'=> array(
      'Content-type: application/json',
      'Authorization: Bearer ' . $token,
    ),
    'content' => json_encode($data_to_zoom_api)
  )
);

$context = stream_context_create($options);
$json_result = file_get_contents($zoom_url, false, $context);
$json_result = json_decode($json_result, true);
$message = $json_result['join_url'];
echo $message;

これで、Zoom会議室のURLが表示されてきます。
 
余談ですが、上のコードには細かく分けると2つの機能が盛り込まれており、1つがToken生成、もう1つがデータの送受信です。
Token生成のところを見るとわかりますが、ZoomのTokenは、API KEYと有効期限をくっつけて(1)、それをAPI Secretでハッシュ値に変換(2)、(1)と(2)の文字列をくっつけたものということです。
 
いかがでしたか?
それほど難しい処理はしていませんよね。
ぜひご自身のアプリでZoom会議室連携を実装して、サービス品質向上に役立ててください。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!