LTI Pro supports creating and associating a meeting via API. A course meeting can be created programmatically via LTI Pro API and then auto-associated with an LMS course. This API is a combination of Zoom's REST API (Create meeting) and LTI Pro API (BulkImport).
This article covers:
When using this API to create and associate a meeting with a course, a calendar event will be added to the LMS if the calendar is integrated with LTI Pro.
Notes:
POST /meeting/createAndAssociate
--header 'X-Lti-Signature: H-nOALLKJOT5i56RRKE5ehCZk9A'
key=KLAIJC9OTI2Hm-vxn3UVHK×tamp=1634769623355
“key=KLAIJC9OTI2Hm-vxn3UVHK×tamp=1634769623355&userId=12dd589465Z=”
Note: The signature will be valid for 60 minutes.
Parameter | Type | Description |
timestamp | String | Current timestamp when the request is created. The value is in milliseconds. |
key | String |
Identifier of the LTI application that is making the request. The LTI Key value can be found on the LTI configuration page. Note: This is a required field. |
Parameter | Type | Description |
userId* | String | User ID of the host. |
contextId* | String | The Context ID for the course that the meeting is associated with. |
domain* | String | The Domain used to access the LMS. |
courseId | String | The courseId is only required to support Canvas Calendar and Conversations. |
meetingInfo* | Object |
Parameters needed to create a meeting in the Zoom web portal. Note: For more parameters and more details, please refer to Zoom's REST API (Create meeting) request body. |
topic | String | The Meeting topic (maximum of 200 characters) |
type* | Integer |
The type of meeting: 1: An instant meeting. 2: A scheduled meeting. 3: A recurring meeting with no fixed time. 8: A recurring meeting with fixed time |
start_time | Date-time |
The meeting's start time. This field is only used for scheduled and/or recurring meetings with a fixed time. This supports local time and GMT formats.
|
duration | Integer | The meeting's scheduled duration in minutes. This field is only used for scheduled meetings. |
timezone | String |
he timezone to assign to the start_time value. This field is only used for scheduled meetings. For a list of supported timezones and their format, refer to our timezone list documentation. |
*Note: These fields are required.
Content-Type: application/json
{
"userId": "xxxxxx@zoom.us",
"meetingInfo": {
"topic": "meeting1",
"type": 2,
"start_time": "2022-03-25T07:32:55Z",
"duration": 30,
"timezone": "America/New_York"
},
"courseId": "396",
"contextId": "0f978981bb1184ba5f9e34839f045c4476d30737",
"domain": "https://somelmsdomain.com"
}
Parameter | Type | Description |
status | Boolean |
|
result | Object | API response result body. |
id | String | When a meeting is created successfully but the association fails, will return the created meeting id. |
errorCode | String |
API response error code when the status is false.
|
errorMessage | String | API response error message |
The meeting was created successfully and associated successfully (HTTP Status Code - 200):
{
"status": true,
"result": {
"id": "91978833358"
}
}
The meeting was created successfully but the association failed (HTTP Status Code - 200):
{
"status": false,
"errorCode": "406",
"errorMessage": "create meeting success but associate failed:The Meeting ID, Context ID or Domain is invalid(2255).",
"result": {
"id": "91978833358"
}
}
Note: The error code 406 indicates that the meeting was successfully created in Zoom web but failed to be associated with LTI Pro.
The meeting creation failed (HTTP Status Code - 200):
{
"status": false,
"errorCode": "1001",
"errorMessage": "User does not exist: xxxxxxxx@zoom.us"
}
Note: In this scenario, the error code is not 406.