Hi there, i´m trying to imlement a web solution to create a meeting, join it automatically and show it in an iFrame (for that reason i´m using the embedded SDK).
My problem is that i have a 3706 error, that stands for:
type: JOIN_MEETING_FAILED
reason: “The meeting number is wrong”
My workflow consist in the steps below:
- Generate an AuthToken (Success and following S2S oauth verification token documentation)
- Create a zoom meeting (Success and following meeting POST user/me documentation)
For this task im using the next JsonBody:
const token = await generateTokenMeeting();
const response = await fetch('https://api.zoom.us/v2/users/me/meetings', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
agenda: "React Meeting",
type: 2,
default_password: false,
duration: 60,
settings: {
host_video: true,
participant_video: true,
join_before_host: true,
allow_multiple_devices: true,
waiting_room: false
}
})
});
And receiving this response:
{
"meeting": {
"uuid": "mDpUOq+4Ro6BsnmGmrDrBg==",
"id": 78331895222,
"host_id": "e81st_5aT8qyf-fZc5riIA",
"host_email": "",
"topic": "Zoom Meeting",
"type": 2,
"status": "waiting",
"start_time": "2024-10-24T03:24:06Z",
"duration": 60,
"timezone": "America/Mexico_City",
"agenda": "React Meeting",
"created_at": "2024-10-24T03:24:06Z",
"start_url": "https://us04web.zoom.us/s/78331895222?zak=eyJ0eXAiOiJKV1QiLCJzdiI6IjAwMDAwMSIsInptX3NrbSI6InptX28ybSIsImFsZyI6IkhTMjU2In0.eyJpc3MiOiJ3ZWIiLCJjbHQiOjAsIm1udW0iOiI3ODMzMTg5NTIyMiIsImF1ZCI6ImNsaWVudHNtIiwidWlkIjoiZTgxc3RfNWFUOHF5Zi1mWmM1cmlJQSIsInppZCI6IjRmMGVlMjkzYjMyNTQ4MDk5OTg2Nzg0OTZkYjAxM2MxIiwic2siOiIwIiwic3R5IjoxLCJ3Y2QiOiJ1czA0IiwiZXhwIjoxNzI5NzQ3NDQ3LCJpYXQiOjE3Mjk3NDAyNDcsImFpZCI6ImpXbXNhaFRvUUNxdFJPRzE1Zy0wU1EiLCJjaWQiOiIifQ.3E2cf9IbdSdlkY8X0gEEUINiqKNesUOGfcVSrggL9X4",
"join_url": "https://us04web.zoom.us/j/78331895222?pwd=OJdbO2nIPEw2bhsjDYU2zDQZXGKlfG.1",
"password": "",
"h323_password": "",
"pstn_password": "",
"encrypted_password": ".",
"settings": {
"host_video": true,
"participant_video": true,
"cn_meeting": false,
"in_meeting": false,
"join_before_host": true,
"jbh_time": 0,
"mute_upon_entry": false,
"watermark": false,
"use_pmi": false,
"approval_type": 2,
"audio": "voip",
"auto_recording": "none",
"enforce_login": false,
"enforce_login_domains": "",
"alternative_hosts": "",
"alternative_host_update_polls": false,
"close_registration": false,
"show_share_button": false,
"allow_multiple_devices": false,
"registrants_confirmation_email": true,
"waiting_room": false,
"request_permission_to_unmute_participants": false,
"registrants_email_notification": true,
"meeting_authentication": false,
"encryption_type": "enhanced_encryption",
"approved_or_denied_countries_or_regions": {
"enable": false
},
"breakout_room": {
"enable": false
},
"internal_meeting": false,
"continuous_meeting_chat": {
"enable": true,
"auto_add_invited_external_users": false,
"auto_add_meeting_participants": false,
"channel_id": "web_sch_c60868b3ed6d4176898e7c1f98645bd1"
},
"participant_focused_meeting": false,
"push_change_to_calendar": false,
"resources": [],
"alternative_hosts_email_notification": true,
"show_join_info": false,
"device_testing": false,
"focus_mode": false,
"meeting_invitees": [],
"enable_dedicated_group_chat": true,
"private_meeting": false,
"email_notification": true,
"host_save_video_order": false,
"sign_language_interpretation": {
"enable": false
},
"email_in_attendee_report": false
},
"pre_schedule": false
}
}
- My next step is create the signature for my embedded sdk (Also success) and then, verify it:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZGtLZXkiOiJKVHI1VkpuY1NwT0F1bUIwd29zMVh3IiwiaWF0IjoxNzI5NzQwMjE2LCJleHAiOjE3Mjk3NDc0MTYsIm1lZXRpbmdOdW1iZXIiOiI3MTY4MzY4NjU1MCIsInJvbGUiOjF9.AGAdH-orhqvt1dvUy-q-TpYcrRHxzGlELb45yGYuTvU
As you can see, the number meeting is the same as my meeting ID created before.
- My final step is use the join function using all the data created before, here is my code:
function startMeeting(client, clientConf) {
const meetingNumber: string = clientConf.meetingNumber.toString();
console.log("meetingNumber: ", meetingNumber, typeof meetingNumber);
try{
client.join({
signature: clientConf.signature,
sdkKey: clientConf.sdkKey,
meetingNumber: meetingNumber,
userName: clientConf.userName,
})
} catch (e) {
console.error(e);
}
}
And there is when my error appears.
I really don´t if i´m having this problem of my account type (i have a basic one) or because the way i´m joining my meeting, as you can see, i´m not using any email or password data from my user, and my roles for join and signature are roleType 1 (you can see it in the JWT verification) .
As an aditional info im running my code in a react project using node v18 and zoom websdk v2.18.3.
I hope anyone can help me with these, any reply is helpful.