✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kuinka luoda kokous Zoomilla käyttämällä Zoom API: ta ja PHP: tä

26

Viime aikoina työskentelin projektissa, jossa minun piti olla vuorovaikutuksessa Zoom-sovellusliittymän kanssa. Asiakkaan sovelluksessa toteutimme paljon asioita Zoom-sovellusliittymän avulla, kuten tilit, laskutus, kokoukset, ryhmät, raportit, huoneet jne. Vaikka teimme paljon asioita Zoom-sovellusliittymän avulla, tässä opetusohjelmassa keskityn siihen, miten luo kokous Zoom API: n ja PHP: n avulla.

Kuten me kaikki tiedämme, Zoom on alusta, jota käytetään puhelinneuvotteluissa, etätyössä, etäopetuksessa jne. Se on suosittu ihmisten keskuudessa online-konferensseissa, kokouksissa, webinaareissa ja muissa asioissa.

Niiden, jotka haluavat luoda kokouksen Zoom-sovellusliittymän kautta, on valittava joko OAuth tai JWT vuorovaikutuksessa API: nsa kanssa. OAuth ja JWT (JSON-verkkotunnus) tarjoavat korkean suojaustason vuorovaikutuksessa kolmansien osapuolten palveluiden kanssa. Tässä opetusohjelmassa käytämme OAuth-prosessia ja kommunikoimme sen kautta Zoom-sovellusliittymän kanssa.

Voit myös tarkistaa opetusohjelman Zoom-integraation JWT: n kanssa PHP: ssä.

Luo OAuth-sovellus zoomauksessa

Kun sinulla on Zoom-tili, sinun on luotava OAuth-sovellus Zoomiin alla olevien ohjeiden avulla.

  • Rekisteröi sovelluksesi Zoom APP Marketplacessa.
  • Kun rekisteröit sovelluksen, saat luomasi kirjautumistiedot. Täällä sinun on välitettävä OAuth- ja sallittujen URL-osoitteiden uudelleenohjaus-URL.
  • Anna seuraavassa vaiheessa sovelluksesi perustiedot.
  • Välilehdellä voit vaihtoehtoisesti ottaa käyttöön joitain lisäominaisuuksia, kuten Tapahtumatilaukset ja Chat-tilaukset sovelluksellesi.
  • Laajuudet-välilehdessä sinun on lisättävä sovelluksesi laajuuksia. Voit esimerkiksi lisätä laajuuden Zoom-kokouksiin.

Jos olet localhostissa, käytä ngrokia ja luo paikallinen URL. Minun tapauksessani ngrok-URL-osoitteet OAuth-uudelleenohjaukselle ja sallittujen luettelon URL-osoitteet ovat alla esitetyt.

Jos sinulla on ongelmia OAuth-sovelluksen luomisessa, tutustu Zoomin virallisiin ohjeisiin OAuth-sovelluksen luominen -osiossa.

Perusasetukset

En löytänyt PHP-kirjastoa, jota voidaan käyttää vuorovaikutuksessa Zoom-sovellusliittymän kanssa. Tehdessäni tutkimusta pystyn hallitsemaan sitä Guzzlen kirjaston ja Zoom REST -sovellusliittymän kautta. Asenna Guzzle-kirjasto komennolla:

composer require guzzlehttp/guzzle

Jos haluat käyttää Zoom REST -sovellusliittymää, sinun on lähetettävä käyttöoikeustunnus. Aiomme luoda sen ja tallentaa sen tietokantaan. Käyttöoikeustunnus on voimassa lyhyen ajan. Koodissamme uudistamme käyttöoikeustunnuksen taustalla, jotta käyttäjän ei tarvitse tehdä valtuutusprosessia uudelleen.

CREATE TABLE `token``id` int(11) NOT NULL AUTO_INCREMENT,  `access_token` text NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Koska meidän on haettava tunnusluvut tietokannasta, meidän on kirjoitettava sille koodi. Luo tiedosto class-db.phpja lisää siihen alla oleva koodi.

luokka-db.php

