Adobe Learning Managerデベロッパーマニュアル
概要
Adobe Learning Managerには、開発者がアプリケーションやワークフローを効果的に統合およびカスタマイズできるRESTful APIが用意されています。 デベロッパーマニュアルでは、認証、データモデル、他のアプリケーションとの統合などのトピックを取り上げ、これらのAPIの使用方法に関するガイダンスを提供しています。 また、このガイドAPIリファレンスドキュメントは、コースの作成、学習者の進捗状況の追跡、スキルマッピング、資格認定、ゲーミフィケーション、トランスクリプトなど、Adobe Learning Managerの様々な機能を操作する外部アプリケーションやバックエンドワークフローを作成する際に役立ちます。
このマニュアルでは、次の内容について説明します。
- OAuth2.0認証
- APIオブジェクトモデル
- 含める、フィールド、およびその他のパラメーター
- 実際の使用例
APIの使用シナリオ
開発者はLearning Manager APIを使用して、Learning Managerを他のエンタープライズアプリケーションと強化または統合できます。 任意のテクノロジーを使用して、web、デスクトップ、またはモバイルアプリを作成できます。 開発者は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読み取り/書き込みアクセス:アプリケーションがExperience API(xAPI)ステートメントにアクセスして送信できるようにします。
-
このアカウントのみですか?
- はい - [はい]を選択した場合、他のアカウント管理者がアプリケーションを見ることはできません。
- いいえ - [いいえ]を選択した場合、他のアカウント管理者もこのアプリケーションにアクセスできますが、このアプリケーションにアクセスするには、アプリケーション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
リダイレクト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"
}
認証されたAPI要求を行うには、Authorizationヘッダーのaccess_tokenを使用します。
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にログインします。
-
開発者向けリソース を選択してから、テストおよび開発用のアクセストークンを選択 します。
-
OAuthコードを取得するアプリケーションを作成した後に取得した クライアントID を入力します。 次に、送信 を選択します。
-
クライアント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を使用すると、管理者は学習オペレーションを大規模に自動化および管理できます。
Admin APIを使用すると、開発者は次の操作を実行できます。
- ユーザーとグループの管理:ユーザーを作成、更新、および削除するか、グループに割り当てます。
- 学習者の登録 :コース、学習パス、または資格認定の登録を自動化します。
- 学習者の進行状況の追跡:コースやモジュールの進行状況、クイズのスコア、完了ステータスを取得します。
- レポートの生成:学習者のアクティビティ、エンゲージメント、パフォーマンスに関するデータにアクセスします。
- コンテンツの管理:コースや学習目標を作成および整理します。
詳しくは、Adobe Learning Manager APIリファレンスを参照してください。
学習者API
学習者APIは、認証されたユーザー(学習者)向けに設計されており、学習者固有の情報にアクセスできます。 これらのAPIにより、次のようなタスクを実行できます。
- 学習者のコースおよび進捗状況へのアクセス
- 取得したバッジまたは資格認定の取得
- 学習者プロファイル情報の更新
- 完了したコースに関連付けられているスキルの表示
キーポイント:
- これらのAPIでは、認証済みユーザートークンが必要であり、データのセキュリティとプライバシーが確保されます。
- このAPIは、匿名ユーザーや共有ユーザーではなく、ユーザーが完全に登録されてログインしているシナリオを想定しています。
詳しくは、Adobe Learning Manager APIリファレンスを参照してください。
API設計と共通パラメーター
APIを使用すると、開発者はユーザー、コース、スキル、資格認定、学習プログラムなど、Learning Managerの主要リソースにアクセスできます。 RESTの原則に従い、HTTPメソッド(GET、POST、PUT、DELETE)を使用してデータを処理します。
共通パラメーター
以下に、それぞれの簡単な説明を示します。
include
Adobe Learning Manager APIを使用すると、カスタムアプリケーションやヘッドレスLMSの構築中に、役立つ情報を取得できます。 APIエンドポイントを追加の「include」パラメーターと共に含めて、デフォルトで受信されたデータと関連する追加情報を取得することもできます。 これらの関連付けはデータモデルリレーションです。例えば、ユーザーの詳細を取得するために電話をかけると、ユーザー情報と、マネージャーIDとAdobe Learning ManagerアカウントIDの関連付けが表示されます。 includeパラメーターを使用すると、マネージャーの詳細やAdobe Learning Managerアカウントの詳細などのユーザーの詳細とともに、詳細な方法で追加の詳細を抽出できます。
つまり、API呼び出しで include パラメーターを使用して、関連する(リンクされた)リソースとプライマリリソースを1つの応答で取得します。 この機能は、個別のAPI呼び出しを行わずに、コースのモジュールや学習者にマップされたスキルなど、ネストされたデータや依存データにアクセスする場合に便利です。
主なメリット:
- 複数のAPI呼び出しを削減:関連する各リソースを手動で要求する必要がなくなります。
- 効率の向上:開発の高速化、サーバー負荷の軽減、データのレンダリングの高速化を実現します。
- データの一貫性を確保:一貫性のあるスナップショット内のすべての関連データを取得します。
includeパラメーターの使用方法
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"
}
}
}
リクエストでincludeパラメータを使用すると、次に示すように、マネージャの詳細情報を取得できます。
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"
}
]
}
}
その他の関係には、次のものがあります(上記の応答には存在しません)。
- 前提条件LO
- supplementaryLOs
- supplementaryResources
インスタンスとスキルの詳細なデータを取得するには、includeパラメーターに「インスタンス,スキル」を含めます。
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances,skills
例えば、loResources(コースのモジュール情報)など、コースインスタンスに関連付けられたより多くのデータを取得する場合は、loResourcesをネストされたincludeとして適用します。
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はスキルモデルのname属性のみを取得します。
GET https://learningmanager.adobe.com/primeapi/v2/users/3400490/userSkills/3400490_1796_1?include=skillLevel.skill&fields[skill]=name
ページ設定
APIページネーションは、APIで使用される手法の1つです。データ全体を1回の応答で返すのではなく、大量のデータを小さく管理しやすいチャンク(ページ)に分割します。
ページ割り当てによって、クライアントとサーバの負荷を軽減し、応答サイズを制限してサーバのボトルネックを回避できます。また、テーブルまたはリストのデータを一度に1ページずつ表示する場合に便利です。
Adobe Learning Manager APIのページ割り付けの仕組み
Adobe Learning Manager APIは、次のようなパラメーターによるページ割り付けをサポートしています。
- ページ[制限]: 1ページあたりのレコード数。
- ページ[オフセット]:スキップするレコードの数。
- ページ[カーソル]:次の結果セットへのポインタ。 (多くのレコードをスキップする)オフセットベースのページ割り当てを使用する代わりに、カーソルベースのページ割り当てでは、APIから返された一意のマーカーを使用して結果の次のページを取得します。
APIでページ割り付けを使用する方法は次のとおりです。
ページ[制限]
https://learningmanager.adobe.com/primeapi/v2/usersは、1回の呼び出しですべてのユーザーおよび関連情報を返しますが、ページ[limit]を使用すると、結果の数が指定された値に制限されます。
1回の呼び出しで5つのユーザーレコードのみを返すには、次のAPIを使用します。
GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5
ページ[オフセット]
このAPI呼び出しを使用して、3つのユーザーレコードを返し、最初の5人のユーザーをスキップして、6番目から開始します。
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個のレコードの次のセットが返されます。
フィルター
filterパラメーターを使用すると、1つ以上のフィールド値に基づいてAPI結果を絞り込むことができます。
Adobe Learning Manager APIでは、様々なバリエーションのフィルターパラメーターを使用して応答を絞り込むことができます。
詳しくは、Adobe Learning Manager APIリファレンスを参照してください。
次の例では、学習者がエンドポイントを使用してfilterパラメータを指定し、登録した作業計画書にフィルタを適用する方法を示します:
GET https://learningmanager.adobe.com/primeapi/v2/users/3400480/enrollments?filter.loTypes=jobAid
並べ替え
sortパラメーターは、1つ以上のフィールドに基づいて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を使用すると、開発者はLearning ManagerオブジェクトにRESTfulリソースとしてアクセスできます。 各 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/usersAPI本文またはJSONペイロードから属性を処理してユーザーを生成し、続いて各ユーザーIDを入力してユーザーに提供します。
-
次のペイロードを本文として使用:
code language-none { "data": { "type": "user", "attributes": { "email": "bob@example.com", "name": "Bob", "userType": "INTERNAL" } } }
必須の属性は次の3つです。
- email:ユーザーの電子メールID。 この値は、各ユーザーに対して一意である必要があります。
- name:ユーザーの名前。
- userType:現在、このエンドポイントを使用して追加できるのは内部ユーザーのみです。 userTypeは「内部」である必要があります。
次の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、timezoneを変更できます。 大規模なアカウントの場合、これらは非同期呼び出しです。 この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
}
}
}
ペイロードには次の属性があります。
- 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とマネージャーの詳細を含むユーザーレポートを抽出します
ユーザーレポートは、管理者ユーザーインターフェイス(管理者 > ユーザー > 内部)から直接ダウンロードできます。 ただし、レポートにはユーザー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、Activeフィールド、メタデータ、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 /usersエンドポイントを使用すると、ヘッドレスモードを使用してユーザーを作成できます。 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フィードバックを投稿
-
学習者のコース、インスタンスおよび登録データを取得します。 次のヒントを使用します。
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.loResourcesb.モジュール内のすべてのコンテンツを一覧表示します。
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: (boolean)新しいトークンが存在する場合に、そのトークンを強制的に生成するかどうかを指定します。
要求本文:
{
"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では、このコンテンツタイプは厳密に必須です。