Skip to content

Latest commit

 

History

1,097 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intro

Zoom is a web- and app-based video conferencing service. This plugin offers tight integration with Moodle, supporting meeting creation, synchronization, grading and backup/restore.

Try in Moodle Playground

Click the badge below to open this plugin instantly in Moodle Playground — a full Moodle site running in the browser, with no local install. The demo includes a course with a stub Zoom activity so you can preview the activity view, the mod_form, and the plugin's admin settings.

Note: This demo uses placeholder Zoom credentials, so real Zoom meetings cannot be created or joined. The Join / Start buttons will not work — this preview is intended for UI and admin-settings inspection only.

Preview in Moodle Playground

Prerequisites

This plugin is designed for Educational or Business Zoom accounts.

To connect to the Zoom APIs, this plugin requires an account-level app to be created.

Server-to-Server OAuth

To create an account-level Server-to-Server OAuth app, the Server-to-server OAuth app permission is required. You should create a separate Server-to-Server OAuth app for each Moodle install.

The Server-to-Server OAuth app will generate a client ID, client secret and account ID.

Granular scopes

At a minimum, the following scopes are required:

  • meeting:read:meeting:admin (Get meeting)
  • meeting:read:invitation:admin (Get meeting invitation)
  • meeting:delete:meeting:admin (Delete meeting)
  • meeting:update:meeting:admin (Update meeting)
  • meeting:write:meeting:admin (Create meeting)
  • user:read:list_schedulers:admin (List schedulers)
  • user:read:settings:admin (Get user settings)
  • user:read:user:admin (Get user)

Optional functionality can be enabled by granting additional scopes:

  • Meeting registrations
    • meeting:read:list_registrants:admin (Get registrants)
  • Reports for meetings / webinars (Licensed accounts and higher)
    • report:read:list_meeting_participants:admin
    • report:read:list_webinar_participants:admin
    • report:read:list_users:admin
    • report:read:user:admin
  • Faster reports for meetings / webinars (Business accounts and higher)
    • dashboard:read:list_meeting_participants:admin
    • dashboard:read:list_meetings:admin
    • dashboard:read:list_webinar_participants:admin
    • dashboard:read:list_webinars:admin
  • Allow recordings to be viewed (zoom | viewrecordings)
    • cloud_recording:read:list_recording_files:admin
    • cloud_recording:read:list_user_recordings:admin
    • cloud_recording:read:recording_settings:admin
  • Tracking fields (zoom | defaulttrackingfields)
    • tracking_field:read:list_tracking_fields:admin
  • Recycle licenses (zoom | utmost), (zoom | recycleonjoin), (zoom | protectedgroups)
    • group:read:list_groups:admin
    • user:read:list_users:admin
    • user:update:user:admin
  • Webinars (zoom | showwebinars), (zoom | webinardefault)
    • webinar:read:list_registrants:admin
    • webinar:read:webinar:admin
    • webinar:delete:webinar:admin
    • webinar:update:webinar:admin
    • webinar:write:webinar:admin

Classic scopes

At a minimum, the following scopes are required:

  • meeting:read:admin (Read meeting details)
  • meeting:write:admin (Create/Update meetings)
  • user:read:admin (Read user details)

Optional functionality can be enabled by granting additional scopes:

  • Reports for meetings / webinars
    • dashboard_meetings:read:admin (Business accounts and higher)
    • dashboard_webinars:read:admin (Business accounts and higher)
    • report:read:admin (Pro accounts and higher)
  • Allow recordings to be viewed (zoom | viewrecordings)
    • recording:read:admin
  • Tracking fields (zoom | defaulttrackingfields)
    • tracking_fields:read:admin
  • Recycle licenses (zoom | utmost), (zoom | recycleonjoin), (zoom | protectedgroups)
    • group:read:admin
    • user:write:admin
  • Webinars (zoom | showwebinars), (zoom | webinardefault)
    • webinar:read:admin
    • webinar:write:admin

Installation

  1. Install plugin to the /mod/zoom folder in Moodle.
  2. After installing the plugin, the following settings need to be configured to use the plugin:
  • Zoom account ID (mod_zoom | accountid)
  • Zoom client ID (mod_zoom | clientid)
  • Zoom client secret (mod_zoom | clientsecret)

If you get "Access token is expired" errors, make sure the date/time on your server is properly synchronized with the time servers.

About

Moodle plugin for Zoom meeting

Resources

Stars

68 stars

Watchers

59 watching

Forks

Releases

Packages

Used by

Contributors

Languages