WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как создавать собрания Zoom с помощью PHP и JWT

460

Раньше я писал статью, в которой объяснялось создание Zoom Meeting с помощью PHP и OAuth. Один из наших читателей спросил о создании собрания Zoom с использованием JWT (JSON Web Tokens) и PHP. Zoom API позволяет нам использовать как OAuth, так и JWT для работы с их API. Для API Zoom требуется токен-носитель, созданный через OAuth или JWT.

Примечание. JWT можно использовать только для внутренних приложений и процессов. Все приложения, созданные для стороннего использования, должны использовать тип приложения OAuth.

Если вы хотите создать приложение Zoom для внутреннего использования, подход JWT проще по сравнению с OAuth.

Начиная

Для начала перейдите на панель инструментов Zoom Developer и создайте новое приложение. Выберите JWTтип приложения и скопируйте ключ и секрет API Zoom.

Один JWT состоит из трех компонентов: заголовка, полезной нагрузки и подписи с .разделением каждого из них. Например:aaaaa.bbbbb.ccccc

Доступно несколько библиотек, которые помогают генерировать JWT. Я рекомендую использовать библиотеку firebase / php-jwt. Эта библиотека обеспечивает гораздо более простой подход к созданию JWT. Установите эту библиотеку, используя следующую команду.

composer require firebase/php-jwt

Затем мы должны отправить запрос POST в API Zoom, чтобы создать встречу. Для этого можно использовать cURL. Но мне лично нравится Guzzle, который предоставляет намного более чистый код, чем cURL. Еще одно преимущество использования Guzzle заключается в том, что вам не нужно включать расширение cURL на сервере.

Выполните приведенную ниже команду, чтобы установить библиотеку Guzzle.

composer require guzzlehttp/guzzle

Создавайте встречи Zoom с JWT и PHP

Мы установили два пакета для достижения нашей цели. Теперь нам нужно включить его среду в наш файл PHP. Кроме того, мы скопировали ключи API Zoom на предыдущих шагах. Давайте определим эти ключи как константы в 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');

Затем, чтобы сгенерировать JWT с использованием firebase/php-jwtпакета, наш код будет следующим.

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

Наконец, чтобы создать собрание Zoom, ему необходимо отправить запрос POST в конечную точку /v2/users/me/meetingsс JWT в качестве токена-носителя.

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

В своем приложении вы можете захотеть перечислить все собрания Zoom. Zoom предоставляет API, с помощью которого мы можем получить список всех встреч Zoom. Используя приведенный ниже код, вы можете распечатать сведения о ваших собраниях 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";
    }
}

Здесь я печатаю тему и URL-адрес собраний. Вы также можете распечатать другую информацию. Распечатайте переменную, $dataчтобы получить список доступной информации.

Получить прошлых участников собрания

Для прошлых встреч вы можете получить список участников с помощью Zoom API. Если у вас есть платная учетная запись, вы можете использовать этот конкретный API. Этот API требует наличия платной учетной записи. Если вы попытаетесь вызвать этот API с помощью бесплатной учетной записи, вы получите сообщение об ошибке.

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

Замените заполнитель MEETING_ID фактическим идентификатором прошедшей встречи. В ответ вы получите имена и адреса электронной почты участников.

Удалить собрание Zoom с помощью JWT и PHP

При добавлении для создания собрания Zoom также предоставляет конечные точки API, такие как список, обновление, удаление собрания. Пользователь должен следовать документации по API для использования конкретной конечной точки. Например, вы можете удалить собрание, отправив запрос DELETE в конечную точку API Zoom. Вам необходимо передать свой идентификатор собрания в конечную точку следующим образом.

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

Надеюсь, вы узнали о создании собраний Zoom с помощью PHP и JWT. Пожалуйста, поделитесь своими мыслями и предложениями в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее