如何解决Zoom-sdk 在本地工作,但在部署时不起作用
我使用 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");
};
有人遇到过这种情况吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。