Come creare riunioni Zoom con PHP e JWT
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 JWT
come 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-jwt
pacchetto, 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/meetings
con 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 $data
per 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
- Una guida all’integrazione di hCaptcha con PHP
- Scrivi dati su OneDrive Sheet utilizzando Microsoft Graph API e PHP
- Speech-to-Text utilizzando Amazon Transcribe in PHP