Zoom supports a Perl SDK that provides higher-level constructs than the regular Zoom Web/Java/command line APIs. This allows developers to integrate with Zoom using the powerful Perl scripting language on any OS platform (Windows, Mac, Linux). The automation developed using the Perl SDK can be used with Zoom Workflow Auto Tasks, Zoom Hot Folder pre/post hooks, Archive pre/post hooks, Check-in pre/post hooks, custom converters etc.
Target Audience
The Perl SDK is targeted at Perl developers with at least 3 years+ experience working with Perl. If this is your first-time automating using Perl, take the help of an experienced Perl user to complete the steps below.
Version check
Linux and Mac have Perl already bundled with their OS. To check Perl version on any OS, type in the Command Prompt / Terminal or directly in the command line:
perl -v
This will display the Perl version in use. For Zoom, we need version 5.8 and above. To install the recommended version, follow the steps below.
Before installing the SDK
On Linux, it is a lot easier to setup Perl SSL module using yum instead of CPAN. Please use this command:
$ sudo yum install perl-Net-SSLeay
Perl Installation
- Minimum Perl Version Supported: 5.8+. Please ensure your Perl distribution is up to date.
- For Windows, download and install the Strawberry Perl distribution. For other OS, get the latest Perl version from https://www.perl.org/get.html. Use Strawberry Perl 5.24.1.1 for Windows as this has been tested and verified to work with Zoom.
- There are a number of Perl modules that the SDK functions depend upon. Please install the following Perl modules for maximum compatibility with the SDK lib modules:
Config
Config::IniFiles
Cwd
Crypt::SSLeay
Data::Dumper
Data::UUID
DateTime::Format::Strptime
Encode
Encode::Locale
Error
Fcntl
File::Basename
File::Copy
File::Find
File::Path
File::Temp
FindBin
Getopt::Long
IO::Pty::Easy
IO::Socket::SSL
JSON
JSON::Parse
List::MoreUtils
List::Util
LockFile::Simple
Log::Dispatch
Log::Dispatch::File
Log::Dispatch::File::Rolling
Log::Dispatch::FileRotate
Log::Log4perl
Log::Log4perl::Config::PropertyConfigurator
LWP::Protocol::https
LWP::Simple
LWP::UserAgent
Net::FTP
Net::SMTP
Net::SMTP::SSL
Net:SSLeay
Switch
Time::Format
Time::HiRes
Time::Piece
URI::Encode
URI::Escape
URL::Encode
XML::LibXML
XML::Simple
YAML
These can be installed using the command line below for instance:cpan -fi Config Config::IniFiles Cwd Crypt::SSLeay Data::Dumper Data::UUID DateTime::Format::Strptime Encode Encode::Locale Error Fcntl File::Basename File::Copy File::Find File::Path File::Temp FindBin Getopt::Long IO::Pty::Easy JSON JSON::Parse List::MoreUtils List::Util LockFile::Simple Log::Dispatch Log::Dispatch::File Log::Dispatch::File::Rolling Log::Dispatch::FileRotate Log::Log4perl Log::Log4perl::Config::PropertyConfigurator LWP::Protocol::https LWP::Simple LWP::UserAgent Net::FTP Net::SMTP Net::SMTP::SSL Net:SSLeay Switch Time::Format Time::HiRes Time::Piece URI::Encode URI::Escape URL::Encode XML::LibXML XML::Simple YAML
Troubleshooting Perl module installation failures
If any of your Perl modules fails during installation with cpan and does not work by retrying, then try alternates like package managers. You could try yum on Linux and ppm on Windows.
If any Perl module fails to install with a cpan command, it is usually due to a dependency on some other module or software.
For example, if your cpan Crypt::SSLeay module fails to install on Linux, then try installing with a package manager like yum, as shown below:
SDK Installation
- Download the SDK from the support portal and unzip it into a recommended root folder:
- Linux or MacOS: /zoom-deploy e.g. /home/evolphin/zoom-deploy
Windows: /evolphin/zoom-deploy/ for e.g. d:/evolphin/zoom-deploy - The Perl SDK is contained in the libs/ folder. The various Perl modules and the functions supported are described later in this article.
- Included with the SDK are a number of samples that can be used as a template for creating new automation.
Getting Ready to Develop Automation
- Please follow the folder structure below for developing the automation using the Zoom Perl SDK:
1. Download the SDK, unzip it and copy the lib directory under user-home/zoom-deploy.
2. The perl scripts for automation should be placed under user-home/zoom-deploy/scripts.
3. The scripts configuration should go into user-home/zoom-deploy/scripts/conf/config.ini.
4. Logs configuration should go into user-home/zoom-deploy/scripts/conf/log4perl.conf - Please review a sample script below to learn how to initialize the various Perl modules:
##############################################################################
# Log::Log4perl Conf # ############################################################################### log4perl.rootLogger = DEBUG, LOG1
log4perl.appender.LOG1 = Log::Log4perl::Appender::File
log4perl.appender.LOG1.filename = /home/evolphin/zoom-deploy/log/mylog.log
log4perl.appender.LOG1.mode = append
log4perl.appender.LOG1.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.LOG1.layout.ConversionPattern = %d %p %m %n
[ZOOMSERVER]
serverUsername = superuser
serverPassword = zoom
serverURL = http://localhost:8880
webminURL = http://localhost:8443
[ENVIRONMENT]
zmPath = /opt/zoom/bin/zm [DATE]
# Based on Perl Time::Piece supported format strings
#Date Format = %Y-%m-%d Date Format = %m/%d/%Y
# Need to be from http://en.wikipedia.org/wiki/List_of_tz_database_time_zones TZ column Time Zone = America/Los_Angeles