Enabling Zoom Meeting embedded client to work for meetings created by non-app installed users

Description

Here’s the workflow I’m using for my app:

  1. A user (meeting owner) creates a meeting in zoom directly. Adds the meeting link, password in our system
  2. The meeting owner joins the meeting directly on Zoom Desktop
  3. Attendees of the meeting join via our App that embeds the Zoom Meeting Client Embedded. The Attendees are not expected to have the App installed - they are joining in with role 0 (member). The Zoom meeting client uses client ID & Signature for an General App (User scoped) we have created on Zoom. The app is not yet published on the marketplace. Apps Scopes are attached in the screenshot.

Now, here’s the issue we are facing:

  1. If I create the meeting with my account which owns the App or my within Account collaborators, Attendees are able to join.
  2. If I create the meeting with any other account, they are not able to join - the join fails - error
    {type: 'JOIN_MEETING_FAILED', reason: 'Fail to join the meeting.', errorCode: 200}

We want our users to be able to create a meeting & have their members join from our embedded web client without installing our App. Is it possible - and if so, how can it be made possible?

Thanks
Browser Console Error
{type: 'JOIN_MEETING_FAILED', reason: 'Fail to join the meeting.', errorCode: 200}

Which Web Meeting SDK version? @zoomus/websdk@2.18.3

Meeting SDK Code Snippets

Our code to join is below:

      const client = ZoomMtgEmbedded.createClient()
      const meetingSDKElement = document.getElementById('zmmtg-root') || undefined;
      const meetingSDKChatElement = document.getElementById('meetingSDKChatElement') || undefined;

      client.init({
        zoomAppRoot: meetingSDKElement, language: 'en-US', customize: {
          video: {
            isResizable: false,
            viewSizes: {
              default: {
                width: 800,
                height: 800
              },
            },
          },
          chat: {
            popper: {
              disableDraggable: true,
              anchorElement: meetingSDKChatElement,
              placement: 'top'
            }
          }
        }
      }).then(() => {
        client.join({
          sdkKey: meetingConfig.sdkKey,
          signature: meetingConfig.signature,
          meetingNumber: meetingConfig.meetingNumber,
          password: meetingConfig.passWord,
          userName: meetingConfig.userName
        }).then(() => {
          if(isDesktop){
            styleZoomClient();
          }
          setIsMeetingStarted(true);
        }).catch((err)=>{ 

Device (please complete the following information):

  • Device: Macbook Pro
  • OS: macOS 13.3
  • Browser: Chrome
  • Browser Version: 122.0.6261.94

Just guessing but your app probably needs permission to manage the meeting for the person creating the meeting.

Aaron:

  1. Do I need the meeting manage permission to just join from the SDK?
  2. The meeting was created directly on Zoom. If so, how we get that permission? Or does the App in Zoom marketplace need to have overall zoom meeting management permission?

As I said I’m just guessing but I’d imagine the App will need to have permissions to manage any meeting you are trying to access via the app, otherwise you could use the SDK to join anyone’s meeting.

So, if you do not control the login’s being used to create the meeting you would probably need to setup some sort of Oauth workflow via the API to give your App management permissions. ALL JUST SPECULATION just putting in my 2 cents worth in the hopes it gives you some ideas or helps you onto the right path.

I’m not “managing” the meeting - just joining it. There are just 2 main zoom SDK client calls above - client.init & client.join
Why do I need meeting management permissions? What could we be doing wrong here?

I’m guessing still, but if you don’t have manage rights for the meeting how can the app authorize that it is allowed at join the meeting? Otherwise you would be able to create an app and use it to join anyone’s meeting.

Also, you are sort of managing the meeting because you are adding participants to it.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.