Error 3008 - 'Please init meeting first!'

Hi, all

I am trying to use the meeting-sdk for web (javascript, html, css) to integrate into a Hubspot CMS page. When I click to join, a window pops up with options to turn on camera and microphone and a join button below. I turn on camera and microphone, and hit join. I see a loading spinner, the word ‘joining’ and it hangs. I look in console, and I see the init error. It is being logged by the .error() of the ZoomMtg.join() function - I verified this in my console.

I cloned the repo from GitHub here GitHub - zoom/meetingsdk-javascript-sample: Use the Zoom Meeting SDK in a JavaScript App - it uses version 2.5.0 of the SDK.

The code I’m trying to run:

            
  <script>

        var signatureEndpoint = 'endpoint/goes/here/and/works;
        var sdkKey = 'theSdkKey';
        var meetingNumber = "meetingnumber";
        var role = 0;
        var leaveUrl = 'my/leave/url';
        var userName = "my user name";      
        var userEmail = "email of attendee - test email";
        var passWord = "";
        var registrantToken = "";

         $( document ).ready(function() { 
              ZoomMtg.setZoomJSLib('https://source.zoom.us/2.5.0/lib', '/av');
              ZoomMtg.preLoadWasm();
              ZoomMtg.prepareWebSDK();
              // loads language files, also passes any error messages to the ui
              ZoomMtg.i18n.load('en-US');
              ZoomMtg.i18n.reload('en-US');
              const joinMeetingBtn = document.getElementById("join-meeting-btn");
              joinMeetingBtn.addEventListener("click", ()=>{
                  getSignature()
         });

        function getSignature() {
          fetch(signatureEndpoint, {
            method: 'POST',
            headers: {
              'Content-Type': 'application/json',
            },
            body: JSON.stringify({
              meetingNumber: meetingNumber,
              role: role
            }),
          })
            .then((response) => {
              return response.json();
            })
            .then((data) => {
              startMeeting(data.signature);
            })
            .catch((error) => {
              console.log(error);
            });
        }

        function startMeeting(signature) {
          document.getElementById('zmmtg-root').style.display = 'block';
          ZoomMtg.init({
              leaveUrl: leaveUrl,
              success: (success) => {  
                ZoomMtg.join({
                  sdkKey: sdkKey,
                  signature: signature,
                  meetingNumber: meetingNumber,
                  userName: userName,
                  userEmail: userEmail,
                  passWord: passWord,
                  tk: registrantToken,
                  success: (success) => {
                    console.log(success);
                 },
                 error: (error) => {
                  console.log(error);
                },
              });
            },
            error: (error) => {
              console.log(error);
            },
          });
        }
   });
    </script>

(These are in script tags because in order to use certain values from the CMS, the code has to be in the same html file as the rest of the module.) All of the link and script tags with CDN resources that were in the repo are in the module, unmodified.

I’ve done some reading in the zoom dev forum on this error, and I’m wondering if the problem is that I have to use some jQuery to cause some of the code to wait until the page is loaded to run. If I don’t do that, I never see the ‘join’ screen with the options to turn on camera and microphone - I would only get a black screen, without even an error in the console. Furthering my suspicion is that the original repo works great locally.

Of course, this is just a suspicion and I haven’t been able to find anything really helpful so far. I even went pretty carefully through the documentation for ZoomMtg.init() and ZoomMtg.join() to see if I was missing something. Any help would be appreciated.

activate the debug mode

ZoomMtg.init({
    debug: true,

maybe helpful infos will come

var userEmail = "email of attendee - test email";

and use a correct email address ( ...@example.com)

and upload a screenshot of the console

Jürgen

PS: for the first test and learning how zoom api works, I would use the other example (-> CDN version)

2 Likes

Thank you so much, Jurgen!

We actually figured it out… and this might be useful to anyone having seemingly inexplicable problems when trying to use Zoom inside of a CMS… turns out there was a conflict between one of the scripts in the CMS and a couple of Zoom’s scripts. We disabled those - they weren’t needed - and it’s working fine.

Thanks to the community and have a wonderful day!

1 Like

Thanks so much for chiming in @j.schoenemeyer :slight_smile: your help is very valuable to us and to the community!!!
Happy to hear you figure it out @lshopeful2018