Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Comment créer des réunions Zoom avec PHP et JWT

460

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 JWTcomme 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-jwtpackage, 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/meetingsde 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 $datapour 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

Source d’enregistrement: artisansweb.net

Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Plus de détails