文件Learning Manager

Adobe Learning Manager開發人員手冊

最後更新: 2025年6月24日

概觀

Adobe Learning Manager提供RESTful API,讓開發人員能夠有效地整合及自訂應用程式或工作流程。 開發人員手冊提供如何使用這些API的指引,涵蓋驗證、資料模型以及與其他應用程式整合等主題。 此外,本指南API參考檔案可協助開發人員建立與Adobe Learning Manager各種功能互動的外部應用程式或後端工作流程,包括課程建立、追蹤學習者進度、技能對應、認證、gamification和成績單。

本手冊涵蓋下列內容:

  • OAuth2.0驗證
  • API物件模型
  • 顯示如何使用include、欄位和其他引數
  • 提供真實使用案例的端點
重要
本開發人員手冊僅涵蓋Adobe Learning Manager V2 API。 本指南中說明的所有範例、請求結構和驗證工作流程都特定於/primeapi/v2/端點。 如需舊版或已棄用API的詳細資訊,請參閱API參考檔案。

API使用案例

開發人員可以使用Learning Manager API來增強或整合Learning Manager與其他企業應用程式。 您可以使用任何技術建立網頁、案頭或行動應用程式。 開發人員可以在Learning Manager中存取應用程式資料,但部署是外部的,完全由您控制。 應用程式通常由客戶組織為他們的帳戶開發,而Adobe合作夥伴可以建立一般應用程式以供更廣泛使用。

使用OAuth 2.0進行驗證

若要安全地存取Adobe Learning Manager API,您必須使用ALM的OAuth 2.0機制進行驗證。 此程式包括註冊您的應用程式、產生授權代碼、將其交換為重新整理權杖,最後使用重新整理權杖來取得存取權杖。

註冊應用程式

