使用 JWT 收到 Zoom API 调用的代码 124(无效访问令牌)
Code 124 (Invalid access token) received for Zoom API calls using JWT
当使用动态创建的 JWT 令牌,甚至 hard-copying 从 App Marketplace 为我的应用程序提供的令牌时,我的 API 请求总是因“无效访问令牌”而失败。
我目前正在处理 Meetings 端点,特别是尝试创建会议。端点是:https://eu01api-www4local.zoom.us/v2/users/me/meetings(使用符合 GDPR 的欧盟基础 URL)。
我的 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 class 进行编码。
'app' 本身已激活并在帐户上生效,设置为 JWT 类型,无意发布,并且是 'Account level'。
感谢任何帮助。
文档中针对符合 GDPR 的欧盟用户描述的端点实际上不可操作 - 至少对于此类工作而言。必须使用原来的.us baseURL
当使用动态创建的 JWT 令牌,甚至 hard-copying 从 App Marketplace 为我的应用程序提供的令牌时,我的 API 请求总是因“无效访问令牌”而失败。
我目前正在处理 Meetings 端点,特别是尝试创建会议。端点是:https://eu01api-www4local.zoom.us/v2/users/me/meetings(使用符合 GDPR 的欧盟基础 URL)。
我的 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 class 进行编码。
'app' 本身已激活并在帐户上生效,设置为 JWT 类型,无意发布,并且是 'Account level'。
感谢任何帮助。
文档中针对符合 GDPR 的欧盟用户描述的端点实际上不可操作 - 至少对于此类工作而言。必须使用原来的.us baseURL