...
✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Come creare riunioni Zoom con PHP e JWT

91

In passato ho scritto un articolo che spiega come creare uno Zoom Meeting con PHP e OAuth. Uno dei nostri lettori ha chiesto di creare una riunione Zoom utilizzando JWT (JSON Web Tokens) e PHP. L’ API Zoom ci consente di utilizzare sia OAuth che JWT per gestire le loro API. L’API Zoom richiede il token Bearer generato tramite OAuth o JWT.

Nota: JWT può essere utilizzato solo per applicazioni e processi interni. Tutte le app create per l’utilizzo da parte di terze parti devono utilizzare il tipo di app OAuth.

Quando vuoi creare un’app Zoom per uso interno, l’approccio JWT è più semplice rispetto a OAuth.

Iniziare

Per iniziare, vai alla dashboard per sviluppatori di Zoom e crea una nuova app. Scegli JWTcome tipo di app e copia la chiave e il segreto dell’API Zoom.

Un singolo JWT è costituito da tre componenti: Header, Payload e Signature con una .separazione ciascuno. Per esempio:aaaaa.bbbbb.ccccc

Sono disponibili diverse librerie che aiutano a generare JWT. Consiglierò di utilizzare la libreria firebase/php-jwt. Questa libreria fornisce un approccio molto più semplice per creare JWT. Installa questa libreria usando il comando seguente.

composer require firebase/php-jwt

Successivamente, dobbiamo inviare una richiesta POST all’API Zoom per creare una riunione. Si può usare cURL per questo scopo. Ma personalmente mi piace un Guzzle che fornisce un codice molto più pulito di cURL. Un altro vantaggio dell’utilizzo di Guzzle è che non è necessario che l’estensione cURL sia abilitata sul server.

Esegui il comando seguente per installare la libreria Guzzle.

composer require guzzlehttp/guzzle

Crea riunioni Zoom con JWT e PHP

Abbiamo installato due pacchetti per raggiungere il nostro obiettivo. Ora, dobbiamo includere il suo ambiente nel nostro file PHP. Inoltre, abbiamo copiato le chiavi dell’API Zoom nei passaggi precedenti. Definiamo queste chiavi come costanti in PHP.

<?php
require_once 'vendor/autoload.php';
 
use FirebaseJWTJWT;
use GuzzleHttpClient;
 
define('ZOOM_API_KEY', 'API_KEY_HERE');
define('ZOOM_SECRET_KEY', 'API_SECRET_HERE');

Successivamente, per generare JWT utilizzando il firebase/php-jwtpacchetto, il nostro codice sarà il seguente.

function getZoomAccessToken() {
    $key = ZOOM_SECRET_KEY;
    $payload = array(
        "iss" => ZOOM_API_KEY,
        'exp' => time() + 3600,
    );
    return JWT::encode($payload, $key);    
}

Infine, per creare una riunione Zoom è necessario inviare una richiesta POST all’endpoint /v2/users/me/meetingscon JWT come Bearer Token.

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();

Elenco riunioni Zoom

Nella tua applicazione, potresti voler elencare tutte le riunioni Zoom. Zoom fornisce un’API attraverso la quale possiamo ottenere un elenco di tutte le riunioni Zoom. Usando il codice qui sotto, puoi stampare i dettagli delle tue riunioni Zoom.

$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";
    }
}

Qui, sto stampando un argomento e l’URL delle riunioni. Puoi anche stampare altre informazioni. Stampa la variabile $dataper ottenere un elenco di informazioni disponibili.

Ottieni partecipanti alle riunioni precedenti

Per le riunioni passate, puoi ottenere un elenco dei partecipanti utilizzando l’API Zoom. Se hai un account a pagamento, puoi utilizzare questa API specifica. Questa API richiede un account a pagamento. Se provi a chiamare questa API con un account gratuito, otterresti un errore.

$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";
    }
}

Sostituisci il segnaposto MEETING_ID con l’ID della riunione passata. Nella risposta, riceverai i nomi e le e-mail dei partecipanti.

Elimina Zoom Meeting con JWT e PHP

Oltre a creare una riunione, Zoom fornisce anche endpoint API come elenco, aggiornamento, eliminazione di una riunione. L’utente deve seguire la documentazione dell’API per l’utilizzo di un endpoint specifico. Ad esempio, puoi eliminare una riunione inviando una richiesta DELETE all’endpoint dell’API Zoom. Devi passare il tuo ID riunione all’endpoint come segue.

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');

Spero che tu sappia come creare riunioni Zoom con PHP e JWT. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More