<?php class DB {     private $dbHost     = "DB_HOST";     private $dbUsername = "DB_USERNAME";     private $dbPassword = "DB_PASSWORD";     private $dbName     = "DB_NAME";        public function __construct(){         if(!isset($this->db)){             // Connect to the database             $conn = new mysqli($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName);             if($conn->connect_error){                 die("Failed to connect with MySQL: ". $conn->connect_error);             }else{                 $this->db = $conn;             }         }     }        public function is_table_empty() {         $result = $this->db->query("SELECT id FROM token");         if($result->num_rows) {             return false;         }            return true;     }        public function get_access_token() {         $sql = $this->db->query("SELECT access_token FROM token");         $result = $sql->fetch_assoc();         return json_decode($result['access_token']);     }        public function get_refersh_token() {         $result = $this->get_access_token();         return $result->refresh_token;     }        public function update_access_token($token) {         if($this->is_table_empty()) {             $this->db->query("INSERT INTO token(access_token) VALUES('$token')");         } else {             $this->db->query("UPDATE token SET access_token = '$token' WHERE id = (SELECT id FROM token)");         }     } }

Muista korvata paikkamerkit todellisilla tietokannan tunnistetiedoilla. Seuraavaksi luodaan käyttöoikeustunnus OAuth-prosessin kautta.

Luo käyttöoikeustunnus

Käyttäjä voi luoda käyttötunnuksen tililleen App-tunnistetietojen ja OAuth-prosessin avulla. Luo config.phptiedosto, tallenna sovelluksen tunnistetiedot ja ohjaa URL-osoite tähän PHP-tiedostoon. Sisällytä muut ympäristöt, kuten DB-luokka ja toimittajakirjasto, myös seuraavasti.

config.php

<?php require_once 'vendor/autoload.php'; require_once "class-db.php";    define('CLIENT_ID', 'YOUR_CLIENT_ID'); define('CLIENT_SECRET', 'YOUR_CLIENT_SECRET'); define('REDIRECT_URI', 'REDIRECT_URL_FOR_OAUTH');

Korvaa paikkamerkit sovellustiedoillasi ja määritä sama uudelleenohjaus-URL, jonka lisäsit Zoom OAuth -sovelluksessa. Minun tapauksessani uudelleenohjauksen URL on https://f2448150.ngrok.io/zoom/callback.php. Se tarkoittaa callback.phptiedostossa, että meidän on kirjoitettava koodi, joka kutsuu Zoom-sovellusliittymää, pyytänyt käyttöoikeustunnusta ja tallennettava se tietokantaan.

callback.php

<?php require_once 'config.php';    try {     $client = new GuzzleHttpClient(['base_uri' => 'https://zoom.us']);        $response = $client->request('POST', '/oauth/token', [         "headers" => [             "Authorization" => "Basic ". base64_encode(CLIENT_ID.':'.CLIENT_SECRET)         ],         'form_params' => [             "grant_type" => "authorization_code",             "code" => $_GET['code'],             "redirect_uri" => REDIRECT_URI         ],     ]);        $token = json_decode($response->getBody()->getContents(), true);        $db = new DB();        if($db->is_table_empty()) {         $db->update_access_token(json_encode($token));         echo "Access token inserted successfully.";     } } catch(Exception $e) {     echo $e->getMessage(); }

Luodaan nyt valtuutettu URL, jossa käyttäjä voi napsauttaa ja suorittaa valtuutusprosessin loppuun. Aion luoda tämän URL-osoitteen index.phptiedostoon.

index.php

<?php require_once 'config.php';    $url = "https://zoom.us/oauth/authorize?response_type=code&client_id=".CLIENT_ID."&redirect_uri=".REDIRECT_URI; ?>    <a href="<?php echo $url; ?>">Login with Zoom</a>

Suorita yllä oleva tiedosto selaimessa, napsauta ’Kirjaudu sisään zoomauksella’ -linkkiä ja suorita valtuutusprosessi loppuun. Onnistuneen todennuksen yhteydessä sinun pitäisi nähdä onnistumisviesti ja käyttöoikeustunnus tallennetaan tokentaulukkoon. Jos se toimii, voimme mennä eteenpäin ja luoda kokouksen Zoom-sovellusliittymän kanssa.

Luo kokous Zoomilla Zoom API: n avulla

Zoom tarjoaa päätepisteen kokouksen luomiseen REST-sovellusliittymän kautta. Voit lukea siitä heidän asiakirjoistaan. Se vaatii POST-pyynnön lähettämisen annetulle päätepisteelle yhdessä vaadittujen parametrien kanssa.

API-päätepiste vaatii myös käyttöoikeustunnuksen välittämisen Valtuutus-otsikossa. Kuten sanoin aiemmin, käyttöoikeustunnuksella on lyhyt käyttöikä, ja aiomme uudistaa sen taustalla pyytämättä uudelleen todennusprosessia.

Olen luonut create-meeting.phptiedoston POST-pyynnön lähettämistä päätepisteeseen. Käsittelin myös tunnuksen vanhentumisen ehdon ja uudistin sen, jos se vanhentui.

create-meeting.php

<?php require_once 'config.php';    function create_meeting() {     $client = new GuzzleHttpClient(['base_uri' => 'https://api.zoom.us']);        $db = new DB();     $arr_token = $db->get_access_token();     $accessToken = $arr_token->access_token;        try {         $response = $client->request('POST', '/v2/users/me/meetings', [             "headers" => [                 "Authorization" => "Bearer $accessToken"             ],             'json' => [                 "topic" => "Let's learn Laravel",                 "type" => 2,                 "start_time" => "2021-03-05T20: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;        } catch(Exception $e) {         if( 401 == $e->getCode()) {             $refresh_token = $db->get_refersh_token();                $client = new GuzzleHttpClient(['base_uri' => 'https://zoom.us']);             $response = $client->request('POST', '/oauth/token', [                 "headers" => [                     "Authorization" => "Basic ". base64_encode(CLIENT_ID.':'.CLIENT_SECRET)                 ],                 'form_params' => [                     "grant_type" => "refresh_token",                     "refresh_token" => $refresh_token                 ],             ]);             $db->update_access_token($response->getBody());                create_meeting();         } else {             echo $e->getMessage();         }     } }    create_meeting();

Jos huomasit koodin, olen läpäissyt "2021-03-20T20: 30: 00" alkamisajana. Se tarkoittaa, että kokousaika on 20. maaliskuuta 2021 klo 20.30. Käyttäjän tulisi välittää sen muoto muodossa vvvv-kk-ppHK: kp: ss. "type" -avaimelle välitin arvon "2", joka on ajastetulle kokoukselle. Käyttäjän on myös asetettava kokoussalasana, jonka asetan arvoon "123456".

Suorita tämä koodi, niin sinun pitäisi nähdä, että kokous on luotu Zoom-tilillesi.

Luettelo Zoom-kokouksista

Olemme kirjoittaneet koodin Zoom-kokousten luomista varten. Tämän koodin avulla voit luoda niin monta kokousta kuin haluat. Tämän jälkeen haluat ehkä luetella kaikki kokoukset sovelluksessasi.

Zoom tarjoaa API: n, jonka kautta voimme noutaa kaikki Zoom-kokouksemme. Luo tiedosto list-meeting.phpja käytä alla olevaa koodia, joka tulostaa kaikki kokoukset.

list-meeting.php

<?php require_once 'config.php';    $client = new GuzzleHttpClient(['base_uri' => 'https://api.zoom.us']);    $db = new DB(); $arr_token = $db->get_access_token(); $accessToken = $arr_token->access_token;    $response = $client->request('GET', '/v2/users/me/meetings', [     "headers" => [         "Authorization" => "Bearer $accessToken"     ] ]);   $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 yllä olevaan koodiin aiheen ja kokousten URL-osoitteet. Voit tulostaa myös muita tietoja. Tulosta muuttuja $datasaadaksesi luettelon käytettävissä olevista tiedoista.

Hanki aiemmat kokouksen osallistujat

Kun kokous on ohi, voit saada luettelon osallistujista Zoom-sovellusliittymän avulla. On suositeltavaa kutsua tätä sovellusliittymää vain, jos olet maksullisella tilillä. Tällä erityisellä sovellusliittymällä on oltava maksettu tili. Jos yrität soittaa tähän sovellusliittymään ilmaisella tilillä, saat virheilmoituksen.

<?php require_once 'config.php';     $client = new GuzzleHttpClient(['base_uri' => 'https://api.zoom.us']);     $db = new DB(); $arr_token = $db->get_access_token(); $accessToken = $arr_token->access_token;     $response = $client->request('GET', '/v2/past_meetings/MEETING_ID/participants', [     "headers" => [         "Authorization" => "Bearer $accessToken"     ] ]);    $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 kokous

Käyttäjä voi pelata Zoom-sovellusliittymän päätepisteillä, kuten luettelo, päivitys ja kokouksen poisto. Sinun tarvitsee vain noudattaa heidän ohjeita tiettyjen päätepisteiden käytöstä. Voit esimerkiksi poistaa kokouksen lähettämällä DELETE-pyynnön API-päätepisteelle. Tähän päätepisteeseen sinun on välitettävä kokoustunnuksesi alla olevan kuvan mukaisesti.

<?php require_once 'config.php';    $client = new GuzzleHttpClient(['base_uri' => 'https://api.zoom.us']);    $db = new DB(); $arr_token = $db->get_access_token(); $accessToken = $arr_token->access_token;    $response = $client->request('DELETE', '/v2/meetings/{meeting_id}', [     "headers" => [         "Authorization" => "Bearer $accessToken"     ] ]);   if (204 == $response->getStatusCode()) {     echo "Meeting is deleted."; }

Toivon, että sait tietää kuinka luoda kokous Zoom API: n ja PHP: n avulla. Haluaisin kuulla ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja