При использовании либо динамически созданных токенов JWT, либо даже жесткого копирования предоставленного из App Marketplace для моего приложения мои запросы API всегда терпят неудачу из-за «недопустимого токена доступа».
В настоящее время я работаю над конечной точкой собраний, в частности, пытаюсь создать собрание. Конечная точка: https://eu01api-www4local.zoom.us/v2/users/me/meetings (с использованием базового URL-адреса ЕС, соответствующего GDPR).
Мой запрос cURL выглядит так:
$body = json_encode($body);
$arr = [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => $this->timeout,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_HTTPHEADER => [
"authorization: Bearer " . $this->generate_JWT(),
"content-type: application/json"
],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $body
];
$ch = curl_init();
curl_setopt_array($ch, $arr);
$response = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
(CURLOPT_SSL_VERIFYPEER
здесь установлено значение false, так как я тестирую с локального хоста.)
Функция generate_JWT
выглядит так:
private function generate_JWT()
{
$payload = [
"iss" => self::ZOOM_API_SECRET,
"exp" => time() + $this->timeout,
];
return JWT::encode($payload, self::ZOOM_API_KEY, 'HS256');
}
... используя класс Firebase\JWT\JWT для кодирования.
Само «приложение» активировано и работает в учетной записи, установленной как тип JWT, без намерения публиковать и является «уровнем учетной записи».
Любая помощь приветствуется.