The Zoom Integration package provides you with the ability to securely integrate with Zoom APIs. Get access to your site members’ authorized data in Zoom, and manage their Zoom accounts from your site.
Tip: The package exposes basic create, get, and delete Zoom API functions. Site owners can modify this package to make any requests using these basic Zoom API functions.
Before using this package, set up the following:
Register a Zoom App. Create an OAuth app on the Zoom App Marketplace as described here. Define the app with permissions according to scope.
Save app credentials. Save the app credentials (client ID and client Secret) that are automatically generated when creating the Zoom app. You’ll need it for the Wix Secrets Manager in the next section.
Open the Wix Secrets Manager to securely store the client secrets. This is more secure than pasting them into backend code. Make sure never to expose your client's secrets.
Store a new secret using the credentials we defined in the previous section. Name the client secret: velo-zoom-integration-client-secret
Create a connection from your site to Zoom.
In your config.json
backend file, set the properties of the zoom
object to the values specified below.
Example:
Add a private collection to hold each Wix member’s Zoom token and other details. The package code adds each user when successfully authorized by Zoom.
Note: Make sure the collection is defined as private because it contains sensitive information.
Name the collection ZoomUsers
and define the following fields:
access_token
: Text field containing the Zoom access token. This field is PII (Personally Identifiable Information).expires_in
: Numeric field containing the number of seconds at which the token expires. Defaults to 3600 (one hour) .scope
: Text field containing the scope that your app is allowed to use to access the Wix member’s zoom resources. This field is PII (Personally Identifiable Information).refresh_token
: Text field containing the token you can use when the original token expires. This field is PII (Personally Identifiable Information).token_type
: Text field containing the type of the token, such as bearer
. This field is PII (Personally Identifiable Information).This package contains backend functions for Zoom integration. Note that only exported functions that you can use in your site are listed here.
This package includes functions for:
This package contains the following backend files:
The code in this file contains functions for validating the Wix member and their token.
isTokenExpired()
Validates if the Wix member’s Zoom (JSW) token expired.
Syntax:
Parameters:
An identifiers
object that contains identifying details needed to check if the token expired. The identifying details are details that typically only the site owner would know.
The object contains these properties:
expiresIn: Number of seconds after which the token will expire for the Wix member. Taken from the ZoomUsers
collection.
updatedDate: Date containing the _updatedDate
value for the Wix member. Taken from the ZoomUsers
collection.
Returns:
A promise that resolves to a response
object containing the following property:
true
or false
, depending on if the token expired.isValidUser()
Validates if the Wix member sending the Zoom authorization request is the currently-logged-in Wix member.
Syntax:
Parameters:
Returns:
A promise that resolves to one of of the following response
objects:
When successful, an object like this:
When unsuccessful, an object containing an error message, such as:
or
The code in the zoom-api-wrapper.jsw
file exposes Zoom APIs to your frontend code. The exposed functionality enables you to call functions on behalf of the member that is currently logged in to your site from a page or site code.
Note: To call the functions without the user’s email validation, and/or to avoid exposing the package functions to unauthorized visitors, call the functions from within a backend zoom-api.js
file instead.
The code in this file contains functions for managing Zoom meetings from your site on behalf of a site member.
To use the functions below in your code, import them with the following syntax:
The file contains the following functions:
createTokenWrapper()
Creates a user token for accessing the Zoom account by calling the backend createToken()
function.
Syntax:
Parameters:
A data
object that contains a code for creating the token.
The code is received from Zoom after authentication and is one of the query parameters in the URL of the page. This Zoom Integration package calls a getQueryParams()
function defined in the zoom-api-wrapper.jsw
file to extract the code from the URL.
Returns:
A promise that resolves to a response
object containing the following property:
true
or false
, depending on if the token was created.createMeeting()
Creates a Zoom meeting for the Wix member using their Zoom account.
Syntax:
Parameters:
A meetingInfo
object that contains details needed to create the meeting:
userEmail: String containing the email provided by the Wix member in the frontend.
meetingDetails: The meeting object schema as defined by Zoom. This package is designed to supply certain default values. Modify the package code as necessary. To use the package defaults, you can provide an empty JSON object for the meetingDetails
.
Returns:
A promise that resolves to a meeting
object containing the meeting details.
getMeeting()
Gets information about an existing Zoom meeting for the Wix member from their Zoom account.
Syntax:
Parameters:
A meetingInfo
object that contains information needed to retrieve the details about the meeting:
userEmail: String containing the email provided by Wix member from the frontend.
meetingId: String containing the unique identifier of the meeting to retrieve, also known as the meeting number. The ID is specified in long format and represented as an integer 64-bit data type in JSON. For example: 87467626051.
Returns:
A promise that resolves to a meeting
object containing the meeting details.
deleteMeeting()
Deletes an existing Zoom meeting from the Wix member’s Zoom account.
Syntax:
Parameters:
A meetingInfo
object that contains information needed to delete the Zoom meeting:
userEmail: String containing the email provided by the Wix member from the frontend.
meetingId: String containing the unique identifier of the meeting to retrieve, also known as the meeting number. The ID is specified in long format and represented as an integer 64-bit data type in JSON. For example: 87467626051.
Returns:
A promise that resolves to the relevant HTTP response.
The code in the zoom-api.js
file exposes Zoom API requests to the Wix backend. The exposed functionality enables you to call Zoom API methods on behalf of the authorized member (even if the member is not currently logged in).
Note: To call the functions with Zoom user email validation, and without exposing the package functions to unauthorized visitors, call the functions from within a backend zoom-api-wrapper.jsw
file instead.
To use the functions below in your code, import them with the following syntax:
The functions in this file all receive a request
object as a parameter and return a promise that resolves to a response
object.
Syntax:
getRequest()
Receives and handles a GET request from the Zoom API. The function’s request
object contains the parameters url
and userEmail
(details below).
deleteRequest()
Receives and handles a DELETE request from the Zoom API. The function’s request
object contains the parameters url
and userEmail
(details below).
postRequest()
Receives and handles a POST request from the Zoom API. The function’s request
object contains the parameters url
, dataToSend
, and userEmail
(details below).
patchRequest()
Receives and handles a PATCH request from the Zoom API. The function’s request
object contains the parameters url
, dataToSend
, and userEmail
(details below).
Parameters:
The request
objects for the functions in the zoom-api.js
file contain these properties:
url: String containing the scoped, API request URL according to the Zoom API Reference specifications. For example, you can list all users on a Zoom account using the GET request on this URL: https://api.zoom.us/v2/users/
dataToSend: JSON object containing the information to send as the request body (for postRequest()
and patchRequest()
functions only).
userEmail: String containing the email address of the Zoom user whose account you want to access.
The code in the zoom-auth.js
file exposes Zoom authorization functions to the Wix backend. The exposed functionality enables you to create and work with Zoom user tokens.
To use the functions below in your code, import them with the following syntax:
The file contains the following functions:
createToken()
Creates a user token for accessing the Zoom account.
Note: Can be called from the frontend by the createTokenWrapper()
function.
Syntax:
Parameters:
A tokenInfo
object in JSON format containing these properties:
code: String containing the code received from Zoom after authentication as one of the query parameters in the URL of the page. This Zoom Integration package calls a getQueryParams()
function defined in the zoom-api-wrapper.jsw
file to extract the code from the URL.
userEmail: String containing the email address of the Zoom user whose account you want to authorize.
Returns:
A promise that resolves to a token
object containing these properties:
refreshToken()
Refreshes a Zoom user’s token.
Syntax:
Parameters:
A tokenInfo
object in JSON format containing these properties:
refresh_token: String containing the refresh token.
userEmail: String containing the email address of the Zoom user whose token is being refreshed.
Returns:
A promise that resolves to a string containing a new token.
getToken()
Gets a Zoom user’s token.
Syntax:
Parameters:
Returns:
String containing the token.
requestToken()
Requests a token.
Syntax:
Parameters:
A request
object in JSON format containing these properties:
refresh_token: String containing the refresh token.
userEmail: String containing the email address of the Zoom user whose account you want to access.
Returns:
String containing the token.
Put code that you want available to the entire site in the Public section.
The code in this optional init-zoom.js
file contains functions for authorizing users, redirecting users to the Zoom SSO page, and starting the process for creating a token.
authorizeUser()
Redirects a Wix member to the Zoom single sign-on (SSO) login page.
Syntax:
Parameters:
An authorization
object in JSON format containing these properties:
userEmail: String containing the email address of the currently logged-in site member that needs authorization from Zoom.
options: A JSON object with additional data that you want to retain after the authorization process redirects to, and refreshes the original page. This data can be details from the Zoom authorization process or any other details that you collected on the original page before requesting authorization.
For example, the page might have received submitted information such as name, address, and so on. You can send these details to Zoom, even though Zoom will not use these details, just to reload them on the refreshed page.
Specify the details in a JSON object as key-value pairs, such as:
Returns:
Void
initZoom()
You can call this function on every page load or only after redirected from the Zoom single sign-on (SSO) login page. This function retrieves the code and the state from the query params and creates the token.
Syntax:
Parameters:
A data
object that contains details needed to create the token:
getQueryParams()
function defined in the zoom-api-wrapper.jsw
file to extract the code from the URL.Returns:
A state
object containing details for initiating the Zoom integration:
userEmail: String containing the email address of the currently logged-in site member that needs authorization from Zoom.
options: A JSON object with additional data that you wanted to retain after the authorization process redirects to, and refreshes the original page. This data can be details from the Zoom authorization process or any other details that you collected on the original page before requesting authorization.
The state
details are returned as a JSON object, such as:
1.0 Initial version.
Zoom