“Alexa, ask Zoom to start a meeting” – writing your adaptor using ZR API

November 29, 2017

Before we jump into the adaptor code, let's get our development environment setup. Once you are comfortable with the Alexa skill creation process, you will soon find it difficult to use the AWS lambda built-in editors for real time coding and debugging. We have two basic needs:

  • Run the code in our environment and not in Lambda
  • Use a IDE to debug the node.js code

We will cover the first one and let you explore Webstorm IDE.

Run the adaptor using BST Proxy

After looking around a bit on available tools, we found the bst proxy tool very easy to setup and use. You can follow these quick steps to install and get the tool up and running.

  • bst support node version 4.x and above. Check to make sure that your node version is compatible
node --version && npm --version

  • install bst
npm install bespoken-tools -g 

Creating the adaptor

  • Create a directory to contain your code
  • Download the latest version of alexa-sdk
  • clone or download our git repo that has a sample adaptor code that starts an instant meeting - or - copy the index.js from our git

mkdir zoomalexa

cd zoomalexa

npm install alexa-sdk request sync-request jsonwebtoken body-parser --save

npm init -y  (creates package.json file)

  • open the index.js and update the "APP_ID" with your Skill id.  Put in your Zoom API key and sec
  • Run the bst tool with your app. Change the my_zr variable to a valid ZR name on your zoom account

bst proxy lambda index.js

This will provide a public URL for your local app - copy this URL and paste this into your skill configuration. Change your end point to HTTPS and don't forget to Save this

  • you are now ready with your setup. Just tell alexa - "ask zoom to start my meeting". you will see the logs right on your local console ! thanks to BST !

Skill Adaptor code using alexa-sdk

We have posted the adaptor code in git. The adaptor do not have all the functions and we have only implemented the start meeting capability. You can quickly extend this and create interesting use cases. As you might have noticed, we have used the Alexa node SDK (see this post from Amazon for the details). The adaptor code itself is self explanatory but here are the key blocks:

  • Define the intent handlers
  • The handler for start function calls the ZR API and checks if the ZR is found. If not, it spits out an error and you will hear "sorry, I cannot locate your Zoom Room"
  • If the room is found, the adaptor just calls another ZR API to start the instant meeting. You will hear the prompt on your Alexa device and an instant meeting will be launched on your ZR

Alexa voice can be used only in the pre and post meeting scenarios for now. We are sure that will change in the near future. Play around with our APIs and Alexa - if you have some use cases for a new skill, feel free to send a shout out either on our developer forums or to developersupport@zoom.us

 

 

 

Thiya Ramalingam
Thiya heads the platforms, integrations, product partnerships and private cloud engineering @ Zoom. Thiya is a published author, speaker and has several issued patents in the collaboration space.