Enlight 有一個簡單的 API 可供你使用,對此歡迎提供任何回饋。
這篇文章代表 API 的第 1 版。你可以在我們的「幫助文章」中找到列出的所有版本:
Enlight API 版本
你可以使用 API 以程式化更新你的 enlight 培訓系統的許多地方。Enlight API 有限流和 API 使用限制,你可以在我們的「幫助文章」中閱讀更多資訊:
Enlight API 使用限制
這篇文章介紹了 API 的主要面向、如何使用它,並分為以下章節:
設定和測試身份驗證
為了使用 API,你需要取得可以在你的用戶個人資料上找到的 API 密鑰。你需要將其作為 `Bearer` 令牌包含在 `Authorization` HTTP 標頭中。密鑰是 32 個位元組,如下所示:
3824ac01-83ed-1aef-b124-48380def5e7f
此外,你將需要你的 enlight 子域或 enlight 域名才能取得你的 API 終端。例如:可能是 example.enlight.io
,我們將在本文中使用它。
例如:你可以透過 curl 指令執行以下步驟,以取得 API。
curl -IH "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/authenticate
這給你一個 200 OK 的空主體,如下:
HTTP/1.1 200 OK
Date: Thu, 27 Aug 2020 02:30:22 GMT
Connection: close
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8
X-Request-Id: ef230e63-dfd0-4cab-bffb-363c472cb19b
X-Runtime: 0.035810
如果沒有 200 OK,請確保你已將 `YOUR_API_KEY` 替換為 32 個位元組的 API 密鑰。 如果這仍然無法使用,請聯繫技術支援小組以排除問題。
使用課程 API
列出所有課程
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/courses
這將為你提供一系列課程,如下格式:
[
{
"id":"50edd30a-d0da-4862-ba89-02b29835c80a",
"name":"How to use the Enlight API",
"summary":"This course teaches you the enlight API",
"course_image":{
"id":"course/d8297351-f278-4e84-af89-84c4df524acd/course_image/0984231234.jpg",
"storage":"store",
"metadata":{
"md5":"2880c465167aec271ff5f28b0a1dc9dc",
"size":30146,
"filename":"how-to-use.jpg",
"mime_type":"image/jpeg"
}
},
"multiple_sign_ups":false,
"purchasable":true,
"advertised":true,
"price_cents":1000,
"price_currency":"USD",
"instructor_id":"50edd30a-d0da-4862-ba89-02b29835c80a",
"prerequisite_course_id":"798fceb7-6d65-4659-9e69-a949a370bc68",
"archived_at":null,
"created_at":"2015-06-17T12:51:08.182Z",
"updated_at":"2020-05-02T05:41:07.051Z"
}
]
在上面的回應中,它包含課程 ID、指定指導員的 ID、任何先修課程 ID 以及其他關鍵資訊,例如以美分為單位表示的價格,因此上面的 1000
表示 10.00 美元。
顯示特定的課程
可以透過在課程 API 的 ID 來顯示特定的課程,例如:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/courses/50edd30a-d0da-4862-ba89-02b29835c80a
這將為你提供課程的 JSON 物件:
{
"id":"50edd30a-d0da-4862-ba89-02b29835c80a",
"name":"How to use the Enlight API",
"summary":"This course teaches you the enlight API",
"course_image":{
"id":"course/d8297351-f278-4e84-af89-84c4df524acd/course_image/0984231234.jpg",
"storage":"store",
"metadata":{
"md5":"2880c465167aec271ff5f28b0a1dc9dc",
"size":30146,
"filename":"how-to-use.jpg",
"mime_type":"image/jpeg"
}
},
"multiple_sign_ups":false,
"purchasable":true,
"advertised":true,
"price_cents":1000,
"price_currency":"USD",
"instructor_id":"50edd30a-d0da-4862-ba89-02b29835c80a",
"prerequisite_course_id":"798fceb7-6d65-4659-9e69-a949a370bc68",
"archived_at":null,
"created_at":"2015-06-17T12:51:08.182Z",
"updated_at":"2020-05-02T05:41:07.051Z",
"checksheets": [
{
"id":"6986ac14-19a4-4b5c-953c-a37f83754240",
"course_id":"67b24850-e32f-47a4-b2bd-cf87936a2c7b",
"version":1,
"current_checksheet":false,
"published":true,
"created_at":"2020-10-18T05:34:45.866Z",
"updated_at":"2020-10-18T05:34:45.866Z"
},
{
"id":"e412869e-affe-403f-a006-47e6f1bfc668",
"course_id":"67b24850-e32f-47a4-b2bd-cf87936a2c7b",
"version":2,
"current_checksheet":true,
"published":true,
"created_at":"2020-10-18T05:34:45.866Z",
"updated_at":"2020-10-18T05:34:45.866Z"
}
]
}
更新特定的課程
你可以透過一項支援屬性來更新特定的課程:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-X PATCH \
-d '{"price_cents":"5000"}' \
https://example.enlight.io/api/v1/courses/f613fc3d-0101-44d4-86e0-0d2ef55dac9b
這將返回與成功顯示特定的課程相同的參數。如果錯誤(例如:嘗試設定為負的價格),它將返回 “ error hash”。
{"errors":{"price":["must be greater than or equal to 0"]}}
建立課程
您可以透過所有必要屬性來建立課程:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
-d '{"name":"Special Course","completion_information_html":"<p>Well done on completing your course!</p>","summary":"This course teaches you the basics","marketing_copy_html":"<p>Buy this course today!</p>","purchasable":"false","price_cents":"0"}' \
https://example.enlight.io/api/v1/courses
最少的必填字段是:
name
- 課程名稱summary
- 課程摘要marketing_copy_html
- 在購買網站上要顯示的內容completion_information_html
- 在課程結束時,有什麼要告訴學員的
這將返回與成功顯示特定的課程相同的參數。如果錯誤(例如:建立同樣的課程名稱),它將返回 “ error hash”。
{"errors":{"name":["has already been taken"]}}
取消課程
要取消課程,請使用 DELETE 方法傳遞 ID。
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X DELETE \
https://example.enlight.io/api/v1/courses/b6062c1f-e879-44e9-12ce-3bd2ecd384b9
如果成功,這將返回 200 OK 和一個空的 JSON 主體。這個過程首先取消當前註冊的任何課程,並且將其標記為已刪除。
使用查核表 API
列出所有查核表
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/checksheets
這將返回你的前 100 份的查核表表單:
[
{
"id":"6986ac14-19a4-4b5c-953c-a37f83754240",
"course_id":"67b24850-e32f-47a4-b2bd-cf87936a2c7b",
"version":1,
"current_checksheet":false,
"published":true,
"created_at":"2020-10-18T05:34:45.866Z",
"updated_at":"2020-10-18T05:34:45.866Z"
},
{
"id":"a412869e-dffe-203f-b126-52e6f1bfc668",
"course_id":"67b24850-e32f-47a4-b2bd-cf87936a2c7b",
"version":2,
"current_checksheet":true,
"published":true,
"created_at":"2020-10-18T05:34:45.866Z",
"updated_at":"2020-10-18T05:34:45.866Z"
}
]
這也會向你顯示查核表的所有版本,包含它們是否是相關課程現在使用的查核表。
顯示特定的查核表
可以透過在查核表 API 的 ID,來顯示特定的查核表,例如:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/checksheets/e412869e-affe-403f-a006-47e6f1bfc668
這將為你提供查核表的 JSON 物件,包含按照順序顯示的所有章節和步驟:
{
"course_id": "b6062c1f-e879-44e9-12ce-3bd2ecd384b9",
"created_at": "2020-10-18T05:21:42.289Z",
"current_checksheet": true,
"id": "e412869e-affe-403f-a006-47e6f1bfc668",
"published": true,
"sections": [
{
"created_at": "2020-10-18T05:21:42.279Z",
"final": false,
"id": "a1bae269-bd33-4f08-af0d-2b5956345910",
"label": null,
"name": "Section 1",
"sequence": 1,
"section_steps": [
{
"id": "48f73ba8-c013-4480-a5a9-d917f159331e",
"content_html": "What is the art of selling? ",
"conditional": false,
"label": null,
"needs_attachment": false,
"number_of_items": null,
"points": 5,
"title": "Quiz",
"type": "Steps::MultipleChoice",
"created_at": "2018-10-11T07:06:55.472Z",
"updated_at": "2018-10-11T07:06:55.472Z",
"library_item_id": null,
"organisation_id": "0ca51df6-704e-4dc4-afc7-9a4aa90e2c24",
"target_course_id": null,
"archived_at": null,
"answer_html": null,
"reject_duplicate_attempts": false,
"suggested_response": "Thank you for your answer",
"cloned_from_step_id": "072e9a9d-1c02-423e-95c6-afeca1047099",
"data": {
"choices": [
{
"name": "Answer A.",
"correct": "1"
},
{
"name": "Answer B."
},
{
"name": "Answer C."
}
],
"persist_order": false,
"selection_type": "single"
}
}
}
],
"updated_at": "2020-10-18T05:21:42.308Z"
}
],
"updated_at": "2020-10-18T05:21:42.289Z",
"version": 1
}
請注意在上述回應中,步驟資訊中包含正確答案。如果這在 JSON 回應中不需要,請使用學員 API 令牌而不是用戶 API 令牌查詢查核表,當以這種方式要求時,有關步驟和註冊內容的所有內部資訊(例如:正確答案、建議的回應等)將會從回應中刪除,且多選題將被隨機排列,如下所示:
{
"course_id": "b6062c1f-e879-44e9-12ce-3bd2ecd384b9",
"created_at": "2020-10-18T05:21:42.289Z",
"current_checksheet": true,
"id": "e412869e-affe-403f-a006-47e6f1bfc668",
"published": true,
"sections": [
{
"created_at": "2020-10-18T05:21:42.279Z",
"final": false,
"id": "a1bae269-bd33-4f08-af0d-2b5956345910",
"label": null,
"name": "Section 1",
"sequence": 1,
"section_steps": [
{
"id": "a636a972-0d1c-4603-b2c1-64027fbe09e1",
"list_source_step": null,
"possible_reference_section_step_ids": [
"5a9865e3-6fd7-4720-b88f-488cc9dd413d",
"cf6ef8a3-bcfa-4938-9afa-e87df5011761",
"fe233f06-ee24-4455-880c-71b88478f1da"
],
"step": {
"id": "48f73ba8-c013-4480-a5a9-d917f159331e",
"content_html": "What is the correct answer? ",
"conditional": false,
"label": null,
"needs_attachment": false,
"number_of_items": null,
"points": 5,
"title": "Quiz",
"type": "Steps::MultipleChoice",
"created_at": "2018-10-11T07:06:55.472Z",
"updated_at": "2018-10-11T07:06:55.472Z",
"library_item_id": null,
"organisation_id": "0ca51df6-704e-4dc4-afc7-9a4aa90e2c24",
"target_course_id": null,
"data": {
"choices": [
{
"name": "Answer B"
},
{
"name": "Answer C"
},
{
"name": "Answer A"
}
],
"persist_order": false,
"selection_type": "single"
}
}
}
],
"updated_at": "2020-10-18T05:21:42.308Z"
}
],
"updated_at": "2020-10-18T05:21:42.289Z",
"version": 1
}
使用資料庫項目 API
顯示特定的資料庫項目
可以透過在課程 API 的 ID 來顯示特定的資料庫項目,例如:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/library_items/8e016712-0472-443e-b187-a99332deac3c
這將為你提供資料庫項目的 JSON 物件:
{
"id": "8e016712-0472-443e-b187-a99332deac3c",
"author": null,
"title": "Example",
"intro_html": null,
"content_html": null,
"kind": null,
"duration": null,
"asset_host": "https://d3psjymf7uu91w.cloudfront.net",
"asset_file_url": "https://d14hmtmeb4nek6.cloudfront.net/uploads/libraryitems/pdf/8e016712-0472-443e-b187-a99332deac3c/asset_file/9a344eff6b81d7f37e765861927753e6.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAAIVDJ3DFYIBSG5TQ%2F20210413%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200413T135146Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=d8be28a418362826a998db99e234538094280fa94265f159952b8c1969a0e5aa4",
"asset_file_data": {
"id": "libraryitems/pdf/8e016712-0472-443e-b187-a99332deac3c/asset_file/9a344eff6b81d7f37e765861927753e6.pdf",
"storage": "store",
"metadata": {
"md5": "8c4e551a93d74cdadcde813da9f1533c",
"size": 58958,
"filename": "example.pdf",
"mime_type": "application/pdf"
}
},
"video_captions": null,
"type": "Pdf",
"visibility": "members",
"provide_download_link": true,
"show_in_library": true,
"published": false,
"feature_in_top_resources": false,
"public_access_key": "56e64be0668b2489495c0e2ec0508d0616fe33a85ad842334fa92072392f11e9",
"created_at": "2018-10-16T05:08:48.775Z",
"updated_at": "2021-01-29T18:41:30.270Z"
}
請注意,如果需求是由學員提出的,則上面的許多字段將無法被使用。
使用學員 API
列出所有學員
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/students
這將返回前 100 名學員表單。
[
{
"id":"82121578-afda-46ca-a2db-5b5f92bbce16",
"given_name":"Bob",
"family_name":"Example",
"email":"bob@example.com",
"external_id":"12345",
"locale":"en-US",
"time_zone":"Sydney",
"gravatar_url":"http://www.gravatar.com/avatar/6bed2cc82ac1538da3fc3312d424bb04"
}
]
對於每個附加頁面,傳遞參數 page=<number>
如下:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/students?page=2
顯示特定的學員
要顯示特定的學員,首先要取得他的 ID,然後如下方式查詢:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/students/82121578-afda-46ca-a2db-5b5f92bbce16
這將為你提供學員的特定訊息。
{
"id":"82121578-afda-46ca-a2db-5b5f92bbce16",
"given_name":"Bob",
"family_name":"Example",
"email":"bob@example.com",
"api_key":"57056867-5ea3-4adf-b411-63b4fbf4eda1"
"external_id":"12345",
"locale":"en-US",
"time_zone":"Sydney",
"gravatar_url":"http://www.gravatar.com/avatar/6bed2cc82ac1538da3fc3312d424bb04"
}
更新特定的學員
你可以透過一項支援屬性來更新特定的學員:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-X PATCH \
-d '{ "email": "sam@example.com" }'\
https://example.enlight.io/api/v1/students/82121578-afda-46ca-a2db-5b5f92bbce16
一旦完成,這將返回與「顯示特定的註冊 API 」相同的輸出。
如果有誤,會顯示:
{"errors":{"email":["can't be blank"]}}
新增學員
你可以透過所有必要屬性來新增學員:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
-d '{"given_name":"John",
"family_name":"Smith",
"email": "john@example.com"}' \
https://example.enlight.io/api/v1/students
最少的必填字段是:
given_name
- 學員的名字family_name
- 學員的姓氏email
- 學員的電子信箱地址(必須是專屬於他的)
你還可以傳遞以下附加屬性:
external_id
- 學員的名字student_account_id
- 學員的姓氏time_zone
- 學員的電子信箱地址(必須是專屬於他的)locale
- 支援的語言環境之一(en-US
,en-GB
,es-ES
,es-MX
)force_accept_invitation
- 將學員標記為已驗證(不需要點選驗證的電子郵件)assigned_password
- 將提供的密碼指定為學員的密碼language
- 學員的語言設定external_id
- 學員的 IDcancel_legacy_system
- 當學員輸入自己的信用卡時,向管理員發送一封電子郵件,允許你取消任何你現有的其他計費系統。lock
- 封鎖學員並防止他們登入
這將返回與成功顯示特定的學員相同的參數。如果錯誤(例如:新增一位與其他學員相同的電子信箱的學員),它將返回 “ error hash”。
{
"errors":{"email":["has already been taken"]}
}
刪除學員
沒有透過 API 刪除學員的方法。
使用註冊 API
列出所有註冊
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/enrollments
這將返回你的前 100 個註冊表單。
[
{
"id":"95d81367-9e78-4937-a30b-77c853e89baa",
"student_id":"82121578-afda-46ca-a2db-5b5f92bbce16",
"course_id":"9c89bc86-b7ba-4223-bbab-9feb4f408370",
"checksheet_id":"e412869e-affe-403f-a006-47e6f1bfc668",
"instructor_id":"5e0435d2-d88c-45ea-a106-d91cdcc323e8",
"enroller_id":"a2efae3a-ed33-431c-ad72-aaf1bfe8f25b",
"active":true,
"created_at":"2020-05-01T13:58:26.354Z",
"updated_at":"2020-08-08T09:59:27.172Z",
"started_at":"2020-08-08T09:57:28.816Z",
"completed_at":null,
"expires_at":"2021-05-01T13:58:26.354Z",
"custom_name":null
}
]
以上顯示了與註冊相關的所有專屬 ID,你可以使用相關的 API 查詢每個 ID。註冊員是一個特殊 ID,並與註冊學員的用戶相關,你也可以使用指導員 API 進行檢視。
對於每個附加頁面,傳遞參數 page=<number>
如下:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/enrollments?page=2
顯示特定的註冊
要顯示特定的註冊,首先要取得他的 ID,然後如下方式查詢:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/enrollments
這將為你提供有關註冊的特定資訊,也會提供與該學員註冊相關的額外內建的訊息:
{
"id":"95d81367-9e78-4937-a30b-77c853e89baa",
"student_id":"82121578-afda-46ca-a2db-5b5f92bbce16",
"course_id":"9c89bc86-b7ba-4223-bbab-9feb4f408370",
"checksheet_id":"e412869e-affe-403f-a006-47e6f1bfc668",
"instructor_id":"5e0435d2-d88c-45ea-a106-d91cdcc323e8",
"enroller_id":"a2efae3a-ed33-431c-ad72-aaf1bfe8f25b",
"active":true,
"created_at":"2020-05-01T13:58:26.354Z",
"updated_at":"2020-08-08T09:59:27.172Z",
"started_at":"2020-08-08T09:57:28.816Z",
"completed_at":null,
"expires_at":"2021-05-01T13:58:26.354Z",
"custom_name":null,
"student":{
"id":"82121578-afda-46ca-a2db-5b5f92bbce16",
"given_name":"Bob",
"family_name":"Example",
"email":"bob@example.com",
"external_id":"12345",
"locale":"en-US",
"time_zone":"Sydney",
"gravatar_url":"http://www.gravatar.com/avatar/6bed2cc82ac1538da3fc3312d424bb04"
}
}
更新特定的註冊
你可以透過一項支援屬性來更新特定的註冊:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-X PATCH \
-d '{ "expires_at": "2020-12-01T13:58:26.354Z" }' \
https://example.enlight.io/api/v1/enrollments/cb3fa2a3-ecff-4cbd-96cc-308b85e7996d
請注意,你只能透過 API 更新註冊時的指導員和到期日期。一旦完成後,這將返回到與「顯示特定註冊 API」相同的輸出。
如果有誤,會顯示:
{"errors":{"expires_at":["must be in the future"]}}
為現有的學員註冊
你可以透過一項支援屬性來為現有學員、課程和指導員註冊:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
-d '{"course_id":"f613fc3d-0101-44d4-86e0-0d2ef55dac9b",
"student_id":"82121578-afda-46ca-a2db-5b5f92bbce16",
"send_enrollment_notification": "true",
"group_ids":["e0c351c8-8516-4e42-b719-6c11f181624b"],
"instructor_id": "5e0435d2-d88c-45ea-a106-d91cdcc323e8"}' \
https://example.enlight.io/api/v1/enrollments
最少的必填字段是:
course_id
- 課程 IDstudent_id
- 學員 IDinstructor_id
- 分派給該課程的指導員 ID
可選字段是:
send_enrollment_notification
- 如果存在,將向學員發送一封電子郵件,邀請他們登入平台動態group_ids
- 學員所屬的一系列註冊群組
這將返回與成功顯示特定的註冊相同的參數。如果錯誤(例如:建立同樣的課程名稱),它將返回 “ error hash”。
{
"message":"Unable to save enrollment",
"errors":{
"course_id":["can't be blank"],
}
}
同時建立註冊和學員
只要你提供課程和指導員,你就可以同時建立註冊和學員:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
-d '{"student_given_name":"Jane",
"student_family_name":"Smith",
"student_email":"jane@example.com",
"student_external_id":"12345",
"student_password":"secret123",
"student_locale":"en-US",
"group_ids":["e0c351c8-8516-4e42-b719-6c11f181624b"],
"send_enrollment_notification": "true",
"course_id":"f613fc3d-0101-44d4-86e0-0d2ef55dac9b",
"instructor_id": "5e0435d2-d88c-45ea-a106-d91cdcc323e8"}' \
https://example.enlight.io/api/v1/enrollments
以這種方式新增學員時,最少需要的字段是:
course_id
-課程的 IDinstructor_id
- 指派給課程的指導員 IDstudent_email
- 學員的電子信箱student_given_name
- 學員的名字student_family_name
- 學員的姓氏
此外,也可以定義以下學員屬性:
student_external_id
- 學員 IDstudent_locale
- 學員支援的語言環境student_account_id
- 學生所屬的學員帳戶 IDstudent_cancel_legacy_system
- 如果你希望在學員輸入信用卡資訊時收到電子郵件
這將返回與成功顯示特定的註冊相同的參數。如果錯誤(例如:建立同樣的課程名稱),它將返回 “ error hash”。
{
"message":"Unable to save enrollment",
"errors":{
"student_email":["can't be blank"],
}
}
刪除註冊
要取消註冊,請使用 DELETE 方法傳遞 ID。
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X DELETE \
https://example.enlight.io/api/v1/enrollments/cb3fa2a3-ecff-4cbd-96cc-308b85e7996d
如果成功,這將返回 200 OK 和一個空的 JSON 物件。也將取消相關聯的註冊,將學員從課程中移除。
使用群組 API
列出所有群組
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/groups
這將返回你的前 100 名學員表單。
[
{
"id":"e0c351c8-8516-4e42-b719-6c11f181624b",
"name":"Class of 2020"
}
]
對於每個附加頁面,傳遞參數 page=<number>
如下:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/groups?page=2
顯示特定的群組
欲顯示特定的群組,首先要取得他的 ID,然後如下方式查詢:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/groups/e0c351c8-8516-4e42-b719-6c11f181624b
這將為你提供群組的特定資訊,包含他的註冊:
{
"id":"e0c351c8-8516-4e42-b719-6c11f181624b",
"name":"Class of 2020",
"enrollments": [
{
"id":"265f5058-6915-4125-aa92-cfa67aa20691",
"student_id":"5f6e867a-c510-408a-8553-41c866ea4689",
"course_id":"4805f4f3-0fb7-43c4-865c-acba8bd3cdf1",
"checksheet_id":"36abf929-22cb-4d2c-8856-9a2d7c85c34b",
"instructor_id":"24e4d370-d73d-424a-8e3e-d77d8f9d9223",
"enroller_id":"24e4d370-d73d-424a-8e3e-d77d8f9d9223",
"active":true,
"created_at":"2020-04-15T06:39:42.309Z",
"updated_at":"2020-08-27T10:12:45.529Z",
"started_at":null,
"completed_at":null,
"expires_at":"2021-04-15T00:00:00.000Z",
"custom_name":null
}]
}
更新特定的群組
你可以透過一項支援屬性來更新特定的群組:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-X PATCH \
-d '{ "name": "Class of 2021" }'\
https://example.enlight.io/api/v1/groups/e0c351c8-8516-4e42-b719-6c11f181624b
一旦完成後,這將返回與「顯示特定群組 API」相同的輸出。
如果有誤,會顯示:If there is an error, it will be displayed:
{"errors":{"name":["can't be blank"]}}
建立群組
你可以透過一項支援屬性來建立學員群組:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
-d '{ "name":"Class of 2020" }' \
https://example.enlight.io/api/v1/groups
最少的必填字段是:
name
- 群組名稱
這將返回與成功顯示特定的群組相同的參數。如果錯誤(例如:沒有為建立的群組命名),它將返回 “ error hash”。
{
"errors":{"name":["can't be blank"]}
}
刪除群組
要刪除群組,請使用 DELETE 方法傳遞 ID。
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X DELETE \
https://example.enlight.io/api/v1/groups/e0c351c8-8516-4e42-b719-6c11f181624b
如果成功,這將返回 200 OK 和一個空的 JSON 物件。也將刪除該群組,但不會影響相關聯的註冊。
使用用戶 API
列出所有用戶
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/users
這將返回你的前 100 位用戶表單。
[
{
"id":"d39e311f-018d-4c57-ba88-6c5ac76ccb15",
"given_name":"Sam",
"family_name":"Smith",
"email":"sam@example.com",
"locale":"en-US",
"role":"instructor",
"unsubscribed":false
}
]
對於每個附加頁面,傳遞參數 page=<number>
如下:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/users?page=2
顯示特定的用戶
要顯示特定的用戶,首先取得他的 ID,然後如下方式查詢:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://example.enlight.io/api/v1/users/d39e311f-018d-4c57-ba88-6c5ac76ccb15
這將為你提供用戶的特定資訊:
{
"id":"d39e311f-018d-4c57-ba88-6c5ac76ccb15",
"given_name":"Sam",
"family_name":"Smith",
"email":"sam@example.com",
"locale":"en-US",
"role":"instructor",
"unsubscribed":false
}
更新特定的用戶
你可以透過一項支援屬性來更新特定的用戶:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-X PATCH \
-d '{ "given_name": "Samuel" }'\
https://example.enlight.io/api/v1/users/d39e311f-018d-4c57-ba88-6c5ac76ccb15
一旦完成後,這將返回與「顯示特定的指導員 API」相同的輸出。
如果有誤,會顯示:
{"errors":{"given_name":["can't be blank"]}}
建立用戶
你可以透過所有必要屬性來建立用戶:
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
-d '{"role":"instructor", "given_name":"Sam", "family_name":"Smith", "email": "sam@example.com"}' \
https://example.enlight.io/api/v1/users
最少的必填字段是:
given_name
- 用戶的名字family_name
- 用戶的姓氏email
- 用戶的電子信箱地址(必須是專屬的)role
- 用戶的角色(指導員、輔導員、管理員、持有人)
這將返回與成功顯示特定的使用者相同的參數。如果錯誤(例如:新增一位與其他用戶相同的電子信箱的用戶),它將返回 “ error hash”。
{
"errors":{"email":["can't be blank"]}
}
刪除用戶
欲從你的機構中刪除用戶,請使用 DELETE 方法傳遞 ID。
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X DELETE \
https://example.enlight.io/api/v1/users/e0c351c8-8516-4e42-b719-6c11f181624b
如果成功,這將返回 200 OK 和一個空的 JSON 物件。這將從你的組織中刪除該用戶。
提交答案 API
Enlight 允許你直接透過 API 為查核表建立答案。
有 4 種類型的步驟,每一種都需要不同的方式來提交答案:
需要明確答案的步驟
這些是系統自動批改的步驟,例如:序列項目或多選題。
這些要求學員提交一個明確答案,以便系統自動將其批改為 “通過”。提交這些步驟之一的答案時,你將收到成功的回覆 (200 OK) 或錯誤請求回應 (400 Error),具體取決於答案是否批改為正確。
這些步驟包括:
多選題步驟 (單個或多個正確值)
序列項目步驟
欲提交這些問題的答案,你需要學員的 API 令牌、他們使用的註冊 ID 以及提交答案的章節步驟 ID,然後如下方式提交:
# Single Multiple Choice with "Choice 2" as correct answer
# note the content is a string
curl -H "Authorization: Bearer STUDENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
https://example.enlight.io/api/v1/answer \
-d '{"enrollment_id":"51278615-f974-4bde-b42e-31cd699e11c7",
"section_step_id":"da902bc7-72ce-4b21-90c4-44734de06af1",
"answer":{"content":"Choice 2"}}'
# Multi Multiple Choice with "Choice 2 + 1" as correct answer
# note the content is an array
curl -H "Authorization: Bearer STUDENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
https://example.enlight.io/api/v1/answer \
-d '{"enrollment_id":"51278615-f974-4bde-b42e-31cd699e11c7",
"section_step_id":"da902bc7-72ce-4b21-90c4-44734de06af1",
"answer":{"content":["Choice 1", "Choice 2"]}}'
# Sequence Items with "Item 2 then Item 1" as correct answer
# note the content is an array
curl -H "Authorization: Bearer STUDENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
https://example.enlight.io/api/v1/answer \
-d '{"enrollment_id":"51278615-f974-4bde-b42e-2a6addca9aad",
"section_step_id":"da902bc7-72ce-4b21-90c4-447143206af1",
"answer":{"content":["Item 2", "Item 1"]}}'
要求稍後批改答案的步驟
這些步驟不會自動批改為通過,但如果提供任何有效答案,則會給出成功回應 (200 OK)。 例如:一個問題步驟將要求使用者輸入一些內容,提交給指導員進行批改,但是會稍後再批改,所以只要答案內容提交,就會給出一個成功的回應讓學員繼續課程。
接著,你可以在稍後查詢 API 以查看此步驟的答案、確認它是否正確。
這些步驟包含:
分類項目步驟
排列順序步驟
上傳檔案步驟
查核步驟
列表步驟
回覆步驟
回覆(不限格式)步驟
欲提交這些問題的答案,你需要學員的 API 令牌、使用的註冊 ID 以及提交答案的章節步驟 ID,然後如下方式提交:
# Question and Unformatted Question Step with "This is my answer"
# as the student's answer, note the content is a string
curl -H "Authorization: Bearer STUDENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
https://example.enlight.io/api/v1/answer \
-d '{"enrollment_id":"51278615-f974-4bde-b42e-2a6addca9aad",
"section_step_id":"da902bc7-72ce-4b21-90c4-447143206af1",
"answer":{"content":"This is my answer"}}'
# Other step types not supported yet.
無需批改答案的步驟(只要有填寫即可通過)
如果提供任何有效答案,這些步驟會自動批改為 “通過”,並給出成功回應 (200 OK)。 這些是資訊步驟,例如:“寫下註記”或“評分“步驟,學員可以在答案欄提交他們想寫的任何內容。只要有有效內容,這些內容就會被批改為正確、並通過。
這些步驟包含:
回饋步驟
課程命名步驟
寫下註記步驟
註記和評分步驟
排列項目步驟
評分步驟
複習步驟
調查步驟
為課程評分步驟
欲提交這些問題的答案,你需要學員的 API 令牌、使用的註冊 ID 以及提交答案的章節步驟 ID,然後如下方式提交:
No API support for submitting answers to these Step types yet
不需要回答的步驟
這些步驟不需要回答,只需建立 “回答” 記錄,以便將它們標記為完成。例如:閱讀文件或觀看影片。
這些步驟包含:
所有資料庫項目 / 參考資料步驟
資訊步驟
欲提交這些問題的答案,你需要學員的 API 令牌、使用的註冊 ID 以及提交答案的章節步驟 ID,然後如下方式提交:
# All reference and information steps
curl -H "Authorization: Bearer STUDENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
https://example.enlight.io/api/v1/answer \
-d '{"enrollment_id":"51278615-f974-4bde-b42e-2a6addca9aad",
"section_step_id":"da902bc7-72ce-4b21-90c4-447143206af1"}'
查看答案
欲顯示章節步驟的答案,例如:查看提交後是否已將答案標記為正確或錯誤,你可以:
curl -H "Authorization: Bearer STUDENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X GET \
https://example.enlight.io/api/v1/answer \
-d '{"enrollment_id":"19bbb83c-2e9e-442e-b2a3-2a6addca9aad",
"section_step_id":"4e8defc7-0a8c-4ace-b4aa-447143206af1"}'
這將為你提供該章節步驟答案的明確資訊。
{
"id":"2e9f4c9d-cf43-419a-93bc-1238878058a0",
"pass_at":"2021-02-08T07:26:07.812Z",
"points":10,
"state":"passed",
"answered_at":"2021-02-08T07:26:07.815Z",
"created_at":"2021-02-08T07:26:07.815Z",
"updated_at":"2021-02-08T07:26:07.815Z",
"enrollment_id":"19bbb83c-2e9e-442e-b2a3-2a6addca9aad",
"section_step_id":"4e8defc7-0a8c-4ace-b4aa-447143206af1"
}
答案可能處於的狀態是:
未提交(已自動儲存,但尚未發送給指導員)
已提交(發送給指導員進行批改)
退回(答案不正確而被指導員退回)
通過(自動通過,或指導員通過)
任何未 “通過” 的答案都可以透過上面建立答案的方式來編輯,傳遞註冊和章節步驟 ID,將可更新答案。
啟用 Webhooks
Enlight 支援以下 Webhook,系統會將 JSON 承載傳遞到你選擇的 URL。你也可以透過你的個人資料頁面為你的 webhook 新增 URL。
結業
在課程成功結束時,註冊課程將被標記為完成,並且完成的註冊 JSON 承載將發送到 webhook。此有效承載與顯示特定的註冊 API 相同,如下所示:
{
"id":"95d81367-9e78-4937-a30b-77c853e89baa",
"student_id":"82121578-afda-46ca-a2db-5b5f92bbce16",
"course_id":"9c89bc86-b7ba-4223-bbab-9feb4f408370",
"checksheet_id":"e412869e-affe-403f-a006-47e6f1bfc668",
"instructor_id":"5e0435d2-d88c-45ea-a106-d91cdcc323e8",
"enroller_id":"a2efae3a-ed33-431c-ad72-aaf1bfe8f25b",
"active":true,
"created_at":"2020-05-01T13:58:26.354Z",
"updated_at":"2020-08-08T09:59:27.172Z",
"started_at":"2020-08-08T09:57:28.816Z",
"completed_at":"2020-08-08T09:57:28.816Z",
"expires_at":"2021-05-01T13:58:26.354Z",
"custom_name":null,
"student":{
"id":"82121578-afda-46ca-a2db-5b5f92bbce16",
"given_name":"Bob",
"family_name":"Example",
"email":"bob@example.com",
"locale":"en-US",
"time_zone":"Sydney",
"gravatar_url":"http://www.gravatar.com/avatar/6bed2cc82ac1538da3fc3312d424bb04"
}
}
新學員
當新學員在你的系統上註冊時,學員 JSON 有效承載將發送到 webhook。此有效承載與顯示特定的學員 API 相同,如下所示:
{
"id":"82121578-afda-46ca-a2db-5b5f92bbce16",
"given_name":"Bob",
"family_name":"Example",
"email":"bob@example.com",
"locale":"en-US",
"time_zone":"Sydney",
"gravatar_url":"http://www.gravatar.com/avatar/6bed2cc82ac1538da3fc3312d424bb04"
}