Jak tworzyć spotkania Zoom za pomocą PHP i JWT
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 JWT
jako 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-jwt
pakietu, 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/meetings
z 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ą, $data
aby 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
- Przewodnik po integracji hCaptcha z PHP
- Zapisuj dane do arkusza OneDrive za pomocą Microsoft Graph API i PHP
- Zamiana mowy na tekst przy użyciu transkrypcji Amazon w PHP