✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como criar reuniões de zoom com PHP e JWT

47

No passado, escrevi um artigo que explica a criação de um Zoom Meeting com PHP e OAuth. Um de nossos leitores perguntou sobre a criação de uma reunião Zoom usando JWT (JSON Web Tokens) e PHP. A API Zoom nos permite usar OAuth ou JWT para lidar com suas APIs. A API Zoom requer o Bearer Token gerado por OAuth ou JWT.

Observação: o JWT só pode ser usado para aplicativos e processos internos. Todos os aplicativos criados para uso de terceiros devem usar o tipo de aplicativo OAuth.

Quando você deseja construir um aplicativo Zoom para uso interno, a abordagem JWT é mais fácil em comparação com o OAuth.

Começando

Para começar, vá para o Painel de controle do desenvolvedor do Zoom e crie um novo aplicativo. Escolha JWTcomo o tipo de aplicativo e copie a chave e o segredo da API Zoom.

Um único JWT consiste em três componentes: Cabeçalho, Carga útil e Assinatura com uma .separação de cada um. Por exemplo:aaaaa.bbbbb.ccccc

Várias bibliotecas estão disponíveis que ajudam a gerar JWT. Recomendarei o uso da biblioteca firebase / php-jwt. Esta biblioteca fornece uma abordagem muito mais fácil para criar JWT. Instale esta biblioteca usando o comando abaixo.

composer require firebase/php-jwt

Em seguida, temos que enviar uma solicitação POST para a API Zoom para criar uma reunião. Pode-se usar o cURL para essa finalidade. Mas, eu pessoalmente gosto de um Guzzle que fornece um código muito mais limpo do que o cURL. Outro benefício de usar o Guzzle é que você não precisa ter a extensão cURL habilitada no servidor.

Execute o comando abaixo para instalar a biblioteca Guzzle.

composer require guzzlehttp/guzzle

Crie reuniões do Zoom com JWT e PHP

Instalamos dois pacotes para atingir nosso objetivo. Agora, precisamos incluir seu ambiente em nosso arquivo PHP. Além disso, copiamos as chaves da API do Zoom nas etapas anteriores. Vamos definir essas chaves como constantes em 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 seguir, para gerar JWT usando o firebase/php-jwtpacote nosso código será o seguinte.

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

Por fim, para criar uma reunião Zoom, é necessário enviar uma solicitação POST ao terminal /v2/users/me/meetingscom JWT como um token do 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();

Listar reuniões de zoom

Em seu aplicativo, você pode desejar listar todas as reuniões do Zoom. O Zoom fornece uma API por meio da qual podemos obter uma lista de todas as reuniões do Zoom. Usando o código abaixo, você pode imprimir os detalhes de suas reuniões do 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";
    }
}

Aqui, estou imprimindo um tópico e URL de reuniões. Você também pode imprimir outras informações. Imprima a variável $datapara obter uma lista de informações disponíveis.

Obtenha participantes de reuniões anteriores

Para as reuniões anteriores, você pode obter uma lista de participantes usando a API Zoom. Se você estiver em uma conta paga, poderá usar esta API específica. Esta API requer uma conta paga. Se você tentar chamar essa API com uma conta gratuita, receberá um erro.

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

Substitua o marcador MEETING_ID pelo ID da reunião anterior real. Na resposta, você receberá os nomes e emails dos participantes.

Excluir reunião do Zoom com JWT e PHP

Além de criar uma reunião, o Zoom também fornece terminais de API como listar, atualizar e excluir uma reunião. O usuário deve seguir a documentação da API para usar um endpoint específico. Como exemplo, você pode excluir uma reunião enviando uma solicitação DELETE para o endpoint da API Zoom. Você precisa passar sua ID de reunião para o terminal da seguinte maneira.

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 você saiba como criar reuniões Zoom com PHP e JWT. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação