✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak tworzyć spotkania Zoom za pomocą PHP i JWT

31

W przeszłości pisałem artykuł wyjaśniający tworzenie Zoom Meeting z PHP i OAuth. Jeden z naszych czytelników zapytał o stworzenie spotkania Zoom przy użyciu JWT (JSON Web Tokens) i PHP. Zoom API pozwala nam używać zarówno OAuth, jak i JWT do obsługi ich API. Zoom API wymaga tokena okaziciela wygenerowanego przez OAuth lub JWT.

Uwaga: tokenów JWT można używać wyłącznie w aplikacjach i procesach wewnętrznych. Wszystkie aplikacje utworzone do użytku przez inne firmy muszą używać aplikacji typu OAuth.

Jeśli chcesz zbudować aplikację Zoom do użytku wewnętrznego, podejście JWT jest łatwiejsze w porównaniu z OAuth.

Pierwsze kroki

Aby rozpocząć, przejdź do pulpitu programisty Zoom i utwórz nową aplikację. Wybierz JWTjako typ aplikacji i skopiuj klucz i klucz tajny Zoom API.

Pojedynczy token JWT składa się z trzech komponentów: nagłówka, ładunku i podpisu, z .których każdy jest oddzielony. Na przykład:aaaaa.bbbbb.ccccc

Dostępnych jest kilka bibliotek, które pomagają w generowaniu tokenów JWT. Polecam korzystanie z biblioteki firebase/php-jwt. Ta biblioteka zapewnia znacznie prostsze podejście do tworzenia tokenów JWT. Zainstaluj tę bibliotekę za pomocą poniższego polecenia.

composer require firebase/php-jwt

Następnie musimy wysłać żądanie POST do Zoom API, aby utworzyć spotkanie. W tym celu można użyć cURL. Ale osobiście lubię Guzzle, który zapewnia znacznie czystszy kod niż cURL. Kolejną zaletą korzystania z Guzzle jest to, że nie musisz mieć włączonego rozszerzenia cURL na serwerze.

Uruchom poniższe polecenie, aby zainstalować bibliotekę Guzzle.

composer require guzzlehttp/guzzle

Twórz spotkania Zoom za pomocą JWT i PHP

Zainstalowaliśmy dwa pakiety, aby osiągnąć nasz cel. Teraz musimy dołączyć jego środowisko do naszego pliku PHP. Ponadto w poprzednich krokach skopiowaliśmy klucze Zoom API. Zdefiniujmy te klucze jako stałe w 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');

Następnie, aby wygenerować JWT za pomocą firebase/php-jwtpakietu, nasz kod będzie wyglądał następująco.

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

Na koniec, aby utworzyć spotkanie Zoom, musi wysłać żądanie POST do punktu końcowego /v2/users/me/meetingsz JWT jako Bearer Token.

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 spotkań Zoom

W swojej aplikacji możesz chcieć wyświetlić listę wszystkich spotkań Zoom. Zoom udostępnia API, przez które możemy uzyskać listę wszystkich spotkań Zoom. Korzystając z poniższego kodu, możesz wydrukować szczegóły swoich spotkań 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";
    }
}

Tutaj drukuję temat i URL spotkań. Możesz również wydrukować inne informacje. Wydrukuj zmienną, $dataaby uzyskać listę dostępnych informacji.

Uzyskaj poprzednich uczestników spotkania

W przypadku poprzednich spotkań możesz uzyskać listę uczestników za pomocą Zoom API. Jeśli korzystasz z płatnego konta, możesz użyć tego konkretnego interfejsu API. Ten interfejs API wymaga posiadania płatnego konta. Jeśli spróbujesz wywołać ten interfejs API za pomocą bezpłatnego konta, otrzymasz błąd.

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

Zastąp symbol zastępczy MEETING_ID rzeczywistym identyfikatorem poprzedniego spotkania. W odpowiedzi otrzymasz nazwiska i e-maile uczestników.

Usuń Zoom Meeting za pomocą JWT i PHP

Dodając, aby utworzyć spotkanie, Zoom zapewnia również punkty końcowe API, takie jak lista, aktualizacja, usunięcie spotkania. Użytkownik musi postępować zgodnie z dokumentacją API, aby korzystać z określonego punktu końcowego. Na przykład możesz usunąć spotkanie, wysyłając żądanie DELETE do punktu końcowego Zoom API. Musisz przekazać swój identyfikator spotkania do punktu końcowego w następujący sposób.

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

Mam nadzieję, że dowiedziałeś się o tworzeniu spotkań Zoom z PHP i JWT. Podziel się swoimi przemyśleniami i sugestiami w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów