Kuidas luua suumikoosolekuid PHP ja JWT abil
Varem olen kirjutanud artikli, mis selgitab suumiskoosoleku loomist PHP ja OAuthiga. Üks meie lugejatest küsis Zoom-koosoleku loomise kohta JWT (JSON Web Tokens) ja PHP abil. Zoom API võimaldab meil nende API-dega tegelemiseks kasutada nii OAuthi kui ka JWT-d. Suumi API jaoks on vaja OAuthi või JWT kaudu genereeritud kandja märki.
Märkus. JWT-d võib kasutada ainult sisemiste rakenduste ja protsesside jaoks. Kõik kolmanda osapoole kasutamiseks loodud rakendused peavad kasutama rakenduse OAuth tüüpi.
Kui soovite luua sisekasutuseks rakenduse Zoom, on JWT-lähenemine OAuthiga võrreldes lihtsam.
Alustamine
Alustamiseks minge Zoom Developer Dashboardile ja looge uus rakendus. Valige JWT
rakenduse tüübiks ja kopeerige suumi API võti ja saladus.
Üks JWT koosneb kolmest komponendist: päis, kasulik koormus ja allkiri, millest .
igaüks eraldub. Näiteks:aaaaa.bbbbb.ccccc
Saadaval on mitu teeki, mis aitavad JWT-d luua. Soovitan kasutada firebase / php-jwt teeki. See teek pakub JWT loomiseks palju lihtsamat lähenemist. Installige see teek, kasutades allolevat käsku.
composer require firebase/php-jwt
Järgmisena peame koosoleku loomiseks saatma ZOST-i API-le päringu POST. Selleks saab kasutada CURL-i. Kuid mulle isiklikult meeldib Guzzle, mis pakub palju puhtamat koodi kui CURL. Teine Guzzle’i kasutamise eelis on see, et te ei pea serveris lubama CURL-i laiendust.
Guzzle’i teegi installimiseks käivitage järgmine käsk.
composer require guzzlehttp/guzzle
Looge JWT ja PHP abil suumikoosolekud
Eesmärgi saavutamiseks oleme installinud kaks paketti. Nüüd peame lisama selle keskkonna oma PHP-faili. Samuti oleme eelmistes toimingutes kopeerinud Zoom API võtmed. Määratleme need klahvid konstantidena PHP-s.
<?php
require_once 'vendor/autoload.php';
use FirebaseJWTJWT;
use GuzzleHttpClient;
define('ZOOM_API_KEY', 'API_KEY_HERE');
define('ZOOM_SECRET_KEY', 'API_SECRET_HERE');
Järgmisena on JWT genereerimine firebase/php-jwt
paketi abil järgmine.
function getZoomAccessToken() {
$key = ZOOM_SECRET_KEY;
$payload = array(
"iss" => ZOOM_API_KEY,
'exp' => time() + 3600,
);
return JWT::encode($payload, $key);
}
Lõpuks peab suumikoosoleku loomiseks saatma POST-päringu lõpp- /v2/users/me/meetings
punkti JWT-ga kui kandja märgiks.
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();
Lisage koosolekute loend
Oma rakenduses võiksite loetleda kõik suumi koosolekud. Zoom pakub API-d, mille kaudu saame kõigi Zoom-koosolekute loendi. Alloleva koodi abil saate printida oma suumikoosolekute üksikasjad.
$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";
}
}
Siinkohal printin koosolekute teema ja URL-i. Võite printida ka muud teavet. $data
Saadaoleva teabe loendi saamiseks printige muutuja .
Hankige eelmised koosolekul osalejad
Eelmiste koosolekute jaoks saate osalejate nimekirja, kasutades Zoom API-d. Kui olete tasulisel kontol, saate seda konkreetset API-d kasutada. Sellel API-l peab olema tasuline konto. Kui proovite sellele API-le helistada tasuta kontoga, kuvatakse tõrge.
$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";
}
}
Asendage kohatäide MEETING_ID tegeliku eelmise koosoleku ID-ga. Vastuses saate osalejate nimed ja meiliaadressid.
Kustuta Zoom Meeting koos JWT ja PHP-ga
Koosoleku loomiseks lisamise korral pakub Zoom ka API lõpp-punkte, nagu koosoleku loend, värskendamine ja kustutamine. Konkreetse lõpp-punkti kasutamiseks peab kasutaja järgima oma API dokumentatsiooni. Näiteks võite koosoleku kustutada, saates DELIME-päringu Zoom API lõpp-punkti. Peate edastama oma koosoleku ID lõpp-punktile järgmiselt.
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');
Loodetavasti õppisite tundma PHP ja JWT-ga suumikoosolekute loomist. Palun jagage oma mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.