Cómo crear reuniones de Zoom con PHP y JWT
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 JWT
como 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-jwt
paquete 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/meetings
con 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 $data
para 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
- Una guía sobre la integración de hCaptcha con PHP
- Escribir datos en la hoja de OneDrive usando Microsoft Graph API y PHP
- Conversión de voz a texto con Amazon Transcribe en PHP