✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cómo crear reuniones de Zoom con PHP y JWT

465

En el pasado, escribí un artículo que explica cómo crear una reunión de Zoom con PHP y OAuth. Uno de nuestros lectores preguntó sobre la creación de una reunión de Zoom utilizando JWT (JSON Web Tokens) y PHP. Zoom API nos permite usar tanto OAuth como JWT para lidiar con sus API. La API de Zoom requiere el token de portador generado a través de OAuth o JWT.

Nota: JWT solo se puede utilizar para aplicaciones y procesos internos. Todas las aplicaciones creadas para uso de terceros deben utilizar el tipo de aplicación OAuth.

Cuando desee crear una aplicación Zoom para uso interno, el enfoque JWT es más fácil en comparación con OAuth.

Empezando

Para comenzar, vaya al Panel de control del desarrollador de Zoom y cree una nueva aplicación. Elija JWTcomo tipo de aplicación y copie la clave y el secreto de la API de Zoom.

Un solo JWT consta de tres componentes: encabezado, carga útil y firma con una .separación de cada uno. Por ejemplo:aaaaa.bbbbb.ccccc

Hay varias bibliotecas disponibles que ayudan a generar JWT. Recomendaré usar la biblioteca firebase / php-jwt. Esta biblioteca proporciona un enfoque mucho más fácil para crear JWT. Instale esta biblioteca usando el siguiente comando.

composer require firebase/php-jwt

A continuación, tenemos que enviar una solicitud POST a la API de Zoom para crear una reunión. Se puede usar cURL para este propósito. Pero, personalmente, me gusta un Guzzle que proporciona un código mucho más limpio que cURL. Otro beneficio de usar Guzzle es que no necesita tener la extensión cURL habilitada en el servidor.

Ejecute el siguiente comando para instalar la biblioteca Guzzle.

composer require guzzlehttp/guzzle

Cree reuniones de Zoom con JWT y PHP

Hemos instalado dos paquetes para lograr nuestro objetivo. Ahora, necesitamos incluir su entorno en nuestro archivo PHP. Además, hemos copiado las claves de la API de Zoom en los pasos anteriores. Definamos estas claves como 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');

A continuación, para generar JWT usando el firebase/php-jwtpaquete nuestro código será el siguiente.

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

Finalmente, para crear una reunión de Zoom, debe enviar una solicitud POST al punto final /v2/users/me/meetingscon JWT como un token de portador.

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

Lista de reuniones de Zoom

En su aplicación, es posible que desee enumerar todas las reuniones de Zoom. Zoom proporciona una API a través de la cual podemos obtener una lista de todas las reuniones de Zoom. Con el código a continuación, puede imprimir los detalles de sus reuniones de 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";
    }
}

Aquí, estoy imprimiendo un tema y una URL de reuniones. También puede imprimir otra información. Imprima la variable $datapara obtener una lista de la información disponible.

Obtenga participantes anteriores de la reunión

Para las reuniones pasadas, puede obtener una lista de participantes usando la API de Zoom. Si tiene una cuenta de pago, puede utilizar esta API específica. Esta API requiere tener una cuenta paga. Si intenta llamar a esta API con una cuenta gratuita, obtendrá un error.

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

Reemplaza el marcador de posición MEETING_ID con el ID de la reunión anterior real. En la respuesta, obtendrá los nombres y correos electrónicos de los participantes.

Eliminar Zoom Meeting con JWT y PHP

Al agregar para crear una reunión, Zoom también proporciona puntos finales de API como listar, actualizar, eliminar una reunión. El usuario debe seguir la documentación de su API para usar un punto final específico. Por ejemplo, puede eliminar una reunión enviando una solicitud DELETE al punto final de la API de Zoom. Debe pasar su ID de reunión al punto final de la siguiente manera.

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

Espero que haya conocido la creación de reuniones de Zoom con PHP y JWT. Comparta sus pensamientos y sugerencias en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: 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