Adobe Learning Manager 개발자 설명서
개요
Adobe Learning Manager은 개발자가 애플리케이션이나 워크플로우를 효과적으로 통합하고 사용자 정의할 수 있는 RESTful API를 제공합니다. Developer Manual에서는 인증, 데이터 모델 및 다른 애플리케이션과의 통합과 같은 주제를 포함하여 이러한 API의 사용 방법에 대한 지침을 제공합니다. 또한 이 안내서 API 참조 설명서는 개발자가 강의 생성, 학습자 진행 추적, 스킬 매핑, 인증, 게임화 및 성적 증명서를 포함하여 Adobe Learning Manager의 다양한 기능과 상호 작용하는 외부 응용 프로그램 또는 백엔드 작업 과정을 만드는 데 도움이 됩니다.
이 설명서는 다음과 같은 내용을 다룹니다.
- OAuth2.0 인증
- API 객체 모델
- 포함, 필드 및 기타 매개 변수
- 실제 사용 사례
API 사용 시나리오
개발자는 Learning Manager API를 사용하여 Learning Manager를 개선하거나 다른 기업 응용 프로그램과 통합할 수 있습니다. 모든 기술을 사용하여 웹, 데스크탑 또는 모바일 앱을 만들 수 있습니다. 개발자는 Learning Manager 데이터에 액세스할 수 있지만 사용자가 앱을 사용하는 위치와 방법을 제어합니다.
OAuth 2.0을 사용한 인증
Adobe Learning Manager API에 안전하게 액세스하려면 Adobe Learning Manager의 OAuth 2.0 메커니즘을 사용하여 인증해야 합니다. 이 프로세스에는 응용 프로그램 등록, 인증 코드 생성, 새로 고침 토큰으로 교환, 마지막으로 새로 고침 토큰을 사용하여 액세스 토큰을 가져오는 과정이 포함됩니다.
응용 프로그램 등록
Adobe Learning Manager을 외부 애플리케이션과 통합하여 다용성을 개선합니다. 단계는 통합 책임자 인터페이스에 액세스하고, 응용 프로그램을 등록하고, 클라이언트 ID 및 시크릿을 얻는 것입니다. Adobe Learning Manager에서 인증, 새로 고침 및 액세스 토큰을 포함한 OAuth 2.0 인증 토큰을 생성합니다. OAuth 2.0 플로우를 사용하여 앱을 안전하게 인증하고 인증합니다. 액세스 토큰의 유효 기간은 7일입니다.
-
통합 관리자로 Adobe Learning Manager에 로그인합니다.
-
왼쪽 창에서 응용 프로그램 을 선택합니다.
-
등록 을 선택하고 다음 정보를 추가합니다.
-
응용 프로그램 이름: 응용 프로그램 이름(최대 50자)을 입력하십시오.
-
URL: 회사 또는 응용 프로그램의 공식 URL입니다. 식별 및 참조에 사용됩니다.
-
도메인 리디렉션: Adobe Learning Manager이 권한 부여 후 리디렉션할 수 있는 도메인(예: http://learningmanager.adobe.com)을 지정하십시오. 여러 개의 유효한 URL을 지정할 수 있습니다.
-
설명: 응용 프로그램의 기능에 대한 간략한 설명입니다.
-
범위: 사용 가능한 6가지 옵션 중 하나를 선택하여 응용 프로그램의 범위를 정의합니다. 여기에 언급된 귀하의 선택에 따라 귀하의 애플리케이션에 대해 Learning Manager API 엔드포인트에 액세스할 수 있습니다. 예를 들어 학습자 역할 및 읽기 액세스 를 선택한 경우 귀하의 응용 프로그램에서는 모든 Learning Manager 학습자 API 엔드 포인트에 읽기 전용으로만 액세스할 수 있습니다.
- 관리자 역할 읽기/쓰기 액세스: 응용 프로그램이 관리자로 데이터에 액세스하거나 수정할 수 있습니다.
- 학습자 역할 읽기/쓰기 액세스: 응용 프로그램이 학습자의 데이터에 액세스하거나 수정할 수 있습니다.
- xAPI 읽기/쓰기 액세스: 응용 프로그램이 xAPI(Experience API) 문에 액세스하고 보낼 수 있도록 합니다.
-
이 계정에만 해당합니까?
- 예 - [예]를 선택하면 응용 프로그램이 다른 계정 관리자에게 표시되지 않습니다.
- 아니요 - [아니요]를 선택하면 다른 계정 관리자도 이 응용 프로그램에 액세스할 수 있지만 이 응용 프로그램에 액세스하려면 응용 프로그램 ID를 사용해야 합니다. 응용 프로그램 ID는 Learning Manager 응용 프로그램 편집 모드에서 생성 및 표시됩니다.
-
-
저장 을 선택하여 응용 프로그램을 등록합니다.
- 응용 프로그램을 등록하면 계정에서 생성된 응용 프로그램 목록에서 해당 응용 프로그램을 사용할 수 있습니다. 응용 프로그램을 선택하면 이전에 입력한 필드 외에 다음이 표시됩니다.
- 응용 프로그램 ID: 클라이언트 ID입니다. 이 ID는 액세스를 요청하는 응용 프로그램을 Adobe Learning Manager에 알립니다. 앱을 식별하기 위한 API 요청에 포함됩니다.
- 응용 프로그램 암호: 이는 토큰 교환 단계(예: 새로 고침 토큰 또는 액세스 토큰 요청) 중에 앱을 인증하고 ID를 확인하는 데 사용됩니다.
액세스 토큰 획득
인증 코드 받기
클라이언트 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
매개 변수 코드가 redirect uri와 함께 추가됩니다.
코드에서 새로 고침 토큰 가져오기
코드를 받은 후 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>
액세스 토큰은 7일간 유효합니다. 7일 후에는 새로 고침 토큰을 사용하여 새 액세스 토큰을 생성해야 합니다. 기존 액세스 토큰이 아직 유효한 상태에서 새로 고침 토큰을 이용하여 새로운 액세스 토큰을 생성하면, 기존 토큰은 반환됩니다.
테스트 및 개발용 액세스 토큰 얻기
Adobe Learning Manager API로 작업할 때 개발자는 API 요청을 인증하려면 유효한 OAuth 2.0 액세스 토큰이 필요합니다. 표준 OAuth 흐름을 통해 이 토큰을 생성하는 것은 특히 빠른 테스트, 학습 또는 개발을 위해 복잡하고 시간이 많이 걸릴 수 있습니다. Adobe Learning Manager은 이 프로세스를 단순화하기 위한 토큰 생성 도구를 제공합니다.
이 도구는 다음 경우에 이상적입니다.
-
POC(개념 증명) 빌드
-
초기 단계 개발
-
API 통합 문제 해결
이러한 토큰은 개발 및 디버깅 단계 중에 개인적인 용도로 사용됩니다. 테스트 토큰은 Adobe Learning Manager 데이터에 대한 액세스 권한을 부여하므로 안전하게 처리해야 합니다. 테스트 토큰을 다른 사람과 공유하거나, 프로덕션 애플리케이션에서 사용하거나, 공용 코드 리포지토리에 포함하지 마십시오. 이를 암호처럼 취급하여 계정과 데이터의 보안을 보장합니다.
-
통합 책임자로 Adobe Learning Manager에 로그인합니다.
-
개발자 리소스 를 선택한 다음 테스트 및 개발용 액세스 토큰 선택 을 선택합니다.
-
응용 프로그램을 만든 후 받은 클라이언트 ID 을 입력하여 OAuth 코드를 받습니다. 그런 다음 제출 을 선택합니다.
-
클라이언트 ID 및 클라이언트 암호 을(를) 추가하여 새로 고침 토큰을 가져옵니다. 그런 다음 제출 을 선택합니다. OAuth는 이전 단계에서 미리 채워집니다.
-
클라이언트 ID와 클라이언트 암호를 추가하여 액세스 토큰을 가져옵니다. 그런 다음 제출 을 선택합니다.
-
액세스 토큰을 추가하고 제출 을 선택하여 액세스 토큰 세부 정보를 가져옵니다.
제출 을 선택하면 액세스 토큰이 확인되고 다음 JSON 개체를 받게 됩니다.
{
"access_token": "access token",
"refresh_token": "refresh token",
"user_role": "admin",
"account_id": "1234",
"user_id": "123456",
"expires_in": 604800
}
이전과 마찬가지로 테스트용 액세스 토큰은 7일 후에 만료됩니다.
끝점 테스트에 API 도구 사용
서드파티 API 테스트 도구를 사용할 수 있지만 Postman을 사용하여 끝점을 테스트합니다. 이 문서의 예시는 끝점을 테스트하기 위해 Postman을 사용합니다.
-
Postman을 열고 새 요청을 만듭니다.
-
인증 탭을 선택합니다.
-
인증 유형을 전달자 토큰으로 설정합니다.
-
이전 섹션에서 확보한 액세스 토큰을 토큰 필드에 붙여 넣습니다.
-
헤더 탭에서 다음을 추가합니다.
- 키: 수락
- 값: application/json
-
URL 필드에 API 엔드포인트를 입력합니다. 예: https://learningmanager.adobe.com/learningManager/api/v2/users
자세한 내용은 Adobe Learning Manager API 참조를 참조하세요. -
전송 을 선택하여 API를 요청합니다.
API 유형
관리자 API
Adobe Learning Manager의 관리자 API를 사용하면 책임자가 규모에 관계없이 학습 작업을 자동화하고 관리할 수 있습니다.
개발자는 관리 API를 사용하여 다음을 수행할 수 있습니다.
- 사용자 및 그룹 관리: 사용자를 만들고, 업데이트하고, 삭제하거나 그룹에 할당합니다.
- 학습자 등록: 강의, 학습 경로 또는 인증에 대한 등록을 자동화합니다.
- 학습자 진행률 추적: 강의/모듈 진행률, 퀴즈 점수 및 완료 상태를 검색합니다.
- 보고서 생성: 학습자 활동, 참여 및 성능에 대한 데이터에 액세스합니다.
- 콘텐츠 관리: 강의 및 학습 개체를 만들고 구성합니다.
자세한 내용은 Adobe Learning Manager API 참조를 참조하세요.
학습자 API
학습자 API는 인증된 사용자(학습자)를 위해 설계되었으며 사용자가 학습자별 정보에 액세스할 수 있도록 합니다. 이러한 API는 다음과 같은 작업을 허용합니다.
- 학습자의 강의 및 진행률 액세스
- 획득한 배지 또는 인증 가져오기
- 학습자 프로필 정보 업데이트
- 완료된 강의와 연관된 스킬 보기
주요 사항:
- 이러한 API에는 데이터 보안과 개인 정보 보호를 위해 인증된 사용자 토큰이 필요합니다.
- API는 익명 또는 공유 사용자보다는 사용자가 완전히 등록 및 로그인하는 시나리오용으로 고안되었습니다.
자세한 내용은 Adobe Learning Manager API 참조를 참조하세요.
API 디자인 및 공통 매개 변수
API를 통해 개발자는 사용자, 강의, 스킬, 인증, 학습 프로그램 등 Learning Manager 핵심 리소스에 액세스할 수 있습니다. 데이터 작업에 HTTP 메서드(GET, POST, PUT, DELETE)를 사용하여 REST 원칙을 따릅니다.
공통 매개 변수
다음은 각각에 대한 간략한 설명입니다.
포함
Adobe Learning Manager API는 사용자 정의 응용 프로그램이나 헤드리스 LMS를 빌드하는 동안 유용한 정보를 검색하는 데 사용할 수 있습니다. API 엔드포인트는 기본적으로 수신되는 데이터와 관련된 추가 정보를 검색하기 위한 추가 '포함' 매개 변수에 더 포함될 수 있습니다. 이러한 관계는 데이터 모델 관계입니다. 예를 들어 사용자 세부 정보를 가져오기 위해 전화를 거는 동안 관리자 ID와 Adobe Learning Manager 계정 ID의 사용자 정보 및 관계를 수신하게 됩니다. 포함 매개 변수를 사용하면 세부 방식으로 관리자 세부 정보 및 Adobe Learning Manager 계정 세부 정보와 같은 사용자 세부 정보와 함께 추가 세부 정보를 추출할 수 있습니다.
즉, include 매개 변수는 API 호출에서 단일 응답에서 기본 리소스와 함께 관련(연결된) 리소스를 가져오는 데 사용됩니다. 별도의 API 호출 없이 중첩된 데이터나 종속 데이터(예: 강의 모듈 또는 학습자에게 매핑된 스킬)에 액세스하려는 경우 유용합니다.
주요 이점:
- 여러 API 호출 감소: 관련된 각 리소스를 수동으로 요청할 필요가 없습니다.
- 효율성 향상: 개발 속도 향상, 서버 로드 감소, 데이터 렌더링 속도 향상
- 데이터 일관성 보장: 일관된 스냅샷에서 모든 관련 데이터를 검색합니다.
포함 매개 변수를 사용하는 방법
API URL에 include 매개 변수를 추가하고 포함할 관련 엔터티를 지정합니다.
일반적인 포함 경로
예 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"
}
]
}
}
다른 관계에는 다음이 포함될 수 있습니다(위 응답에 없음).
- prerequisiteLO
- supplementalLOs
- supplementaryResources
인스턴스 및 스킬의 세부 데이터를 가져오려면 include 매개 변수에 "instances,skills"를 포함하십시오.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances,skills
예를 들어 강의 인스턴스(예: 강의 모듈 정보)와 연관된 데이터를 추가로 검색하려면 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 호출에서 fields[skill]=name은 스킬 모델의 이름 특성만 가져옵니다.
GET https://learningmanager.adobe.com/primeapi/v2/users/3400490/userSkills/3400490_1796_1?include=skillLevel.skill&fields[skill]=name
번호 매기기
API 페이지 매김 은 전체 데이터를 한 번에 반환하지 않고, 대용량 데이터 세트를 페이지라고 하는 더 작고 관리하기 쉬운 청크로 나누는 데 API에서 사용되는 기술입니다.
페이지네이션은 클라이언트 및 서버 로드를 줄이거나, 서버 병목 현상을 방지하기 위해 응답 크기를 제한하거나, 한 번에 한 페이지씩 테이블이나 목록에 데이터를 표시하는 데 유용합니다.
Adobe Learning Manager API에서 페이지네이션이 작동하는 방식
Adobe Learning Manager API는 다음과 같은 매개 변수를 통해 페이지 매기기를 지원합니다.
- 페이지[제한]: 페이지당 레코드 수.
- 페이지[오프셋]: 건너뛸 레코드 수입니다.
- 페이지[커서]: 다음 결과 집합에 대한 포인터입니다. 오프셋 기반 페이지 매김 (많은 레코드를 건너뜀)을 사용하는 대신 커서 기반 페이지 매김에서 API에서 반환된 고유 마커를 사용하여 다음 결과 페이지를 가져옵니다.
API에서 번호 매기기를 사용하는 방법은 다음과 같습니다.
페이지[제한]
https://learningmanager.adobe.com/primeapi/v2/users이(가) 단일 호출에서 모든 사용자 및 관련 정보를 반환하는 동안 [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
페이지[커서]
-
첫 페이지를 5개로 제한하여 요청하여 시작합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5
-
links.next에서 커서 값을 복사하여 다음 요청에 사용합니다.
code language-none "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" }
-
다음 요청을 보냅니다.
code language-none 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
정렬
정렬 매개변수는 하나 이상의 필드를 기준으로 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 엔드 포인트는 리소스를 나타냅니다. 이는 일반적으로 배지와 같은 인스턴스 또는 해당 객체의 집합입니다. 개발자는 PUT, GET, POST 및 DELETE 등의 HTTP 동사를 사용하여 해당 객체(콜렉션)에서 CRUD 작업을 수행합니다.
학습자 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 사용 예
사용자 만들기
-
끝점 사용:
code language-none POST https://learningmanager.adobe.com/primeapi/v2/users
API 본문 또는 JSON 페이로드의 속성을 처리하여 사용자를 생성한 후 해당 사용자 ID가 채워진 상태로 사용자에게 제공됩니다.
-
다음 페이로드를 본문으로 사용합니다.
code language-none { "data": { "type": "user", "attributes": { "email": "bob@example.com", "name": "Bob", "userType": "INTERNAL" } } }
세 가지 필수 속성이 있습니다.
- 이메일: 사용자의 이메일 ID. 이 값은 모든 사용자에 대해 고유해야 합니다.
- 이름: 사용자의 이름입니다.
- userType: 현재는 이 엔드포인트를 사용하여 내부 사용자만 추가할 수 있습니다. userType은 "INTERNAL"이어야 합니다.
다음 JSON 개체를 받게 됩니다.
{
"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"
}
}
}
}
}
사용자 삭제
-
삭제하려는 사용자의 사용자 ID를 가져옵니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>
-
그런 다음 DELETE을 사용하여 다음과 같이 호출합니다.
code language-none DELETE https://learningmanager.adobe.com/primeapi/v2/users/<userID>
204 응답이 나타납니다. 204 응답 코드는 반환할 콘텐츠 없이 성공했음을 나타냅니다. 서버에서 요청을 처리했지만 클라이언트에 제공할 데이터가 없습니다.
사용자의 세부 정보를 검색한 후 사용자의 상태는 이제 삭제됨 입니다.
사용자 세부 정보 업데이트
- v2 API를 사용하는 사용자의 사용자 세부 정보를 업데이트합니다. 학습자는 bio, uiLocale, contentLocale, 시간대를 수정할 수 있습니다. 큰 계정의 경우 비동기 호출입니다. 이 API 엔드포인트를 사용하여 업데이트할 수 있는 다른 많은 사용자 특성이 있습니다. /users/{id} 엔드포인트를 사용합니다. 여기서 id는 세부 정보를 업데이트할 사용자의 사용자 id입니다.
PATCH https://learningmanager.adobe.com/primeapi/v2/users/<userID>
이전 섹션에서 ID가 <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"
}
}
}
}
}
전화를 걸면 사용자의 세부 정보가 업데이트됩니다.
외부 프로필 만들기
외부 프로필은 외부 학습자(일반적으로 조직의 내부 사용자 베이스에 속하지 않는 개인)를 위해 생성된 사용자 프로필을 의미합니다. 이들 학습자에는 조직에서 제공하는 교육 또는 인증 프로그램에 액세스해야 하는 고객, 파트너, 공급업체, 프랜차이즈 또는 임시 계약업체가 포함될 수 있습니다.
-
다음 엔드포인트를 사용합니다.
code language-none POST https://learningmanager.adobe.com/primeapi/v2/externalProfiles
-
다음 페이로드를 본문으로 사용합니다.
{
"data": {
"type": "externalProfile",
"attributes": {
"name": "Jonas Albertson",
"expiry": "2027-12-31T18:29:59.000Z",
"managerEmail": "jonas@acme.com",
"seatLimit": 10
}
}
}
페이로드에는 다음과 같은 속성이 있습니다.
- 이름: 외부 사용자의 이름입니다.
- 만료: 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 및 관리자 세부 정보가 포함된 사용자 보고서 추출
사용자 보고서는 관리자 사용자 인터페이스(관리자 > 사용자 > 내부)에서 직접 다운로드할 수 있습니다. 그러나 이 보고서는 사용자 ID와 관련 관리자의 세부 정보를 반환하지 않습니다.
작업 API를 사용하여 보고서를 다운로드합니다. 작업 API를 사용하면 보고서, 일괄 작업(등록 또는 배지 할당), 인증 완료 또는 배지 생성을 수행할 수 있습니다.
보고서를 다운로드하는 방법은 다음과 같습니다.
-
작업 API에 다음 페이로드를 추가합니다.
code language-none { "data": { "type": "job", "attributes": { "description": "description of your choice", "jobType": "generateUsers", "payload":{ "expandMetadata":true } } } }
-
다음 끝점을 사용하십시오.
code language-none POST https://learningmanager.adobe.com/primeapi/v2/jobs
-
응답에서 작업 ID를 복사합니다.
code language-none { "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" } } } }
응답에서 작업 ID가 43118.
-
ID를 복사한 후 작업 API에서 ID를 사용하여 보고서를 다운로드합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/jobs/43118
-
응답에서 S3 URL을 복사합니다.
-
브라우저에 URL을 붙여넣습니다. 브라우저에서 CSV 파일을 저장하거나 열라는 메시지가 표시됩니다. 파일을 컴퓨터에 저장합니다.
다운로드한 파일에는 다음 열이 포함됩니다.
internalUserID, userEmail, customerDefinedUniqueUserId, name, managerEmail, userType, state, excludedFromGamification, pointsEarned, profile, roles, dateCreated, lastLoginDate, dateDeleted, uiLocale, contentLocale, timeZoneCode, userSource, group, 활성 필드, 메타데이터 및 lastSocialActivityDate.
작업 API를 사용하여 배지 생성
-
조직의 사용자에 대한 배지 목록을 가져옵니다. 다음 엔드포인트를 사용합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users/3400476/userBadges
여기서 3400476은 사용자 ID입니다.
-
응답에서 배지 ID를 복사합니다. 예를 들어, 3400476_759_COMPETENCY_1796_1은 배지 ID입니다.
code language-none { "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" } } } }
-
페이로드를 만들고 페이로드에 배지 ID를 지정합니다. 페이로드의 예는 다음과 같습니다.
code language-none { "data": { "type": "job", "attributes": { "description": "Acme Corp Badge", "jobType": "generateUserBadge", "payload": { "userBadgeId": "3400476_759_COMPETENCY_1796_1" } } } }
전화를 걸면 응답에 작업 ID가 표시됩니다.
-
응답에서 작업 ID를 가져와 다음 끝점의 작업 ID를 사용하여 호출합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/jobs/<jobsID>
-
응답에서 배지 URL을 복사하고 브라우저에서 URL을 엽니다. 인증서가 PDF으로 다운로드됩니다.
Adobe Learning Manager에서 사용자 만들기
POST /사용자 끝점을 사용하면 헤드리스 모드를 사용하여 사용자를 만들 수 있습니다. Adobe Learning Manager의 기본 사용자 인터페이스에서 등록 프로세스와 같은 세부 정보가 포함된 사용자를 생성합니다.
For example,
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 피드백 게시
-
학습자의 강의, 인스턴스 및 등록 데이터를 검색합니다. 다음 색인을 사용합니다.
code language-none GET /enrollments
-
강의 인스턴스에 L1 피드백이 활성화되어 있는지 확인합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<loID>/instances/<loInstanceID>/l1Feedback
-
L1 피드백을 제출합니다.
code language-none POST /enrollments/{id}/l1Feedback
필수 페이로드 예:
{
"data": {
"id": "course:7454218_10333537_11257863",
"type": "feedback",
"attributes": {
"questions": [
{
"answer": "8",
"questionId": "1",
"mandatory": true,
"questionType": "scaleTen"
}
],
"score": 80
}
}
}
강의의 모듈 레벨 정보 가져오기
-
ID로 학습 객체의 세부 정보를 검색합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<loID>
code language-none { "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" } ] } } } }
-
include 매개 변수를 사용하여 다음을 읽어들입니다.
a. 학습 개체의 모든 모듈을 나열합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899?include=instances.loResources
b. 모듈의 모든 콘텐츠를 나열합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899?include=instances.loResources.resources
모듈 진행률 확인
-
강의 ID를 사용하여 카탈로그에서 학습 개체를 검색합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects?page[limit]=10&filter.loTypes=course&sort=name&filter.ignoreEnhancedLP=true&id=<courseID>
-
등록 ID를 사용하여 학습자의 등록 세부 정보를 가져옵니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/enrollments/<enrollmentID>
응답에서 학습 개체 리소스 등급 ID를 복사합니다.
-
다음 엔드포인트에서 ID를 사용합니다.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/loResourceGrades/<courseResourceGradeID>
응답에서 모듈의 진행률에 대한 정보를 얻을 수 있습니다.
학습자 대리 로그인 기능 구현
Adobe Learning Manager을 백엔드로 사용하여 헤드리스 LMS를 구현하려는 경우, 문제 해결 또는 지원을 위해 지원 담당자가 학습자를 사칭해야 할 수 있습니다. API 기반 가장 방법은 학습자 자격 증명 기밀을 유지하면서 안전한 액세스를 보장하고 세션 상태의 원활한 전환을 지원합니다.
Adobe Learning Manager은 전용 API를 통해 헤드리스 LMS 환경에서 학습자 대리 로그인 기능을 제공합니다. 이 기능을 통해 지원 담당자는 학습자의 ID를 일시적으로 확인할 수 있어 학습자의 경험을 시뮬레이션하여 문제를 진단하거나 기능을 테스트하거나 실습 지원을 제공할 수 있습니다. 가장은 프로그래밍 방식으로 학습자 액세스 토큰을 생성하는 데 사용되는 캐시된 관리자 액세스 토큰을 사용하여 활성화됩니다. 이 프로세스를 통해 시스템은 학습자로 로그인한 것처럼 작동할 수 있습니다.
API 끝점 세부 정보
POST /oauth/learnerToken
전체 URL 예
https://learningmanager.adobe.com/oauth/o/learnerToken?learner_email=foo@acme.com&force=false
쿼리 매개 변수:
- learner_email: (문자열) 가장할 학습자의 전자 메일입니다.
- 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"
}'
오류 코드
Adobe Learning Manager(Adobe Learning Manager) API로 작업할 때 개발자는 요청 중에 다양한 HTTP 오류 코드가 발생할 수 있습니다. 이러한 오류는 발생한 문제와 해결 방법에 대한 중요한 피드백을 제공합니다. 이러한 코드를 이해하면 개발자가 문제를 빠르게 해결하고, API 안정성을 향상시키며, 더 원활한 통합을 보장할 수 있습니다. 다음 표는 Adobe Learning Manager API에서 반환된 일반적인 HTTP 오류 코드에 대한 설명 및 일반적인 발생 시나리오에 대한 안내입니다. 이 섹션은 Adobe Learning Manager에 연결되는 응용 프로그램을 빌드, 테스트 또는 디버깅하는 모든 사용자에게 필수적입니다.
Adobe Learning Manager API에는 이 콘텐츠 형식이 필요합니다.