將Adobe Learning Manager與外部應用程式整合,以強化多功能性。 這些步驟涉及存取整合管理員介面、註冊應用程式,以及取得使用者端ID和密碼。 從ALM產生驗證權杖(OAuth、重新整理和存取權杖),強調使用OAuth 2.0架構進行驗證和授權。 存取權杖的有效期為七天。

  1. 以整合管理員的身分登入Adobe Learning Manager。

  2. 在左窗格中選取​ Applications。

    替代文字

  3. 選取​ Register ​並新增下列資訊:

    • Application Name:輸入應用程式的名稱(最多50個字元)。

    • URL:您公司或應用程式的官方URL。 用於識別和參考。

    • Redirect Domains:指定ALM在授權後可重新導向的網域(例如http://learningmanager.adobe.com)。 您可以提及多個URL,但URL必須是有效的。

    • Description:應用程式功能的簡短說明。

    • Scopes:選取六個可用選項之一,以定義應用程式的範圍。 根據您在此處提及的選擇,您的應用程式可以存取Learning Manager API端點。 例如,如果您選擇學習者角色讀取存取權,則您的應用程式能以唯讀方式存取所有Learning Manager學習者API端點。

      • 管理員角色讀取/寫入存取權:允許應用程式以管理員身分存取或修改資料。
      • 學習者角色讀取/寫入存取權:允許應用程式存取或修改學習者的資料。
      • xAPI讀取/寫入存取權:讓應用程式可存取及傳送Experience API (xAPI)陳述式。
    • For this account only?

      • Yes — 如果您選擇[是],則其他帳戶管理員看不到該應用程式。
      • No — 如果您選擇[否],其他帳戶管理員也可以存取此應用程式,但他們需要使用應用程式ID來存取此應用程式。 應用程式ID會以Learning Manager應用程式的編輯模式產生和顯示。

      替代文字

  4. 選取​ Save ​以註冊應用程式。

    • 註冊應用程式後,可在帳戶中建立的應用程式清單中找到該應用程式。 選取應用程式,除了先前輸入的欄位外,您將會看到下列內容:
    • 應用程式ID:這是使用者端識別碼。 此ID會通知ALM要求存取權的應用程式。 它包含在API要求中,用來識別應用程式。
    • 應用程式密碼:這可用來在權杖交換步驟期間(例如,要求重新整理權杖或存取權杖時)驗證您的應用程式並驗證其身分。

取得存取權杖

從重新導向取得授權代碼

取得使用者端ID和使用者端密碼後,請使用它們來要求存取權杖,以用來驗證API呼叫。

若要開始授權代碼流程,請將使用者導向瀏覽器中的下列URL:

GET https://learningmanager.adobe.com/oauth/o/authorize?client_id=<Enter your clientId>&redirect_uri=<Enter a url to redirect to>&state=<Any String data>&scope=<one or more comma separated scopes>&response_type=CODE

當使用者授權應用程式後,Adobe Learning Manager將重新導向至指定的redirect_uri,並附加查詢引數:

https://yourapp.com/callback?code=abc123xyz

引數程式碼會與重新導向URI一起附加。

從程式碼取得重新整理Token

取得程式碼後,請使用任何API工具,並新增下列POST請求:

https://learningmanager.adobe.com/oauth/token

要求內文(x-www-form-urlencoded):

grant_type=authorization_code
&code=abc123xyz
&client_id=<your_client_id>
&client_secret=<your_client_secret>
&redirect_uri=<your_redirect_url>

回應

{

  "access_token": "eyJhbGciOiJIUzI1...",
  "refresh_token": "xTjlfz0jCk6gF1...",
  "expires_in": 604800,
  "token_type": "Bearer"

}

使用Authorization標頭中的access_token提出已驗證的API請求。

在API呼叫中使用存取權杖

使用下列專案驗證存取權杖:

GET https://learningmanager.adobe.com/oauth/token/check?access_token=<access_token>

存取權杖的有效期為七天。 七天後,您必須使用重新整理權杖產生新的存取權杖。 如果您在現有存取權杖仍然有效的情況下,從重新整理權杖產生新的存取權杖,則會傳回現有的權杖。

取得用於測試和開發的存取權杖

使用Adobe Learning Manager (ALM)代號產生工具快速建立存取代號,以用於測試和開發目的。 這些權杖僅供您在開發和偵錯階段個人使用。 請記住,測試權杖會授與您ALM資料的存取權,因此安全地處理這些資料至關重要。 切勿與他人共用您的測試Token、在生產應用程式中使用它們,或將其納入公開程式碼存放庫。 將其視為密碼,以確保您的帳戶和資料的安全。

  1. 以整合管理員身分登入Adobe Learning Manager。

  2. 選取​ Developer Resources,然後選取​ select Access Tokens for Testing and Development。

  3. 輸入您在建立應用程式以取得OAuth程式碼之後取得的​ Client ID。 然後選取​ Submit。

  4. 新增​ Client ID ​和​ Client Secret ​以取得重新整理權杖。 然後選取​ Submit。 OAuth是上一步驟中的預先填入。

  5. 新增使用者端ID和使用者端密碼以取得存取權杖。 然後選取​ Submit。

  6. 新增存取權杖並選取「提交」以取得存取權杖詳細資料。

選取​ Submit ​後,存取權杖即會驗證,且會顯示下列回應:

{
  "access_token": "access token",
  "refresh_token": "refresh token",
  "user_role": "admin",
  "account_id": "1234",
  "user_id": "123456",
  "expires_in": 604800
}

和之前一樣,測試的存取Token會在七天後過期。

使用API工具來測試端點

雖然您可以使用任何協力廠商API測試工具,但我們將使用Postman來測試端點。 本檔案中的範例使用Postman進行端點測試。

  1. 開啟Postman並建立新請求。

  2. 選取「授權」標籤。

  3. 將「驗證型別」設定為「持有人權杖」。

  4. 將您從上一節取得的存取權杖貼到「權杖」欄位中。

  5. 在Headers索引標籤中新增以下內容。

    • 索引碼:Accept
    • 值: application/json
  6. 在URL欄位中輸入您的API端點。 範例: https://learningmanager.adobe.com/learningManager/api/v2/users
    檢視Adobe Learning Manager API參考以取得詳細資訊。

  7. 選取「傳送」以提出API請求。

API型別

管理API

Adobe Learning Manager的管理員API可讓管理員大規模自動化及管理學習作業。

使用管理API,開發人員可以:

NOTE
此清單並非詳盡無遺。
  • 管理使用者和群組:建立、更新和刪除使用者,或將它們指派給群組。
  • 註冊學習者:自動註冊課程、學習路徑或認證。
  • 追蹤學習者進度:擷取課程/模組進度、測驗分數和完成狀態。
  • 產生報表:存取學習者活動、參與和績效的資料。
  • 管理內容:建立及組織課程和學習物件。

檢視Adobe Learning Manager API參考以取得詳細資訊。

學習者API

學習者API是專為已驗證身分的使用者(學習者)所設計,可讓您存取學習者特定資訊。 這些API允許完成如下的工作:

  • 存取學習者的課程和進度
  • 擷取已獲得的徽章或認證
  • 更新學習者設定檔資訊
  • 檢視與已完成課程相關的技能

關鍵點:

  • 這些API需要經過驗證的使用者權杖,以確保資料安全性和隱私權。
  • API適用於使用者已完整註冊及登入的情況,而非匿名或共用使用者。

檢視Adobe Learning Manager API參考以取得詳細資訊。

API設計和常用引數

這些API可讓開發人員存取重要的Learning Manager資源,例如使用者、課程、技能、認證和學習計畫。 它遵循REST原則,使用HTTP方法(GET、POST、PUT、DELETE)進行資料作業。

方法
GET, PUT, POST, DELETE
格式
application/vnd.api+json, application/json。 深入瞭解常見的MIME型別。
基礎URL
https://learningmanager.adobe.com/primeapi/v2/

通用引數

參數
用途
包含
透過一次呼叫取得相關資源。
欄位
選取特定屬性以減少裝載。
篩選
縮小結果(例如,依ID、名稱)
sort
排序結果。
頁面[限制],頁面[位移]
分頁支援。

以下簡要說明各項:

包含

ALM API可在建置自訂應用程式或Headless LMS時用來擷取有用的資訊。 此API端點可以進一步與其他「包含」引數一併包含,以擷取與預設所接收資料相關的其他資訊。 這些關係是資料模型關係,例如,在呼叫以取得使用者詳細資料時,您將會收到使用者資訊,以及經理ID與ALM帳戶ID的關係。 使用include引數,您可以詳細擷取其他詳細資訊以及使用者詳細資訊,例如其管理員詳細資訊和ALM帳戶詳細資訊。
簡而言之,include ​引數用於API呼叫,以擷取單一回應中的相關(連結)資源以及主要資源。 如果您想要存取巢狀或相依資料(例如課程的模組或對應至學習者的技能),而不需進行個別的API呼叫,這個函式就十分實用。

主要優點:

  • 減少多個API呼叫:避免手動要求每個相關資源。
  • 提高效率:加快開發速度、減少伺服器負載,並加快資料轉譯速度。
  • 確保資料一致性:擷取一致快照中的所有相關資料。

如何使用包含引數

將include引數附加至API URL,並指定要包含的相關實體。

通用包含路徑

包含值
說明
執行個體
傳回學習物件的所有執行個體
註冊
傳回使用者的註冊詳細資料
instances.loResources.resources
擷取執行個體內的模組和資源
supplementaryResources
傳回關聯的補充資源
skills.skillLevel.badge
擷取技能層級及其相關徽章
prerequisitedlos
包含必要的學習物件
sublos
擷取子學習物件(用於LP或認證)
subLOs.enrollment
子學習物件註冊
instances.badge
已指派完成課程例項的徽章
subLOs.subLOs.instances.loResources.resources
子LO執行個體中的深度巢狀資源

範例1

在端點中使用userID引數擷取使用者的詳細資訊

https://learningmanager.adobe.com/primeapi/v2/users/<userID>
GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>

在回應中,您可以看到資料物件與帳戶和使用者的管理員有關係。

"relationships": {
            "account": {
                "data": {
                    "id": "1010",
                    "type": "account"
                }
            },
            "manager": {
                "data": {
                    "id": "3400476",
                    "type": "user"
                }
            }
        }

使用請求中的包含引數,您可以擷取有關管理員的詳細資訊,如下所示:

GET https://learningmanager.adobe.com/primeapi/v2/users/<userid>?include=manager

範例2

若要擷取課程詳細資訊,請使用端點呼叫中的include引數。 下列端點會取得課程資訊及其關係。

GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>

這些關係會顯示在回應中,如下所示:

  • 執行個體
  • 技能
  • 作者
"relationships": {
            "authors": {
                "data": [
                    {
                        "id": "3400468",
                        "type": "user"
                    }
                ]
            },
            "instances": {
                "data": [
                    {
                        "id": "course:16444_31598",
                        "type": "learningObjectInstance"
                    }
                ]
            },
            "skills": {
                "data": [
                    {
                        "id": "course:16444_1796",
                        "type": "learningObjectSkill"
                    },
                    {
                        "id": "course:16444_3103",
                        "type": "learningObjectSkill"
                    }
                ]
            }
        }

其他關係可能包括(不存在於上述回應中):

  • prerequisitedlos
  • supplementalLOs
  • supplementaryResources

若要取得例項和技能的詳細資料,請在include引數中加入「例項,技能」。

GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances,skills

例如,現在,如果您想要擷取更多與課程例項相關的資料,例如loResources (課程的模組資訊),請套用loResources作為巢狀包含。

GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances.loResources

此外,將技能和執行個體與巢狀包含結合。

GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances,instances.loResources,skills

其他包含篩選器

欄位

API物件的屬性和關係稱為「欄位」。 使用欄位作為API呼叫中的引數,以從模型中擷取特定屬性。 如果沒有Fields引數,API呼叫會擷取所有可用的屬性。

例如,在下列API呼叫中,欄位[skill]=name會單獨擷取技能模型的name屬性。

GET https://learningmanager.adobe.com/primeapi/v2/users/3400490/userSkills/3400490_1796_1?include=skillLevel.skill&fields[skill]=name

分頁

API分頁是一種在API中使用的技術,可將大型資料集分成較小、可管理的區塊(稱為頁面),而不是在單一回應中傳回整個資料。

分頁可減少使用者端與伺服器的負載、限制回應大小以避免伺服器瓶頸,或適用於在表格中顯示資料或一次列出一個頁面。

ALM API分頁如何運作

ALM API透過下列引數支援分頁:

  • page[limit]:每頁的記錄數。
  • page[offset]:要略過的記錄數。
  • page[cursor]:下一組結果的指標。 游標式分頁不使用位移式分頁(略過一些記錄),而是使用從API傳回的唯一標籤來擷取結果的下一頁。

以下說明如何在API中使用分頁:

頁面[限制]

雖然https://learningmanager.adobe.com/primeapi/v2/users在單一呼叫中傳回所有使用者和相關資訊,但使用page[limit]會將結果數限製為指定的值。

若要在單一呼叫中僅傳回5筆使用者記錄,請使用下列API:

GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5

頁面[位移]

使用此API呼叫傳回三個使用者記錄、略過前五個使用者,然後從第六個使用者開始。

GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=3&page[offset]=5

page[cursor]

  1. 首先,請求第一頁,限製為5。

    GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5
    
  2. 從連結複製游標值。下一個,並在下一個要求中使用:

    "links": {
        "self": "https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5",
        "next": "https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5&page[cursor]=3400482"
     }
    
  3. 傳送下列請求:

    GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5&page[cursor]=3400482
    

這會傳回下一組10筆記錄,從上一頁的最後一個專案之後開始。

篩選

篩選引數可讓您根據一或多個欄位值縮小API結果的範圍。

Adobe Learning Manager API提供篩選引數的不同變數,以縮小回應。

檢視Adobe Learning Manager API參考以取得詳細資訊。

此範例說明如何透過篩選引數使用端點,篩選學習者已註冊的工作協助:

GET https://learningmanager.adobe.com/primeapi/v2/users/3400480/enrollments?filter.loTypes=jobAid

sort

sort引數用來根據一或多個欄位,以遞增或遞減順序排序API結果。

Adobe Learning Manager提供各種排序選項,用於排序API回應。 檢視Adobe Learning Manager API參考以取得詳細資訊。

延伸上一個範例,您現在會依遞增順序註冊日期,將使用者的學習計畫註冊排序。

GET https://learningmanager.adobe.com/primeapi/v2/users/3400480/enrollments?filter.lotypes=learningProgram&sort=dateEnrolled

API模型概觀

Adobe Learning Manager API可讓開發人員以RESTful資源的形式存取Learning Manager物件。 每個API端點代表資源,通常是Badge之類的物件例項或這類物件的集合。 開發人員接著會使用HTTP動詞(例如PUT、GET、POST和DELETE)對這些物件(集合)執行CRUD操作。

學習計畫
課程
subLOs.prerequisiteLOs.enrollment

subLOs.subLOs.prerequisiteLOs.enrollment

subLOs.enrollment.loResourceGrades

subLOs.subLOs.enrollment.loResourceGrades

subLOs.subLOs.instances.loResources.resources.room

subLOs.instances.loResources.resources.room

subLOs.supplementaryResources

subLOs.enrollment

SubLOs.enrollment.loInstance.loResources.resources

subLOs.supplementaryLOs.instances.loResources.resources
instances.enrollment.loResourceGrades

enrollment.loInstance.loResources.resources
prerequisiteLOs

作者

instances.loResources.resources

supplementalLOs.instances.loResources.resources

supplementalResources

instances.badge

skill.skillLevel.skill{1Level.skill{1Resources.instances.instances.roles.roles.roles.rocle{111111111110}例項.lo
Learning Manager物件
說明
帳戶
封裝Learning Manager客戶的詳細資料。
徽章
徽章是學習者在課程中完成特定里程碑時獲得的成就象徵。
目錄
目錄是學習物件的集合。
使用者
使用者是Learning Manager中的關鍵模型。 使用者通常是組織的內部或外部學習者,負責使用學習物件。 但是,他們可能會扮演其他角色,例如作者和經理以及學習者角色。 使用者ID、型別、電子郵件是一些內嵌屬性。
resource
這可用來模型化模組要封裝的每個內容資源。 所有封裝在「學習資源」中的資源在學習目標方面是相同的,但在傳遞型別或內容地區設定方面則各有不同。
userNotification
此模型包含與學習者相關的通知資訊。
userSkill
UserSkill指出單一使用者已習得多少單一技能等級。
userBadge
UserBadge將單一徽章與單一使用者建立關聯。 它包含詳細的資訊,例如完成時間、assertionUrl等。
技能
技能模型包含層次與學分。 學習者可在完成相關課程後習得技能。
skillLevel
技能水準包含一或多個課程,要用於取得水準及其相關學分。
學習物件
學習物件是使用者可註冊和學習的各種物件的抽象概念。 Learning Manager目前提供四種型別的學習物件 — 課程、認證、學習計畫和工作輔助。
learningObjectInstance
學習物件的特定例項。
learningObjectResource
這等同於模組的概念。 課程由一個或多個模組組成。 在Learning Manager中,模組可以各種相同的方式提供。 因此,loResource基本上會封裝所有對等資源。
loResourceGrade
這會封裝使用者在其註冊的學習物件內容中使用特定資源的結果。 它包含使用者在資源中花費的持續時間、使用者進行的進度百分比、通過/失敗狀態以及使用者在任何相關測驗中獲得的分數等資訊。
行事曆
行事曆物件是使用者可註冊的近期教室或虛擬教室課程清單。
l1FeedbackInfo
L1意見包含學習者針對學習物件相關意見問題所提供的回答。 如果設定為收集學習者的這類意見回饋,通常會在使用者完成學習物件後收集這類回饋。
註冊
此抽象概念會封裝與交易相關的詳細資訊,代表特定使用者對特定學習物件執行個體的指派。

學習者API和端點

以下是使用學習者資料的關鍵API端點。 這些API可指導開發人員與學習者資訊互動、追蹤進度、管理註冊及擷取課程內容。

擷取所有學習者的詳細資訊

擷取學習者詳細資訊(名稱、電子郵件、UUID、使用者設定檔等)。 使用API列出帳戶中的所有學習者。

GET https://learningmanager.adobe.com/primeapi/v2/users

擷取特定學習者的詳細資訊

如果您想要依ID檢視學習者的設定檔,請使用下列API進行呼叫。

GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>

列出所有課程、學習計畫、工作輔助和認證

擷取學習者已註冊、已完成或已由管理員啟用的所有學習物件的詳細資訊。

GET https://learningmanager.adobe.com/primeapi/v2/learningObjects

取得特定學習物件的詳細資料

取得學習物件的詳細資訊。 其中包括建立日期、發佈日期、更新日期和其他資訊。

GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<LearningObjectID>

擷取連結至課程的技能清單

顯示指派給帳戶中所有學習者的技能。

GET https://learningmanager.adobe.com/primeapi/v2/skills

取得技能等級和徽章資訊

檢查學習者在技能型學習歷程中的進度。

GET https://learningmanager.adobe.com/primeapi/v2/skills/<skillID>?include=levels

為帳戶建立的所有徽章清單

呼叫以下端點,以擷取為組織內的帳戶建立的所有徽章清單。

GET https://learningmanager.adobe.com/primeapi/v2/badges

擷取徽章的資訊

取得有關徽章的詳細資訊,包括徽章名稱、徽章影像URL和徽章的狀態。

GET https://learningmanager.adobe.com/primeapi/v2/badges/<skillID>

這會產生以下回應:

{
    "links": {
        "self": "https://learningmanager.adobe.com/primeapi/v2/badges/499"
    },
    "data": {
        "id": "499",
        "type": "badge",
        "attributes": {
            "imageUrl": "https://cpcontentsdev.adobe.com/public/account/1010/accountassets/1010/badges/test_57a5ab00555a475a8fc6671562184dc9.png",
            "name": "penguins",
            "state": "Retired"
        }
    }
}

其他API使用範例

建立使用者

  1. 使用端點:

    POST https://learningmanager.adobe.com/primeapi/v2/users
    

    處理來自API主體或JSON裝載的屬性以產生使用者,然後為使用者提供填入的個別使用者ID。

  2. 使用以下裝載作為內文:

    {
       "data": {
         "type": "user",
         "attributes": {
          "email": "bob@example.com",
           "name": "Bob",
           "userType": "INTERNAL"
         }
       }
     }
    

有三個必要的屬性:

  • 電子郵件:使用者的電子郵件識別碼。 每個使用者的此值應該都是唯一的。
  • name:使用者的名稱。
  • userType:目前,僅能使用此端點新增內部使用者。 userType應為「INTERNAL」。

系統會顯示下列回應:

{
  "links": {
      "self": "https://learningmanager.adobe.com/primeapi/v2/users"
  },
  "data": {
      "id": "13386404",
      "type": "user",
      "attributes": {
          "avatarUrl": "https://cpcontents.adobe.com/public/images/default_user_avatar.svg",
          "email": "bob@example.com",
          "name": "Bob",
          "pointsEarned": 0,
          "pointsRedeemed": 0,
          "preferredResolution": "AUTO",
          "profile": "Employee",
          "roles": [
              "Learner"
          ],
          "state": "ACTIVE",
          "userType": "Internal",
          "userUniqueId": "bob@example.com"
      },
      "relationships": {
          "account": {
              "data": {
                  "id": "1010",
                  "type": "account"
              }
          },
          "manager": {
              "data": {
                  "id": "3400468",
                  "type": "user"
              }
          }
      }
  }
}

刪除使用者

  1. 取得您要刪除之使用者的使用者ID。

    GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>
    
  2. 然後使用DELETE,進行下列呼叫:

    DELETE https://learningmanager.adobe.com/primeapi/v2/users/<userID>
    

204回應隨即出現。 204回應代碼表示成功,沒有任何可傳回的內容。 伺服器已成功處理請求,但沒有資料可提供給使用者端。

擷取使用者的詳細資料後,使用者的狀態現在是​ DELETED。

更新使用者詳細資訊

  1. 使用v2 API更新使用者的使用者詳細資訊。 學習者可以修改個人資料、uiLocale、contentLocale、時區。 對於大型帳戶,這些是非同步呼叫。 有許多其他使用者屬性可以使用此API端點進行更新。 使用/users/{id}端點,其中id是要更新其詳細資訊之使用者的使用者ID。
PATCH https://learningmanager.adobe.com/primeapi/v2/users/<userID>

在要求之裝載中新增下列內容,以更新上一節中識別碼為<userID>的使用者。

變更承載中的任何欄位。

{
    "data": {
        "id": "3400468",
        "type": "user",
        "attributes": {
            "avatarUrl": "https://cpcontents.adobe.com/public/images/default_user_avatar.svg",
            "binUserId": "3e6d571f-3956-44db-be69-8e458bde649f",
            "bio": "Manager",
            "contentLocale": "de-DE",
            "email": "user@example.com",
            "enrollOnClick": true,
            "fields": {
                "Web": "Web",
                "newfororder": "newvalue",
                "location": "New",
                "test1": "b"
            },
            "gamificationEnabled": true,
            "lastLoginDate": "2025-04-30T09:30:51.000Z",
            "metadata": {
                "level": "5",
                "expertise": "java",
                "sport": "tennis"
            },
            "name": "John Adams",
            "pointsEarned": 8600,
            "pointsRedeemed": 0,
            "preferredResolution": "AUTO",
            "profile": "Employee",
            "roles": [
                "Learner",
                "Admin",
                "Author",
                "Instructor",
                "Integration Admin",
                "Manager"
            ],
            "state": "ACTIVE",
            "timeZoneCode": "213",
            "uiLocale": "en-US",
            "userType": "Internal",
            "userUniqueId": "user@example.com"
        },
        "relationships": {
            "account": {
                "data": {
                    "id": "1010",
                    "type": "account"
                }
            }
        }
    }
}

進行呼叫後,會更新使用者的詳細資料。

建立外部設定檔

外部設定檔是指為外部學習者建立的使用者設定檔,通常是不屬於組織內部使用者群的個人。 這些學習者可能包括客戶、合作夥伴、廠商、加盟商或臨時承包商,他們需要存取組織提供的培訓或認證計畫。

  1. 使用下列端點:

    POST https://learningmanager.adobe.com/primeapi/v2/externalProfiles
    
  2. 使用以下裝載作為內文:

{
    "data": {
      "type": "externalProfile",
      "attributes": {
        "name": "Jonas Albertson",
        "expiry": "2027-12-31T18:29:59.000Z",
        "managerEmail": "jonas@acme.com",
        "seatLimit": 10
      }
    }
}

裝載有下列屬性:

  • name:外部使用者的名稱。
  • 有效期:使用者在Adobe Learning Manager中註冊的到期日(ISO-8601格式)。
  • managerEmail:合作夥伴組織中使用者經理的電子郵件地址。
  • seatLimit:合作夥伴組織允許的席位數。

進行呼叫後,您會收到下列回應:

{
    "links": {
        "self": "https://learningmanager.adobe.com/primeapi/v2/externalProfiles"
    },
    "data": {
        "id": "18805",
        "type": "externalProfile",
        "attributes": {
            "accessKey": "8gte2ne7f4r14",
            "enabled": true,
            "expiry": "2027-12-31T18:29:59.000Z",
            "managerEmail": "jonas@acme.com",
            "name": "Jonas Albertson",
            "seatLimit": 10,
            "url": "https://learningmanager.adobe.com/eplogin?groupid=18805&accesskey=8gte2ne7f4r14"
        }
    }
}

這表示外部使用者已成功新增至Adobe Learning Manager。 傳送回應使用者的URL,讓使用者可透過該URL在平台上註冊。

使用使用者ID和管理員詳細資料擷取使用者報告

可以直接從使用者介面(Admin > Users > Internal)下載使用者報告。 但是,報告不會傳回使用者ID和相關經理的詳細資訊。
使用管理員的工作API,您可以擷取詳細資訊。

  1. 將下列裝載新增至作業API。

    {
        "data": {
            "type": "job",
            "attributes": {
                "description": "description of your choice",
                "jobType": "generateUsers",
                "payload":{
                    "expandMetadata":true
                }
            }
       }
    }
    
  2. 使用以下端點。

    POST https://learningmanager.adobe.com/primeapi/v2/jobs
    
  3. 從回應中復製作業ID。

    {
        "links": {
            "self": "https://learningmanager.adobe.com/primeapi/v2/jobs"
        },
        "data": {
            "id": "43118",
            "type": "job",
            "attributes": {
                "dateCreated": "2025-05-26T06:35:35.000Z",
                "description": "description of your choice",
                "jobType": "generateUsers",
                "payload": {
                    "expandMetadata": true
                },
              "status": {
                    "code": "Submitted"
                }
            }
        }
    }
    

    回應中會顯43118作業ID。

  4. 複製ID後,請使用工作API中的ID來下載報表。

    GET https://learningmanager.adobe.com/primeapi/v2/jobs/43118
    
  5. 從回應中複製S3 URL。

  6. 在瀏覽器中貼上URL。 瀏覽器會提示您儲存或開啟CSV檔案。 將檔案儲存在電腦上。
    下載的檔案包含下列各欄:

internalUserID、userEmail、customerDefinedUniqueUserId、名稱、managerEmail、userType、狀態、excludedFromGamification、pointsEarned、設定檔、角色、dateCreated、lastLoginDate、dateDeleted、uiLocale、contentLocale、timeZoneCode、userSource、群組、作用欄位、中繼資料,以及lastSocialActivityDate。

使用工作API產生徽章

  1. 取得組織中使用者的徽章清單。 使用下列端點:

    GET https://learningmanager.adobe.com/primeapi/v2/users/3400476/userBadges
    

    其中3400476是使用者ID。

  2. 從回應中複製徽章ID。 例如,3400476_759_COMPETENCY_1796_1是徽章識別碼。

    {
     "id": "3400476_759_COMPETENCY_1796_1",
     "type": "userBadge",
     "attributes": {
         "assertionUrl": "https://cpcontentsdev.adobe.com/public/accountassets/1010/badges/assertions/a99566b5aa8f4cfa92380581733c63a9_1626278856926.json",
         "dateAchieved": "2016-02-25T08:45:25.000Z",
         "modelType": "skillLevel"
     },
     "relationships": {
         "badge": {
             "data": {
                 "id": "759",
                 "type": "badge"
             }
         },
         "learner": {
             "data": {
                 "id": "3400476",
                 "type": "user"
             }
         },
         "model": {
             "data": {
                 "id": "1796_1",
                 "type": "skillLevel"
             }
         }
     }
    }
    
  3. 建立有效負載並在有效負載中指定徽章ID。 裝載範例如下:

    {
     "data": {
         "type": "job",
         "attributes": {
             "description": "Acme Corp Badge",
             "jobType": "generateUserBadge",
             "payload": {
                 "userBadgeId": "3400476_759_COMPETENCY_1796_1"
             }
         }
     }
    }
    

    進行呼叫後,您會在回應中取得工作ID。

  4. 從回應中取得作業ID,並使用下列端點中的作業ID進行呼叫。

    GET https://learningmanager.adobe.com/primeapi/v2/jobs/<jobsID>
    
  5. 從回應中複製徽章URL,並在瀏覽器中開啟URL。 憑證將下載為PDF。

在Adobe Learning Manager中建立使用者

POST /users端點可協助您使用Headless模式建立使用者。 建立包含詳細資訊的使用者,例如Adobe Learning Manager原生使用者介面中的註冊程式。

例如,

POST https://learningmanager.adobe.com/primeapi/v2/users

將下列內文新增至請求中:

{
   "data":
     {
       "type": "user",
       "attributes": {
         "bio": "",
         "contentLocale": "fr-FR",
         "email": "user@work.com",
         "enrollOnClick": true,
         "fields": {
           "Learning Categories": [
             "Business"
           ],
           "Categories": "IT"
         },
         "gamificationEnabled": true,
         "name": "Test User",
         "profile": "Engineer",
         "userType": "INTERNAL",
         "userUniqueId": "user@work.com"
       },
       "relationships": {
         "account": {
           "data": {
             "id": "108079",
             "type": "account"
           }
         }
         }
       }
    }

進行呼叫後,會顯示下列回應:

{
    "links": {
        "self": "https://learningmanager.adobe.com/primeapi/v2/users"
    },
    "data": {
        "id": "13385627",
        "type": "user",
        "attributes": {
            "avatarUrl": "https://cpcontents.adobe.com/public/images/default_user_avatar.svg",
            "email": "user@work.com",
            "name": "Test User",
            "pointsEarned": 0,
            "pointsRedeemed": 0,
            "preferredResolution": "AUTO",
            "profile": "Engineer",
            "roles": [
                "Learner"
            ],
            "state": "ACTIVE",
            "userType": "Internal",
            "userUniqueId": "user@work.com"
        },
        "relationships": {
            "account": {
                "data": {
                    "id": "1010",
                    "type": "account"
                }
            },
            "manager": {
                "data": {
                    "id": "3400468",
                    "type": "user"
                }
            }
        }
    }
}

新使用者將新增至Adobe Learning Manager。

發佈L1意見回饋

  1. 擷取學習者的課程、例項和註冊資料。 使用下列端點:

    GET /enrollments
    
  2. 檢查是否針對課程例項啟用L1意見回饋。

    GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<loID>/instances/<loInstanceID>/l1Feedback
    
  3. 提交L1意見回饋。

    POST /enrollments/{id}/l1Feedback
    

必要裝載範例:

{
    "data": {
      "id": "course:7454218_10333537_11257863",
      "type": "feedback",
      "attributes": {
        "questions": [
          {
            "answer": "8",
            "questionId": "1",
            "mandatory": true,
            "questionType": "scaleTen"
          }
        ],
        "score": 80
      }
    }
  }

擷取課程的模組層級資訊

  1. 依ID擷取學習物件的詳細資料。

    GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<loID>
    
    {
     "links": {
         "self": "https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899"
     },
     "data": {
         "id": "course:1171899",
         "type": "learningObject",
         "attributes": {
             "authorNames": [
                 "James Adams"
             ],
             "dateCreated": "2017-11-01T15:28:09.000Z",
             "datePublished": "2017-11-01T15:28:20.000Z",
             "dateUpdated": "2017-11-01T15:28:20.000Z",
             "duration": 60,
             "effectiveModifiedDate": "2017-11-01T15:28:20.000Z",
             "effectivenessIndex": 0,
             "enrollmentType": "Self Enroll",
             "hasOptionalLoResources": false,
             "hasPreview": false,
             "isExternal": false,
             "isMqaEnabled": false,
             "isPrerequisiteEnforced": false,
             "isSubLoOrderEnforced": false,
             "loFormat": "Self Paced",
             "loResourceCompletionCount": 3,
             "loType": "course",
             "moduleResetEnabled": false,
             "state": "Published",
             "unenrollmentAllowed": true,
             "catalogLabels": [
                 {
                     "catalogLabelValueIds": [
                         {
                             "name": "Sales",
                             "id": "catalogLabel:13_31"
                         }
                     ],
                     "description": "",
                     "mandatory": false,
                     "name": "Department",
                     "values": [
                         "Sales"
                     ]
                 }
             ],
             "localizedMetadata": [
                 {
                     "locale": "en-US",
                     "name": " Test course 2"
                 }
             ],
             "rating": {
                 "averageRating": 0,
                 "ratingsCount": 0
             }
         },
         "relationships": {
             "authors": {
                 "data": [
                     {
                         "id": "3400468",
                         "type": "user"
                     }
                 ]
             },
             "instances": {
                 "data": [
                     {
                         "id": "course:1171899_2067352",
                         "type": "learningObjectInstance"
                     }
                 ]
             },
             "skills": {
                 "data": [
                     {
                         "id": "course:1171899_1797",
                         "type": "learningObjectSkill"
                     }
                 ]
             }
         }
     }
    }
    
  2. 使用include引數來擷取下列專案:

    a.列出學習物件的所有模組。

    GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899?include=instances.loResources
    

    b.列出模組中的所有內容。

    GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899?include=instances.loResources.resources
    

檢查模組進度

  1. 使用課程ID從目錄中擷取學習物件。

    GET https://learningmanager.adobe.com/primeapi/v2/learningObjects?page[limit]=10&filter.loTypes=course&sort=name&filter.ignoreEnhancedLP=true&id=<courseID>
    
  2. 使用註冊ID取得學習者的註冊詳細資料。

    GET https://learningmanager.adobe.com/primeapi/v2/enrollments/<enrollmentID>
    

    從回應中複製學習物件資源等級ID。

  3. 在下列端點中使用ID。

    GET https://learningmanager.adobe.com/primeapi/v2/loResourceGrades/<courseResourceGradeID>
    

您會在回應中取得模組進度的相關資訊。

實施學習者模擬

使用Adobe Learning Manager作為後端實作Headless LMS時,組織可能需要支援人員來模擬學習者,以進行疑難排解或尋求協助。 API導向的模擬方法可確保安全存取,同時維護學習者憑證的機密性,並支援工作階段狀態的無縫轉換。

Adobe Learning Manager (ALM)透過專用的API,促進學習者在Headless LMS環境中的模擬。 此功能可讓支援人員暫時接手學習者的身分,讓他們診斷問題、測試功能,或透過模擬學習者的體驗提供實作協助。 使用快取的管理存取權杖來啟用模擬,該權杖會用於以程式設計方式產生學習者存取權杖。 此程式可讓系統以學習者身分登入般運作。

IMPORTANT
使用者必須請求特殊的API存取權才能使用此功能,而且系統必須處理工作階段切換、授權和其他指標,以確保模擬期間的透明度和責任制。

API端點詳細資料

POST /oauth/learnerToken

完整URL範例

https://learningmanager.adobe.com/oauth/o/learnerToken?learner_email=foo@acme.com&force=false

查詢引數:

  • 學習者電子郵件: (字串)要模擬的學習者電子郵件。
  • force: (布林值)如果新權杖存在,是否強制產生新權杖。

要求內文:

{
    "client_id": "your-client-id",
    "client_secret": "your-client-secret",
    "refresh_token": "your-admin-refresh-token"
}

範例回應:

{
    "access_token": "generated-token",
    "refresh_token": "new-refresh-token",
    "user_role": "learner",
    "account_id": "123456",
    "user_id": "7891011",
    "expires_in": 604800
}

範例cURL:

curl --location --request POST 'https://learningmanager.adobe.com/oauth/o/learnerToken?learner_email=foo@acme.com&force=false' \
--header 'Content-Type: application/json' \
--data-raw '{
  "client_id": "xxxx",
  "client_secret": "xxxx",
  "refresh_token": "xxxx"
}'

產生學習者成績單

錯誤碼

HTTP狀態
含義
疑難排解
400
錯誤請求
檢查請求中是否有遺漏或格式錯誤的引數。 驗證必填欄位和正確的格式。 例如,篩選器、欄位或包含引數的語法無效。
401
未獲授權的無效或遺失權杖
確保您的存取權杖正確,並包含在授權標頭中。 確認權杖為使用中。 在請求權杖時,請使用正確的使用者端ID和使用者端密碼。
403
已禁止。 無存取權
您沒有存取資源的許可權。 確認您的Token具有正確的範圍(admin:read、learner:write等)。
404
找不到資源
端點或資源ID不正確或不存在。 確定資源存在於引數清單中。
406
不接受 — Accept標頭不正確
將此標頭新增至您的請求:接受: application/vnd.api+json
Adobe Learning Manager API需要此內容型別為必填。
500
內部伺服器錯誤
這是伺服器端的問題。 請稍後重試,如果問題仍然存在,請向Adobe Learning Manager支援團隊回報。
recommendation-more-help
d5e5961a-141b-4c77-820e-8453ddef913d