RestAPI: Means of Being Notified that Zoom Room Goes Live


#1

Hello!

I’m relatively new to these forums but I’ve been doing some digging in relation to my current project, and I’m curious if anyone knows a good way to be notified programmatically when a Zoom Room starts a meeting of any kind.

I am aware that there is a CLI for the Zoom Rooms app, but from my understanding you cannot have both the Room Controller and a CLI app connected to the Zoom Room at the same time, otherwise one will disconnect. 

My goal is to automate the process of having the TVs in the Zoom Room turn on when a meeting starts. I have several clients whose TVs are either too old to have timers or CEC control, or the TVs for one reason or another are having issues with the built-in CEC control. We want to eliminate this as a potential cause of stress for our clients, and so going the programming route seems like the best way.

Currently, my only solution is to have my app send a GET request every ~5-10 seconds asking if this user (being the Zoom Room) has any meetings of the “live” type. If there are any, then turn the TVs on. Otherwise turn them off, like this:

JSON \_r = myCurl.sendRequest(https://api.zoom.us/v2/users/:{ID HERE}/meetings?type=live&page\_size=30&page\_number=1);

if(\_r.total\_records != 0)
{
 \_tv.turnOn();
}
else
{
 \_tv.turnOff();
}

While this is a fairly straightforward approach, I do feel it best to avoid sending the same request numerous times at such a rapid pace when it can be avoided. As such, I’d like to see if I can’t make something like this happen:

myListener.setPost({ZoomRoom\_IP, Port #, ... etc});

...

ZoomListener(JSON \_data)
{
 if(\_data.total\_records != 0)
 {
 \_tv.turnOn();
 }
 else
 {
 \_tv.turnOff();
 }
}

So, does anyone know of something I can try? Thanks!

-Mitch S 


#2

Hey Mitch, There is a way you can do this. Your current approach is not scalable. Here is the high level flow:

  • create an account level app in Zoom Marketplace (marketplace.zoom.us)

  • Register for the meeting start event  (follow other steps as documented in creating the app)

  • When your webhook gets called (when the meeting starts), check if the room user id is the host. If not ignore. If the room is the host, then apply your logic on turning on the controsl

  • you can do the same with the meeting end event and turn off the controls

 

Make sense ?

 

Thanks


#3

Yeah that makes sense!

It’s actually kind of what I was hoping for actually.

I’m not certain if I can use it at the moment sadly. There’s a lot of overhead I’d have to work on to meet the requirements in the configuration. Is there any way to set the app to be private/internal or does have to be available on the marketplace? If so that would make this a lot easier to implement.


#4

you don’t need to publish it. Marketplace has an option to generate a publishable URL without publishing the app and making it visible.


#5

Ah okay I see that now. Thanks!