✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas luua suumikoosolekuid PHP ja JWT abil

26

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 JWTrakenduse 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-jwtpaketi 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/meetingspunkti 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. $dataSaadaoleva 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.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem