
前回までで、コーディング前のすべての準備と確認が終わりました。
いよいよコーディングしていきます。
今回は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会議室連携を実装して、サービス品質向上に役立ててください。
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!