使用 JWT 调用 Zoom API 收到的代码 124无效的访问令牌

问题描述

当使用动态创建的 JWT 令牌,甚至硬拷贝从应用市场为我的应用提供的令牌时,我的 API 请求总是由于“无效的访问令牌”而失败。

我目前正在使用会议端点,特别是尝试创建会议。端点是:https://eu01api-www4local.zoom.us/v2/users/me/meetings(使用符合 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,因为我正在从 localhost 进行测试。)

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 类型,无意发布,且为“帐户级别”。

感谢任何帮助。

解决方法

适用于符合 GDPR 的欧盟用户的文档中描述的端点实际上不可操作 - 至少对于此类工作是这样。必须使用原始 .us 基本 URL。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...