Zoom Connector - Using T-SQL / Linked Server
T-SQL is a programming language used for managing and querying data in Microsoft SQL Server databases. We provides tools for data integration, automation, and connectivity.
If you want to use T-SQL with ZappySys, you can use our Connector, which allows you to connect to SQL Server databases and execute T-SQL queries from Zoom.
Create Data Source in ZappySys Data Gateway based on API Driver
-
Download and install ODBC PowerPack.
-
Search for gateway in start menu and Open ZappySys Data Gateway:
-
Go to Users Tab to add our first Gateway user. Click Add; we will give it a name tdsuser and enter password you like to give. Check Admin option and click OK to save. We will use these details later when we create linked server:
-
Now we are ready to add a data source. Click Add, give data source a name (Copy this name somewhere, we will need it later) and then select Native - ZappySys API Driver. Finally, click OK. And it will create the Data Set for it and open the ZS driver UI.
ZoomDSN
-
When the Configuration window appears give your data source a name if you haven't done that already, then select "Zoom" from the list of Popular Connectors. If "Zoom" is not present in the list, then click "Search Online" and download it. Then set the path to the location where you downloaded it. Finally, click Continue >> to proceed with configuring the DSN:
ZoomDSNZoom -
Now it's time to configure the Connection Manager. Select Authentication Type, e.g. Token Authentication. Then select API Base URL (in most cases, the default one is the right one). More info is available in the Authentication section.
OAuth App must be created under Admin Console > Channel > API > Settings. [API reference]
Steps how to get and use Zoom credentials : OAuth Authentication [OAuth]
Perform the following steps to get the Zoom OAuth credentials (i.e. Client ID and Client Secret)
- Go to Zoom Marketplace Portal and sign in there.
- Once you successfully login then select "Build App" option from Develop dropdown from top left on the page.
- Click on Create button of OAuth panel section of page.
- Enter the name for your application and choose app type (Recommneded "Account-Level App") option for your API
- Then proceed with clicking Create button.
- In Redirect URL for OAuth enter this https://zappysys.com/oauth as Redirect URI and add it to allow lists.
- Copy Client ID and Client Secret here and paste it into Connection Manager Required Paramters section in respective place holders
- Add appropiate scopes from the Scopes menu option to the right side of page for your API as below :
- meeting:read;
- meeting:write;
- user:read;
- user:write;
- user_info:read;
- meeting:read:admin;
- chat_channel:read;
- chat_channel:write;
- chat_contact:read;
- chat_message:read;
- chat_message:write;
- contact:read;
- pac:read;
- pac:write;
- phone:read;
- phone:write
- phone_call_control:read;
- phone_call_control:write;
- phone_call_log:read;
- phone_call_log:write;
- phone_e911:read;
- phone_recording:read;
- phone_recording:write;
- phone_sms:read;
- phone_sms:write;
- phone_voicemail:read;
- phone_voicemail:write;
- recording:read;
- recording:write;
- tsp:read
- tsp:write;
- user:read;
- user:write;
- user_info:read;
- user_zak:read;
- webinar:read;
- webinar:write
- Click Generate Token button on Connection Manager UI to generate tokens.
- That's it!
Fill in all required parameters and set optional parameters if needed:
ZoomDSNZoomOAuth Authentication [OAuth]https://api.zoom.us/v2Required Parameters ClientId Fill-in the parameter... ClientSecret Fill-in the parameter... RedirectUrl Fill-in the parameter... TokenUrl Fill-in the parameter... AuthorizationUrl Fill-in the parameter... Optional Parameters Scope RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429 RetryCountMax 5 RetryMultiplyWaitTime True -
Once the data source connection has been configured, it's time to configure the SQL query. Select the Preview tab and then click Query Builder button to configure the SQL query:
- ZoomZoom Connector can be used to integrate Zoom REST API in your App / BI Tools. You can read/write data about Meetings, Invite, Users, Accounts and more.ZoomDSN -
Start by selecting the Table or Endpoint you are interested in and then configure the parameters. This will generate a query that we will use in to retrieve data from Zoom. Hit OK button to use this query in the next step.
SELECT * FROM Meetings WITH( UserId ='me' -- enter user id or email ) --You can get UserId by selecting from 'list_users' endpoint and also this value available as dropdown value for UserId parameter.
Some parameters configured in this window will be passed to the Zoom API, e.g. filtering parameters. It means that filtering will be done on the server side (instead of the client side), enabling you to get only the meaningful datamuch faster . -
Now hit Preview Data button to preview the data using the generated SQL query. If you are satisfied with the result, use this query in :
- ZoomZoom Connector can be used to integrate Zoom REST API in your App / BI Tools. You can read/write data about Meetings, Invite, Users, Accounts and more.ZoomDSNSELECT * FROM Meetings WITH( UserId ='me' -- enter user id or email ) --You can get UserId by selecting from 'list_users' endpoint and also this value available as dropdown value for UserId parameter.
You can also access data quickly from the tables dropdown by selecting <Select table>.AWHERE
clause,LIMIT
keyword will be performed on the client side, meaning that thewhole result set will be retrieved from the Zoom API first, and only then the filtering will be applied to the data. If possible, it is recommended to use parameters in Query Builder to filter the data on the server side (in Zoom servers). -
Click OK to finish creating the data source.
Read data in SQL Server using ZappySys Data Gateway
To read the data in SQL Server, the first thing you have to do is create a Linked Server:
-
First, let's open SQL Server Management Studio, create a new Linked Server, and start configuring it:
LS_TO_ZOOM_IN_GATEWAYMicrosoft OLE DB Driver for SQL Serverlocalhost,5000ZoomDSNZoomDSNChoose SQL Server Native Client 11.0 as Provider if you don't see the option shown above. -
Then click on Security option and configure username we created in ZappySys Data Gateway in one of the previous steps:
-
Optional step. Under the Server Options, Enable RPC and RPC Out and Disable Promotion of Distributed Transactions(MSDTC).
You need to enable RPC Out if you plan to use
EXEC(...) AT [LS_TO_ZOOM_IN_GATEWAY]
rather than OPENQUERY.
If don't enabled it, you will encounter theServer 'LS_TO_ZOOM_IN_GATEWAY' is not configured for RPC
error.Query Example:
EXEC('SELECT * FROM Meetings WITH( UserId =''me'' -- enter user id or email ) --You can get UserId by selecting from ''list_users'' endpoint and also this value available as dropdown value for UserId parameter.') AT [LS_TO_ZOOM_IN_GATEWAY]
If you plan to use
'INSERT INTO <TABLE> EXEC(...) AT [LS_TO_ZOOM_IN_GATEWAY]'
in that case you need to Disable Promotion of Distributed Transactions(MSDTC).
If don't disabled it, you will encounter theThe operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "MY_LINKED_SERVER_NAME" was unable to begin a distributed transaction.
error.Query Example:
INSERT INTO dbo.Products EXEC('SELECT * FROM Meetings WITH( UserId =''me'' -- enter user id or email ) --You can get UserId by selecting from ''list_users'' endpoint and also this value available as dropdown value for UserId parameter.') AT [LS_TO_ZOOM_IN_GATEWAY]
-
Finally, open a new query and execute a query we saved in one of the previous steps:
SELECT * FROM OPENQUERY([LS_TO_ZOOM_IN_GATEWAY], 'SELECT * FROM Meetings WITH( UserId =''me'' -- enter user id or email ) --You can get UserId by selecting from ''list_users'' endpoint and also this value available as dropdown value for UserId parameter.')
SELECT * FROM OPENQUERY([LS_TO_ZOOM_IN_GATEWAY], 'SELECT * FROM Meetings WITH( UserId =''me'' -- enter user id or email ) --You can get UserId by selecting from ''list_users'' endpoint and also this value available as dropdown value for UserId parameter.')
Create Linked Server using Code
In previous section you saw how to create a Linked Server from UI. You can do similar action by code too (see below). Run below script after changing necessary parameters. Assuming your Data Source name on ZappySys Data Gateway UI is 'ZoomDSN'USE [master]
GO
--///////////////////////////////////////////////////////////////////////////////////////
--Run below code in SSMS to create Linked Server and use ZappySys Drivers in SQL Server
--///////////////////////////////////////////////////////////////////////////////////////
-- Replace YOUR_GATEWAY_USER, YOUR_GATEWAY_PASSWORD
-- Replace localhost with IP/Machine name if ZappySys Gateway Running on different machine other than SQL Server
-- Replace Port 5000 if you configured gateway on a different port
--1. Configure your gateway service as per this article https://zappysys.com/links?id=10036
--2. Make sure you have SQL Server Installed. You can download FREE SQL Server Express Edition from here if you dont want to buy Paid version https://www.microsoft.com/en-us/sql-server/sql-server-editions-express
--Uncomment below if you like to drop linked server if it already exists
--EXEC master.dbo.sp_dropserver @server=N'LS_TO_ZOOM_IN_GATEWAY', @droplogins='droplogins'
--3. Create new linked server
EXEC master.dbo.sp_addlinkedserver
@server = N'LS_TO_ZOOM_IN_GATEWAY' --Linked server name (this will be used in OPENQUERY sql
, @srvproduct=N''
---- For MSSQL 2012,2014,2016 and 2019 use below (SQL Server Native Client 11.0)---
, @provider=N'SQLNCLI11'
---- For MSSQL 2022 or higher use below (Microsoft OLE DB Driver for SQL Server)---
--, @provider=N'MSOLEDBSQL'
, @datasrc=N'localhost,5000' --//Machine / Port where Gateway service is running
, @provstr=N'Network Library=DBMSSOCN;'
, @catalog=N'ZoomDSN' --Data source name you gave on Gateway service settings
--4. Attach gateway login with linked server
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname=N'LS_TO_ZOOM_IN_GATEWAY' --linked server name
, @useself=N'False'
, @locallogin=NULL
, @rmtuser=N'YOUR_GATEWAY_USER' --enter your Gateway user name
, @rmtpassword='YOUR_GATEWAY_PASSWORD' --enter your Gateway user's password
GO
--5. Enable RPC OUT (This is Optional - Only needed if you plan to use EXEC(...) AT YourLinkedServerName rather than OPENQUERY
EXEC sp_serveroption 'LS_TO_ZOOM_IN_GATEWAY', 'rpc', true;
EXEC sp_serveroption 'LS_TO_ZOOM_IN_GATEWAY', 'rpc out', true;
--Disable MSDTC - Below needed to support INSERT INTO from EXEC AT statement
EXEC sp_serveroption 'LS_TO_ZOOM_IN_GATEWAY', 'remote proc transaction promotion', false;
--Increase query timeout if query is going to take longer than 10 mins (Default timeout is 600 seconds)
--EXEC sp_serveroption 'LS_TO_ZOOM_IN_GATEWAY', 'query timeout', 1200;
GO