...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

So erstellen Sie Zoom-Meetings mit PHP und JWT

124

In der Vergangenheit habe ich einen Artikel geschrieben, der erklärt , wie man ein Zoom-Meeting mit PHP und OAuth erstellt. Einer unserer Leser fragte nach dem Erstellen eines Zoom-Meetings mit JWT (JSON Web Tokens) und PHP. Die Zoom- API ermöglicht es uns, sowohl OAuth als auch JWT zu verwenden, um mit ihren APIs umzugehen. Die Zoom-API erfordert das entweder über OAuth oder JWT generierte Bearer Token.

Hinweis: JWT darf nur für interne Anwendungen und Prozesse verwendet werden. Alle Apps, die für die Verwendung durch Drittanbieter erstellt wurden, müssen den OAuth-App-Typ verwenden.

Wenn Sie eine Zoom-App für den internen Gebrauch erstellen möchten, ist der JWT-Ansatz im Vergleich zu OAuth einfacher.

Einstieg

Um zu beginnen, gehen Sie zum Zoom Developer Dashboard und erstellen Sie eine neue App. Wählen Sie JWTals App-Typ aus und kopieren Sie den Zoom-API-Schlüssel und das Geheimnis.

Ein einzelnes JWT besteht aus drei Komponenten: Header, Payload und Signature mit jeweils einer .Trennung. Beispielsweise:aaaaa.bbbbb.ccccc

Es stehen mehrere Bibliotheken zur Verfügung, die beim Generieren von JWT helfen. Ich empfehle die Verwendung der Firebase/php-jwt- Bibliothek. Diese Bibliothek bietet einen viel einfacheren Ansatz zum Erstellen von JWT. Installieren Sie diese Bibliothek mit dem folgenden Befehl.

composer require firebase/php-jwt

Als nächstes müssen wir eine POST-Anfrage an die Zoom-API senden, um ein Meeting zu erstellen. Dazu kann man cURL verwenden. Aber ich persönlich mag einen Guzzle, der viel saubereren Code bietet als cURL. Ein weiterer Vorteil der Verwendung von Guzzle besteht darin, dass die cURL-Erweiterung auf dem Server nicht aktiviert sein muss.

Führen Sie den folgenden Befehl aus, um die Guzzle-Bibliothek zu installieren.

composer require guzzlehttp/guzzle

Zoom-Meetings mit JWT und PHP erstellen

Wir haben zwei Pakete installiert, um unser Ziel zu erreichen. Jetzt müssen wir die Umgebung in unsere PHP-Datei aufnehmen. Außerdem haben wir in den vorherigen Schritten Zoom-API-Schlüssel kopiert. Lassen Sie uns diese Schlüssel als Konstanten in PHP definieren.

<?php
require_once 'vendor/autoload.php';
 
use FirebaseJWTJWT;
use GuzzleHttpClient;
 
define('ZOOM_API_KEY', 'API_KEY_HERE');
define('ZOOM_SECRET_KEY', 'API_SECRET_HERE');

Als Nächstes, um JWT mit dem firebase/php-jwtPaket zu generieren, sieht unser Code wie folgt aus.

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

Um ein Zoom-Meeting zu erstellen, muss es schließlich eine POST-Anfrage /v2/users/me/meetingsmit JWT als Bearer Token an den Endpunkt senden .

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

Zoom-Meetings auflisten

In Ihrer Bewerbung möchten Sie vielleicht alle Zoom-Meetings auflisten. Zoom bietet eine API, über die wir eine Liste aller Zoom-Meetings erhalten können. Mit dem folgenden Code können Sie die Details Ihrer Zoom-Meetings ausdrucken.

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

Hier drucke ich ein Thema und eine URL von Meetings. Sie können auch andere Informationen ausdrucken. Drucken Sie die Variable $data, um eine Liste der verfügbaren Informationen zu erhalten.

Frühere Meeting-Teilnehmer abrufen

Für die vergangenen Meetings können Sie über die Zoom-API eine Teilnehmerliste abrufen. Wenn Sie ein kostenpflichtiges Konto haben, können Sie diese spezielle API verwenden. Diese API erfordert ein kostenpflichtiges Konto. Wenn Sie versuchen, diese API mit einem kostenlosen Konto aufzurufen, erhalten Sie eine Fehlermeldung.

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

Ersetzen Sie den Platzhalter MEETING_ID durch die tatsächliche ID der letzten Besprechung. In der Antwort erhalten Sie die Namen und E-Mails der Teilnehmer.

Zoom Meeting mit JWT und PHP löschen and

Beim Hinzufügen zum Erstellen eines Meetings bietet Zoom auch API-Endpunkte wie Auflisten, Aktualisieren und Löschen eines Meetings. Der Benutzer muss seine API-Dokumentation befolgen, um einen bestimmten Endpunkt zu verwenden. Sie können beispielsweise ein Meeting löschen, indem Sie eine DELETE-Anfrage an den Zoom-API-Endpunkt senden. Sie müssen Ihre Meeting-ID wie folgt an den Endpunkt übergeben.

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

Ich hoffe, Sie haben etwas über das Erstellen von Zoom-Meetings mit PHP und JWT erfahren. Bitte teilen Sie Ihre Gedanken und Vorschläge im Kommentarbereich unten mit.

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen