Enlight API v1

Envisage 提供一個簡單的 API 讓你管理你的帳戶

Chloe Yang avatar
作者:Chloe Yang
一週前已更新

Enlight 有一個簡單的 API 可供你使用,對此歡迎提供任何回饋。

這篇文章代表 API 的第 1 版。你可以在我們的「幫助文章」中找到列出的所有版本:

你可以使用 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 - 學員的 ID

  • cancel_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 - 課程 ID

  • student_id - 學員 ID

  • instructor_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 -課程的 ID

  • instructor_id - 指派給課程的指導員 ID

  • student_email - 學員的電子信箱

  • student_given_name - 學員的名字

  • student_family_name - 學員的姓氏

此外,也可以定義以下學員屬性:

  • student_external_id - 學員 ID

  • student_locale - 學員支援的語言環境

  • student_account_id - 學生所屬的學員帳戶 ID

  • student_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"
}

是否回答了您的問題?