Skip to Content
Technical Articles

SAP Analytics Cloud Zoom Meeting Custom Widget

In this brand new tutorial on the SAC custom widget, I will walkthrough how you can create a custom widget to share your screen automatically on the Boardroom display with Zoom Meeting app.

Scenario

Using this widget, you can easily share your screen automatically on the big Boardroom display and start the presentation. The Boardroom display is based on the Android OS that is able to run the Zoom app.

On the SAC Analytic app, you have installed and configured the custom widget. With this widget you can create meeting, share screen and end meeting.

 

 

When you start a meeting by clicking “Create Meeting” button, the Zoom meeting session will run automatically (without your intervention) in the Boardroom and you will get the link to the Zoom meeting in SAC Analytic App which you can click and start sharing your screen.

After you finish with the meeting, you click the “End Meeting” button and the session will be removed.

Custom Widget

We will create a simple UI with sap.m.ActionSheet and add two buttons: Create Meeting and End Meeting.

We also need a PubNub as a communication medium between the custom widget and the NodeJS app which runs on the Android tablet. The SAC widget will send a command to tell the NodeJS server either to create or end the meeting. The NodeJS will execute the command accordingly and returns the result back to the custom widget via PubNub. With this result, the widget knows if the meeting session is still active or not. If still active and user clicks on “Create meeting” again, it will then throw an error pop-up message.

Android Setup

On the Android side, we will install Zoom app, Termux app and Termux Boot. The Termux app is required to run the NodeJS server on the Android OS.

Run the Termux app and navigate to this folder:

cd /data/data/com.termux/files/home/

Clone the zoom-api-jwt to make Zoom API call using JWT:

git clone https://github.com/zoom/zoom-api-jwt

Install the following libraries:

npm install jsonwebtoken pubnub request-promise child_process

Get server.js and config.js from https://github.com/ferrygun/SACZoom and put those files in /data/data/com.termux/files/home/zoom-api-jwt/.

You need to update config.js and fill in the  API Key & Secret and email with your Zoom account credential. Refer to my other blog in the reference section on how to get those.

const config = {
	development :{
		APIKey : 'ZOOM_API_KEY',
		APISecret : 'ZOOM_API_SECRET',
		email: 'EMAIL_ID'
	},
	production:{	
		APIKey : 'ZOOM_API_KEY',
		APISecret : 'ZOOM_API_SECRET',
		email: 'EMAIL_ID'
	}
};

The following command will run the server.js immediately after device was booted using Termux Boot and also to make it run in the background while you are in other screen.

mkdir -p ~/.termux/boot
# create shell script start.sh and insert this command in that script:
/data/data/com.termux/files/usr/bin/node /data/data/com.termux/files/home/zoom-api-jwt/server.js

And finally run the Termux Boot app.

Quick Video

References

Be the first to leave a comment
You must be Logged on to comment or reply to a post.