Comment créer des réunions Zoom avec PHP et JWT
Dans le passé, j’ai écrit un article qui explique la création d’une réunion Zoom avec PHP et OAuth. L’un de nos lecteurs a posé des questions sur la création d’une réunion Zoom à l’aide de JWT (JSON Web Tokens) et PHP. L’ API Zoom nous permet d’utiliser à la fois OAuth ou JWT pour gérer leurs API. L’API Zoom nécessite le jeton du porteur généré via OAuth ou JWT.
Remarque: JWT ne peut être utilisé que pour les applications et processus internes. Toutes les applications créées pour un usage tiers doivent utiliser le type d’application OAuth.
Lorsque vous souhaitez créer une application Zoom à usage interne, l’approche JWT est plus simple que OAuth.
Commencer
Pour commencer, accédez au tableau de bord du développeur Zoom et créez une nouvelle application. Choisissez JWT
comme type d’application et copiez la clé et le secret de l’API Zoom.
Un seul JWT se compose de trois composants : en-tête, charge utile et signature avec une .
séparation chacun. Par example:aaaaa.bbbbb.ccccc
Plusieurs bibliothèques sont disponibles pour aider à générer JWT. Je recommanderai d’utiliser la bibliothèque firebase/php-jwt. Cette bibliothèque fournit une approche beaucoup plus simple pour créer JWT. Installez cette bibliothèque à l’aide de la commande ci-dessous.
composer require firebase/php-jwt
Ensuite, nous devons envoyer une requête POST à l’API Zoom pour créer une réunion. On peut utiliser cURL à cette fin. Mais, personnellement, j’aime un Guzzle qui fournit un code beaucoup plus propre que cURL. Un autre avantage de l’utilisation de Guzzle est que vous n’avez pas besoin d’avoir l’extension cURL activée sur le serveur.
Exécutez la commande ci-dessous pour installer la bibliothèque Guzzle.
composer require guzzlehttp/guzzle
Créez des réunions Zoom avec JWT et PHP
Nous avons installé deux packages pour atteindre notre objectif. Maintenant, nous devons inclure son environnement dans notre fichier PHP. De plus, nous avons copié les clés de l’API Zoom dans les étapes précédentes. Définissons ces clés comme des constantes en 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');
Ensuite, pour générer JWT à l’aide du firebase/php-jwt
package, notre code sera le suivant.
function getZoomAccessToken() {
$key = ZOOM_SECRET_KEY;
$payload = array(
"iss" => ZOOM_API_KEY,
'exp' => time() + 3600,
);
return JWT::encode($payload, $key);
}
Enfin, pour créer une réunion Zoom, il doit envoyer une demande POST au point /v2/users/me/meetings
de terminaison avec JWT comme jeton de porteur.
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();
Répertorier les réunions Zoom
Dans votre application, vous souhaiterez peut-être répertorier toutes les réunions Zoom. Zoom fournit une API grâce à laquelle nous pouvons obtenir une liste de toutes les réunions Zoom. En utilisant le code ci-dessous, vous pouvez imprimer les détails de vos réunions 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";
}
}
Ici, j’imprime un sujet et l’URL des réunions. Vous pouvez également imprimer d’autres informations. Imprimez la variable $data
pour obtenir une liste des informations disponibles.
Obtenir les anciens participants à la réunion
Pour les réunions passées, vous pouvez obtenir une liste des participants à l’aide de l’API Zoom. Si vous êtes sur un compte payant, vous pouvez utiliser cette API spécifique. Cette API nécessite d’avoir un compte payant. Si vous essayez d’appeler cette API avec un compte gratuit, vous obtiendrez une erreur.
$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";
}
}
Remplacez l’espace réservé MEETING_ID par l’identifiant réel de la réunion passée. Dans la réponse, vous obtiendrez les noms et e-mails des participants.
Supprimer Zoom Meeting avec JWT et PHP
En ajoutant pour créer une réunion, Zoom fournit également des points de terminaison d’API tels que la liste, la mise à jour, la suppression d’une réunion. L’utilisateur doit suivre la documentation de son API pour utiliser un point de terminaison spécifique. Par exemple, vous pouvez supprimer une réunion en envoyant une demande DELETE au point de terminaison de l’API Zoom. Vous devez transmettre votre identifiant de réunion au point de terminaison comme suit.
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');
J’espère que vous avez appris à créer des réunions Zoom avec PHP et JWT. S’il vous plaît partager vos pensées et suggestions dans la section commentaires ci-dessous.
Articles Liés
- Un guide sur l’intégration de hCaptcha avec PHP
- Écrire des données dans une feuille OneDrive à l’aide de l’API Microsoft Graph et de PHP
- Speech-To-Text à l’aide d’Amazon Transcribe en PHP