Meeting number wrong using webSDK embedded

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.

@gkraken333 your token is using 71683686550 for meeting number, but from webSDK you are trying to join 78331895222

@chunsiong.zoom thanks for the reply.

After you observation i have been debbuging my code and notice that my project is sending duplicate requests to my backend.

I’m gonna check that issue and if my problem is solved i will close this topic, otherwise, i’ll bring more info about my issue.

Thanks again.

1 Like

Hi again @chunsiong.zoom, i do some modifications in my code to avoid the request duplication, but my problem persist.

Here is the response i get from my meeting creation:

{
  "meeting": {
    "uuid": "2ZWR5F3FRFiCP/bNkAunGA==",
    "id": 73975389726,
    "host_id": "e81st_5aT8qyf-fZc5riIA",
    "host_email": "",
    "topic": "Zoom Meeting",
    "type": 2,
    "status": "waiting",
    "start_time": "2024-10-25T23:10:19Z",
    "duration": 60,
    "timezone": "America/Mexico_City",
    "agenda": "React Meeting",
    "created_at": "2024-10-25T23:10:19Z",
    "start_url": "https://us04web.zoom.us/s/73975389726?zak=eyJ0eXAiOiJKV1QiLCJzdiI6IjAwMDAwMSIsInptX3NrbSI6InptX28ybSIsImFsZyI6IkhTMjU2In0.eyJpc3MiOiJ3ZWIiLCJjbHQiOjAsIm1udW0iOiI3Mzk3NTM4OTcyNiIsImF1ZCI6ImNsaWVudHNtIiwidWlkIjoiZTgxc3RfNWFUOHF5Zi1mWmM1cmlJQSIsInppZCI6IjM1Y2RlZjYxNTNmMDRjNjZiM2ZkY2Q4YWU1NmJmNzk1Iiwic2siOiIwIiwic3R5IjoxLCJ3Y2QiOiJ1czA0IiwiZXhwIjoxNzI5OTA1MDIwLCJpYXQiOjE3Mjk4OTc4MjAsImFpZCI6ImpXbXNhaFRvUUNxdFJPRzE1Zy0wU1EiLCJjaWQiOiIifQ.ZalIMbFterJ0ui-vvFLrvpPqbdH9SJUD4V-YWJkvft8",
    "join_url": "https://us04web.zoom.us/j/73975389726?pwd=2X1QQMfAsOrwt2ehfag3hnYQS8cDNU.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_2a69594e2208469eb7cdd8481a6d1912"
      },
      "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
  }
}

And here is the signature i generate:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZGtLZXkiOiJKVHI1VkpuY1NwT0F1bUIwd29zMVh3IiwiaWF0IjoxNzI5ODk5MTE5LCJleHAiOjE3Mjk5MDYzMTksIm1lZXRpbmdOdW1iZXIiOiIiLCJyb2xlIjoxfQ.Yu5KUIadaD_O0lfEO3G-XYhI6_ZI8eS9BgeoQwspy50

Before to reply, i also verify if this meeting was valid, and it is, i can join the meeting successfully with my start_url and join_url.

Also, i tried to join with user_type 0 and 1, and leaving my meeting number as string and also number.

I hope this helps to find a way to resolve my problem.

@gkraken333 this signature has no meeting number at all, you need to put in the meetingNumber as 73975389726

It seems like i pass you the wrong one, here it is again with a new meeting.

I create the meeting doing a POST request to my backend using Thunder Client and getting this response:

{
  "meeting": {
    "uuid": "WLB+cRRnQhCMveSkdlqVTQ==",
    "id": 76029781713,
    "host_id": "",
    "host_email": "",
    "topic": "Zoom Meeting",
    "type": 2,
    "status": "waiting",
    "start_time": "2024-10-28T20:18:34Z",
    "duration": 60,
    "timezone": "America/Mexico_City",
    "agenda": "React Meeting",
    "created_at": "2024-10-28T20:18:34Z",
    "start_url": "https://us04web.zoom.us/s/76029781713?zak=eyJ0eXAiOiJKV1QiLCJzdiI6IjAwMDAwMSIsInptX3NrbSI6InptX28ybSIsImFsZyI6IkhTMjU2In0.eyJpc3MiOiJ3ZWIiLCJjbHQiOjAsIm1udW0iOiI3NjAyOTc4MTcxMyIsImF1ZCI6ImNsaWVudHNtIiwidWlkIjoiZTgxc3RfNWFUOHF5Zi1mWmM1cmlJQSIsInppZCI6IjZkZjJhMGI2ZDEwYTRmYTdiNTI1YmI5ODhhYTNhNWUwIiwic2siOiIwIiwic3R5IjoxLCJ3Y2QiOiJ1czA0IiwiZXhwIjoxNzMwMTUzOTE0LCJpYXQiOjE3MzAxNDY3MTQsImFpZCI6ImpXbXNhaFRvUUNxdFJPRzE1Zy0wU1EiLCJjaWQiOiIifQ.9jnkJbWH_AiZZXrWeOwcHQOxAixVSc5bRXCgi4VR1W8",
    "join_url": "https://us04web.zoom.us/j/76029781713?pwd=h1pSqnkb74ozZS45AUP42qo4PJkHaz.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_8359a907052f4d6389e38e9d5b0f887c"
      },
      "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
  }
}

Then, because of my zoom component, i can hardcode the meeting id before the project starts, just to ensure that i´m having the same meetingID for my join data and my signature, having this:

  const clientConf = {
    authEndpoint: "http://localhost:8000/api/zoom/signature",
    sdkKey: "JTr5VJncSpOAumB0wos1Xw",
    signature: "",
    meetingNumber: "76029781713",
    role: 0, // 0 implies client, 1 implies host
    userName: 'React', // username: user need to input,
  }

At this point, i´m sure that my meeting ID is the same one i will pass to my signature.

Then, i start my project and let my component generate my signature, getting this:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZGtLZXkiOiJKVHI1VkpuY1NwT0F1bUIwd29zMVh3IiwiaWF0IjoxNzMwMTQ2OTczLCJleHAiOjE3MzAxNTQxNzMsIm1lZXRpbmdOdW1iZXIiOiI3NjAyOTc4MTcxMyIsInJvbGUiOjB9.d8hKQZrq1ZrC_LQBXfybbbghQVFs1viVCrQynjWT0vk

Then, i have my wrong meeting number error.

I have the next function to let my client join:

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);
  }
}

I hope this will be more helpful, if you need more evidence (code, recordings of my workflow, images, etc) let me know, because the topic doesn´t allow me to attach any image or link.

Thanks!

@gkraken333 I’ll PM you for your JWT Token and meeting password