1 |
efrain |
1 |
# Intro
|
|
|
2 |
|
|
|
3 |
[Zoom](https://zoom.us) is a web- and app-based video conferencing service. This
|
|
|
4 |
plugin offers tight integration with Moodle, supporting meeting creation,
|
|
|
5 |
synchronization, grading and backup/restore.
|
|
|
6 |
|
|
|
7 |
## Prerequisites
|
|
|
8 |
|
|
|
9 |
This plugin is designed for Educational or Business Zoom accounts.
|
|
|
10 |
|
|
|
11 |
To connect to the Zoom APIs, this plugin requires an account-level app to be
|
|
|
12 |
created.
|
|
|
13 |
|
|
|
14 |
### Server-to-Server OAuth
|
|
|
15 |
To [create an account-level Server-to-Server OAuth app](https://developers.zoom.us/docs/internal-apps/create/), the `Server-to-server OAuth app`
|
|
|
16 |
permission is required. You should create a separate Server-to-Server OAuth app for each Moodle install.
|
|
|
17 |
|
|
|
18 |
The Server-to-Server OAuth app will generate a client ID, client secret and account ID.
|
|
|
19 |
|
|
|
20 |
#### Granular scopes
|
|
|
21 |
At a minimum, the following scopes are required:
|
|
|
22 |
|
|
|
23 |
- meeting:read:meeting:admin (Get meeting)
|
|
|
24 |
- meeting:read:invitation:admin (Get meeting invitation)
|
|
|
25 |
- meeting:delete:meeting:admin (Delete meeting)
|
|
|
26 |
- meeting:update:meeting:admin (Update meeting)
|
|
|
27 |
- meeting:write:meeting:admin (Create meeting)
|
|
|
28 |
- user:read:list_schedulers:admin (List schedulers)
|
|
|
29 |
- user:read:settings:admin (Get user settings)
|
|
|
30 |
- user:read:user:admin (Get user)
|
|
|
31 |
|
|
|
32 |
Optional functionality can be enabled by granting additional scopes:
|
|
|
33 |
|
|
|
34 |
- Meeting registrations
|
|
|
35 |
- meeting:read:list_registrants:admin (Get registrants)
|
|
|
36 |
- Reports for meetings / webinars (Licensed accounts and higher)
|
|
|
37 |
- report:read:list_meeting_participants:admin
|
|
|
38 |
- report:read:list_webinar_participants:admin
|
|
|
39 |
- report:read:list_users:admin
|
|
|
40 |
- report:read:user:admin
|
|
|
41 |
- Faster reports for meetings / webinars (Business accounts and higher)
|
|
|
42 |
- dashboard:read:list_meeting_participants:admin
|
|
|
43 |
- dashboard:read:list_meetings:admin
|
|
|
44 |
- dashboard:read:list_webinar_participants:admin
|
|
|
45 |
- dashboard:read:list_webinars:admin
|
|
|
46 |
- Allow recordings to be viewed (zoom | viewrecordings)
|
|
|
47 |
- cloud_recording:read:list_recording_files:admin
|
|
|
48 |
- cloud_recording:read:list_user_recordings:admin
|
|
|
49 |
- cloud_recording:read:recording_settings:admin
|
|
|
50 |
- Tracking fields (zoom | defaulttrackingfields)
|
|
|
51 |
- Not yet supported by Zoom
|
|
|
52 |
- Recycle licenses (zoom | utmost), (zoom | recycleonjoin)
|
|
|
53 |
- user:read:list_users:admin
|
|
|
54 |
- user:update:user:admin
|
|
|
55 |
- Webinars (zoom | showwebinars), (zoom | webinardefault)
|
|
|
56 |
- webinar:read:list_registrants:admin
|
|
|
57 |
- webinar:read:webinar:admin
|
|
|
58 |
- webinar:delete:webinar:admin
|
|
|
59 |
- webinar:update:webinar:admin
|
|
|
60 |
- webinar:write:webinar:admin
|
|
|
61 |
|
|
|
62 |
#### Classic scopes
|
|
|
63 |
At a minimum, the following scopes are required:
|
|
|
64 |
|
|
|
65 |
- meeting:read:admin (Read meeting details)
|
|
|
66 |
- meeting:write:admin (Create/Update meetings)
|
|
|
67 |
- user:read:admin (Read user details)
|
|
|
68 |
|
|
|
69 |
Optional functionality can be enabled by granting additional scopes:
|
|
|
70 |
|
|
|
71 |
- Reports for meetings / webinars
|
|
|
72 |
- dashboard_meetings:read:admin (Business accounts and higher)
|
|
|
73 |
- dashboard_webinars:read:admin (Business accounts and higher)
|
|
|
74 |
- report:read:admin (Pro accounts and higher)
|
|
|
75 |
- Allow recordings to be viewed (zoom | viewrecordings)
|
|
|
76 |
- recording:read:admin
|
|
|
77 |
- Tracking fields (zoom | defaulttrackingfields)
|
|
|
78 |
- tracking_fields:read:admin
|
|
|
79 |
- Recycle licenses (zoom | utmost), (zoom | recycleonjoin)
|
|
|
80 |
- user:write:admin
|
|
|
81 |
- Webinars (zoom | showwebinars), (zoom | webinardefault)
|
|
|
82 |
- webinar:read:admin
|
|
|
83 |
- webinar:write:admin
|
|
|
84 |
|
|
|
85 |
## Installation
|
|
|
86 |
|
|
|
87 |
1. [Install plugin](https://docs.moodle.org/en/Installing_plugins#Installing_a_plugin) to the /mod/zoom folder in Moodle.
|
|
|
88 |
2. After installing the plugin, the following settings need to be configured to use the plugin:
|
|
|
89 |
|
|
|
90 |
- Zoom account ID (mod_zoom | accountid)
|
|
|
91 |
- Zoom client ID (mod_zoom | clientid)
|
|
|
92 |
- Zoom client secret (mod_zoom | clientsecret)
|
|
|
93 |
|
|
|
94 |
If you get "Access token is expired" errors, make sure the date/time on your
|
|
|
95 |
server is properly synchronized with the time servers.
|