【问题标题】:Zoom-sdk works locally, but not when deployedZoom-sdk 在本地工作,但在部署时不工作
【发布时间】:2021-05-22 06:19:13
【问题描述】:

我使用 zoom 的 API、jwt 和 websdk 在按钮单击时创建会议,然后作为主持人加入并同时开始会议,让其他人加入。这在本地工作正常,但不知何故,当部署到 cloudflare 时,我收到以下错误:

您的连接已超时,您无法加入会议。验证您的网络连接并重试。

错误对象:

errorCode: 3706
errorMessage: undefined
method: "join"
result: "The meeting number is wrong."
status: false

“会议号码错误。”显然这里的信息是错误的,因为提供的会议编号直接来自 zoom 的 API,并且在本地工作。

const joinMeeting = async (meetConfig: MeetConfigData) => {
    const ZoomMtg = require("@zoomus/websdk").ZoomMtg;
    ZoomMtg.setZoomJSLib("https://source.zoom.us/1.9.0/lib", "/av");
    ZoomMtg.preLoadWasm();
    ZoomMtg.prepareJssdk();

    const signature = await generateSignature(meetConfig.role, meetConfig.meetingNumber);

    ZoomMtg.init({
        leaveUrl: meetConfig.leaveUrl,
        isSupportAV: true,
        success: () => {
            ZoomMtg.join({
                signature,
                apiKey: "API_KEY",
                meetingNumber: meetConfig.meetingNumber,
                userName: meetConfig.userName,
                passWord: meetConfig.password,
                success: () => {
                    console.log("Successfully hosted or joined meeting.");
                },
                error: (err: Error) => {
                    console.log("Error: ", err);
                },
            });
        },
        error: (err: Error) => {
            console.log("Error: ", err);
        },
    });
};

返回正确签名的服务器端签名方法,因为它再次在本地工作:

export const createSignature = ({ role, meetingNumber }) => {
    const timestamp = new Date().getTime() - 30000;
    const msg = Buffer.from(
        process.env.NEXT_PUBLIC_ZOOM_API_KEY + meetingNumber + timestamp + role
    ).toString("base64");
    const hash = crypto
        .createHmac("sha256", process.env.NEXT_PUBLIC_ZOOM_API_SECRET)
        .update(msg)
        .digest("base64");

    return Buffer.from(
        `${process.env.NEXT_PUBLIC_ZOOM_API_KEY}.${meetingNumber}.${timestamp}.${role}.${hash}`
    ).toString("base64");
};

有没有人经历过这种情况?

【问题讨论】:

    标签: javascript typescript zoom-sdk


    【解决方案1】:

    如果您收到此错误(在加入尚未开始的会议时收到“您的连接已超时,您无法加入会议”)错误需​​要做一些事情

    在您的项目中搜索

    <script src="https://source.zoom.us/zoom-meeting-1.7.8.min.js"></script>
    and replace with 
    
    <script src="https://source.zoom.us/zoom-meeting-2.1.1.min.js"></script>
    

    1 做完这个错误就会消失 2

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    相关资源
    最近更新 更多