Zoom Integration Into Nodejs App

Merve Yolcu
5 min readAug 26, 2023

--

Previously, the most commonly used method for utilizing the Zoom API was to establish it with a JWT token. As of August 2023, Zoom has announced that JWT usage will be discontinued starting in September. Therefore, we will implement Zoom integration in our Node.js application using the server-to-server method.

First here it is the link that where you can create product

First, we create an application selected server-to server.

After creating our application named ‘Test,’ app credentials are generated, and it redirects us to the page where we will configure our application settings. We will use the Account Id, Client Id and Client Secret after in code.

Subsequently, in the ‘Information’ section, we need to fill out the details of our application. Completing this section is essential for us to activate the application once all the settings are finished.

After this step, in the ‘Features’ section, our Token information is generated.

Once the feature settings are automatically generated, in the ‘Scopes’ section, you define which information and capabilities are available in Zoom.

After completing the scope settings for our application, before we proceed to our Node.js code, we can refer to this video prepared by Zoom engineers on how this application will work.

In this application, we actually need an access token to generate a link and join the meeting using that link. Afterward, we will try the mechanics of creating a meeting with an API request as explained in the video.

https://zoom.us/oauth/token?grant_type=account_credentials&account_id=xxxxxxxxxxxxxx -POST

We need to provide the API endpoint and parameter values for the request we will send.

Here, the ‘account_id’ provided is the Account ID used in the App Credentials section after creating the app. Then, to be able to make the request, we need to enter our Basic Auth credentials, which are the Client ID and Client Secret information from the App Credentials section.

The response returned after making the POST request from here will be as follows:

The access token here is in bearer token format. To create a meeting by using this token, we paste it into the Bearer Token field in the request.

In the create meeting link api:

https://api.zoom.us/v2/users/me/meetings — POST

The API endpoint and request body to create a meeting are as follows:

Here it’s the request body gist:

And response and response gist;

Now, let’s move on to the Node.js code. First, we include the credentials information.

zoom.js

Then, we write a function that will take input from the user for the meeting topic, duration, and start time.

zoom.js

Here, we perform our checks using the response obtained from the authResponse.

zoom.js

“If you can provide your meeting link in the format ‘…’, that would be great.

However, my recommendation is to take it a step further and see if we can join a meeting without a waiting room and without the need for admin permission as soon as the link is shared. For this, we will need to make some changes to our code. First, we will extract the config information from the test request we sent in Postman to obtain the token.

And then, we modify our code as follows:

zoom.js

Finally, if we explain the ‘let data’ section:

Password: We are preventing a security vulnerability where anyone can access the meeting link by requiring both the link and a password for individuals to enter the meeting.

Join Before Host: Here, instead of selecting an admin for the meeting to let people in, individuals with the meeting link can directly enter the meeting.

Waiting Room: This allows direct entry into the meeting without the need for any waiting room.

I hope this will be helpful for your work. Well done in advance, and thank you!

And you can access the GitHub repository from here!

Made with love ❤️

--

--

Merve Yolcu

backend developer and engineer to be 👩🏻‍💻