Zoom-kokousten luominen PHP: n ja JWT: n avulla
Aiemmin olen kirjoittanut artikkelin, joka selittää Zoom-kokouksen luomisen PHP: n ja OAuthin kanssa. Yksi lukijoistamme kysyi Zoom-kokouksen luomisesta JWT: n (JSON Web Tokens) ja PHP: n avulla. Zoom- sovellusliittymä antaa meille mahdollisuuden käyttää sekä OAuthia että JWT: tä niiden sovellusliittymien käsittelemiseksi. Zoom-sovellusliittymä vaatii joko OAuthin tai JWT: n kautta generoidun Bearer-tunnuksen.
Huomaa: JWT: tä voidaan käyttää vain sisäisiin sovelluksiin ja prosesseihin. Kaikkien kolmannen osapuolen käyttöön luotujen sovellusten on käytettävä OAuth-sovellustyyppiä.
Kun haluat rakentaa Zoom-sovelluksen sisäiseen käyttöön, JWT-lähestymistapa on helpompaa kuin OAuth.
Päästä alkuun
Aloita siirtymällä Zoom Developer Dashboardiin ja luomalla uusi sovellus. Valitse JWT
sovellustyypiksi ja kopioi Zoom-sovellusliittymäavain ja salaisuus.
Yksi JWT koostuu kolmesta osasta: otsikko, hyötykuorma ja allekirjoitus .
erottamalla ne toisistaan. Esimerkiksi:aaaaa.bbbbb.ccccc
Saatavilla on useita kirjastoja, jotka auttavat tuottamaan JWT: tä. Suosittelen käyttämään firebase / php-jwt- kirjastoa. Tämä kirjasto tarjoaa paljon helpomman tavan luoda JWT. Asenna tämä kirjasto alla olevan komennon avulla.
composer require firebase/php-jwt
Seuraavaksi meidän on lähetettävä POST-pyyntö Zoom-sovellusliittymälle kokouksen luomiseksi. CURL: ää voidaan käyttää tähän tarkoitukseen. Pidän kuitenkin henkilökohtaisesti Guzzlesta, joka tarjoaa paljon puhtaamman koodin kuin cURL. Toinen etu Guzzlen käytöstä on, että sinun ei tarvitse olla cURL-laajennusta käytössä palvelimella.
Asenna Guzzlen kirjasto suorittamalla seuraava komento.
composer require guzzlehttp/guzzle
Luo Zoom-kokouksia JWT: n ja PHP: n avulla
Olemme asentaneet kaksi pakettia tavoitteemme saavuttamiseksi. Nyt meidän on sisällytettävä sen ympäristö PHP-tiedostoon. Olemme myös kopioineet Zoom API -avaimet edellisissä vaiheissa. Määritetään nämä avaimet vakioina PHP: ssä.
<?php
require_once 'vendor/autoload.php';
use FirebaseJWTJWT;
use GuzzleHttpClient;
define('ZOOM_API_KEY', 'API_KEY_HERE');
define('ZOOM_SECRET_KEY', 'API_SECRET_HERE');
Seuraavaksi, jotta voimme luoda JWT: n firebase/php-jwt
paketin avulla, koodi on seuraava.
function getZoomAccessToken() {
$key = ZOOM_SECRET_KEY;
$payload = array(
"iss" => ZOOM_API_KEY,
'exp' => time() + 3600,
);
return JWT::encode($payload, $key);
}
Lopuksi Zoom-kokouksen luomiseksi sen on lähetettävä POST-pyyntö päätepisteelle, /v2/users/me/meetings
jossa JWT on kantotunnus.
function createZoomMeeting() {
$client = new Client([
// Base URI is used with relative requests
'base_uri' => 'https://api.zoom.us',
]);
$response = $client->request('POST', '/v2/users/me/meetings', [
"headers" => [
"Authorization" => "Bearer ". getZoomAccessToken()
],
'json' => [
"topic" => "Let's Learn WordPress",
"type" => 2,
"start_time" => "2021-01-30T20:30:00",
"duration" => "30", // 30 mins
"password" => "123456"
],
]);
$data = json_decode($response->getBody());
echo "Join URL: ". $data->join_url;
echo "<br>";
echo "Meeting Password: ". $data->password;
}
createZoomMeeting();
Luettelo Zoom-kokouksista
Haluat ehkä listata kaikki Zoom-kokoukset sovelluksessasi. Zoom tarjoaa API: n, jonka kautta voimme saada luettelon kaikista Zoom-kokouksista. Alla olevan koodin avulla voit tulostaa Zoom-kokousten tiedot.
$client = new GuzzleHttpClient(['base_uri' => 'https://api.zoom.us']);
$response = $client->request('GET', '/v2/users/me/meetings', [
"headers" => [
"Authorization" => "Bearer ". getZoomAccessToken()
]
]);
$data = json_decode($response->getBody());
if (!empty($data)) {
foreach ($data->meetings as $d) {
$topic = $d->topic;
$join_url = $d->join_url;
echo "<h3>Topic: $topic</h3>";
echo "Join URL: $join_url";
}
}
Tulostan täällä kokousten aiheita ja URL-osoitteita. Voit tulostaa myös muita tietoja. Tulosta muuttuja $data
saadaksesi luettelon käytettävissä olevista tiedoista.
Hanki aiemmat kokouksen osallistujat
Aikaisemmista kokouksista voit saada luettelon osallistujista Zoom-sovellusliittymän avulla. Jos olet maksullisella tilillä, voit käyttää tätä erityistä sovellusliittymää. Tällä sovellusliittymällä on oltava maksettu tili. Jos yrität soittaa tähän sovellusliittymään ilmaisella tilillä, saat virheilmoituksen.
$client = new GuzzleHttpClient(['base_uri' => 'https://api.zoom.us']);
$response = $client->request('GET', '/v2/past_meetings/MEETING_ID/participants', [
"headers" => [
"Authorization" => "Bearer ". getZoomAccessToken()
]
]);
$data = json_decode($response->getBody());
if (!empty($data)) {
foreach ($data->participants as $p) {
$name = $p->name;
$email = $p->user_email;
echo "Name: $name";
echo "Email: $email";
}
}
Korvaa paikkamerkki MEETING_ID todellisella edellisen kokouksen tunnuksella. Vastauksessa saat osallistujien nimet ja sähköpostit.
Poista Zoom Meeting JWT: n ja PHP: n avulla
Lisäämällä kokouksen luomisen Zoom tarjoaa myös API-päätepisteet, kuten luettelon, päivityksen ja kokouksen poistamisen. Käyttäjän on noudatettava API-dokumentaatiotaan tietyn päätepisteen käyttämiseksi. Voit esimerkiksi poistaa kokouksen lähettämällä POISTA-pyynnön Zoom-sovellusliittymän päätepisteeseen. Sinun on välitettävä kokoustunnuksesi päätepisteeseen seuraavasti.
function deleteZoomMeeting($meeting_id) {
$client = new Client([
// Base URI is used with relative requests
'base_uri' => 'https://api.zoom.us',
]);
$response = $client->request("DELETE", "/v2/meetings/$meeting_id", [
"headers" => [
"Authorization" => "Bearer ". getZoomAccessToken()
]
]);
if (204 == $response->getStatusCode()) {
echo "Meeting deleted.";
}
}
deleteZoomMeeting('MEETING_ID_HERE');
Toivon, että sait tietää Zoom-kokousten luomisesta PHP: n ja JWT: n kanssa. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.