アプリケーションデベロッパーマニュアル

警告:

Learning Manager 学習プログラムの名称が、学習パスに変更となります。 この変更は 2021 年 10 月のリリースから適用され、学習パスの用語がすべての役割に反映されます。

注意:

Learning Manager V1 API は非推奨になりました。 V1 API は、2021 年 2 月 28 日をもって終了します。今後は Learning Manager を操作する際に、V2 API を使用することをお勧めします。

概要

Adobe Learning Manager は、クラウドホスト環境で学習者中心のセルフサービス学習を実現できる管理ソリューションです。Learning Manager API を使用すると、プログラムで Learning Manager リソースにアクセスして、他のエンタープライズアプリケーションと統合させることができます。アドビパートナーは、API を使用して機能を拡張したり、他のアプリケーションやサービスと統合したりすることで、Learning Manager の価値提案を高めることもできます。

使用シナリオ

デベロッパーは Learning Manager API を使用して、Learning Manager の機能を拡張した自己完結型アプリケーションを構築したり、Learning Manager を他のエンタープライズアプリケーションワークフローと統合したりできます。お好みのテクノロジーを使用して、Web アプリケーション、デスクトップクライアント、モバイルアプリを開発することもできます。 デベロッパーは、Learning Manager からアプリケーションデータにアクセスできます。開発するアプリケーションが、Learning Manager プラットフォームの外部でデプロイされるため、アプリケーションの発展に合わせてソフトウェア開発ライフサイクルをきめ細かく制御できます。通常、Learning Manager アカウントで使用するアプリケーションは、顧客組織により開発されます。それらのアプリケーションは非公開で、その特定の顧客組織にのみ対応します。Learning Manager API を使用すると、アドビパートナーが、大勢の Learning Manager のお客様にご利用いただける汎用アプリケーションを構築することも可能です。

Learning Manager API

Learning Manager API は、REST の原則に基づいており、Learning Manager オブジェクトモデルの主要な要素をアプリケーションデベロッパーに HTTP で公開します。デベロッパーは、API エンドポイントと HTTP メソッドの詳細を知らなくても、さまざまな Learning Manager オブジェクト、その属性および相互関係について理解できます。モデルを理解できたら、API リクエストと API 応答の構造に関する基本を学び、API 全体でよく使用される一般的なプログラミング用語を覚えることは有益です。

さまざまな API エンドポイントとメソッドについての詳細は、Learning Manager API ドキュメントを参照してください。

API 認証

Prime に API 呼び出しを行うアプリケーションを作成する場合は、統合管理アプリを使用してアプリケーションを登録する必要があります。 

Learning Manager API では、OAuth 2.0 フレームワークを使用して、クライアントアプリケーションを認証および承認します。 

手順

1. アプリケーションの設定

適切なエンドポイントを使用するように、クライアント ID とクライアントシークレットを使用してアプリケーションを設定できます。 アプリケーションが登録されると、clientId と clientSecret を取得できます。 Get URL は、SSO やアドビ ID などの事前設定されたアカウントを使用して、ブラウザーで Learning Manager ユーザーを認証する際に使用されます。 

GET https://captivateprime.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

認証が成功すると、ブラウザーは上記の URL に示された redirect_uri にリダイレクトします。 パラメーターコードがリダイレクト URI と共に表示されます。

2. コードを使用した更新トークンの取得

POST https://captivateprime.adobe.com/oauth/token Content-Type: application/x-www-form-urlencoded

POST リクエストの本文:

client_id:<Enter your clientId>& client_secret:<Enter your clientSecret>& code:<code from step 1>

3.更新トークンからアクセストークンを取得

アクセストークンを取得する URL: 

POST https://captivateprime.adobe.com/oauth/token/refresh Content-Type: application/x-www-form-urlencoded

POST リクエストの本文:

client_id:<Enter your clientId>& client_secret:<Enter your clientSecret>& refresh_token:<refresh token>

アクセストークンの詳細情報の確認用 URL

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

使用制限

アクセストークンは 7 日間有効です。 その後は、更新トークンを使用して新しいアクセストークンを生成する必要があります。 既存のアクセストークンが有効な場合に、更新トークンから新しいアクセストークンを生成すると、既存のトークンは返却されます。 

Learning Manager API でよく使用される用語の一部が、参考のために以下に説明されています。 

Includes

デベロッパーは、単一の API オブジェクトモデルと、そのモデルに関連付けられた複数のモデルにアクセスできます。 後続の関連するモデルにアクセスするには、各モデルと他のモデルとの関係性を理解する必要があります。 デベロッパーは Includes パラメーターを使用して、依存モデルにアクセスできます。 カンマ区切りを使用すると、複数のモデルにアクセスできます。 使用例と Includes の詳細については、このページのサンプル API モデルのセクションを参照してください。 

API リクエスト

API リクエストは、HTTP リクエストで実行できます。 エンドポイントやメソッドに応じて、デベロッパーは、GET、PUT、POST、DELETE、PATCH など、さまざまな HTTP 動詞を選択する場合があります。 リクエストの中には、クエリパラメーターを渡すことができるものもあります。 ユーザーは、特定のデータモデルをリクエストする場合に、JSON API 仕様に従って、関連するモデルをリクエストすることもできます。 一般的な API リクエストの構造は、サンプルモデルの使用例で説明されています。

API 応答

クライアントにより API リクエストが実行されると、JSON API 仕様に従って SON ドキュメントの取得が行われます。 この応答には、デベロッパーがアプリケーションロジックで次の手順を適切に実行する際に照合できる、HTTP ステータスコードも含まれます。 一般的な API 応答の構造は、サンプルモデルの使用例 で説明されています。

エラー

API リクエストに失敗すると、エラー応答を取得します。 応答で返される HTTP ステータスコードに、エラーの性質が示されています。 エラーコードは、API リファレンス内の各モデルの番号を使って表示されます。 HTTP アクセスに問題がある場合に API で表される一般的なエラーには、200、204、400、404 などがあります。  

フィールド

API オブジェクトの属性や関係は、総称としてフィールドと呼ばれます。 詳しくは、JSON API を参照してください。API 呼び出しを行う際に、フィールドをパラメーターとして使用して、1 つ以上の特定の属性をモデルから取得できます。 フィールドパラメーターがない場合、API 呼び出しは、モデルから使用可能な属性をすべて取得します。 例えば、次の API 呼び出しの場合、fields[skill]=name により、スキルモデルの名前属性のみを取得します。 

https://captivateprime.adobe.com/primeapi/v2/users/{userId}/userSkills/{id}?include=skillLevel.skill&fields[skill]=name 

ページネーション

API リクエストにより、応答でオブジェクトの長いリストが返ってくる場合があります。 このような場合、デベロッパーはページネーション属性を使用して、結果を順番に取得できます。記録の範囲を各ページに示した複数のページが単位となります。 例えば、Learning Manager のページネーションの属性により、1 ページに表示する記録の最大数を設定できます。また、ページに表示される記録の範囲値を定義することもできます。 

並べ替え

API モデルでは並べ替えが可能です。 モデルに基づいて、結果に適用する並べ替えの種類を選択します。 並べ替えには、昇順または降順を適用できます。 例えば、sort=name と指定した場合、名前は昇順に並びます。 sort=-name と指定した場合には、名前が降順に並びます。 詳しくは、JSON API 仕様を参照してください。 

API の使用例

デベロッパーが、スキル名、スキルレベルに割り当てられた最大ポイント、そのスキルについて学習者が獲得したポイントなどを取得するというシナリオについて考えます。

Learning Manager API の userSkill モデルは、デフォルトの属性として id、type、dateActived、dateCreated、pointsEarned で構成されています。したがって、デベロッパーが GET メソッドを使用して userSkill モデルの詳細を取得すると、デフォルト属性に付随する現在のデータが応答出力に表示されます。 

ただし、このシナリオでは、デベロッパーはユーザーのスキル名と、スキルレベルに対するポイントを取得するものとします。 Learning Manager API により、関係フィールドを使用して関連情報にアクセスし、パラメーターを含めることが可能です。userSkill に関連付けられたモデルは、関連タグで取得できます。 これらのモデルを userSkill と一緒に呼び出して、関連付けられた各モデルの詳細を取得できます。 この情報を取得するには、関連するモデルごとにドット(ピリオド)で区切られた値を持つ、include パラメーターを使用します。 user include=skillLevel.skill,course などのように、カンマを区切り文字として使用して別のモデルをリクエストすることもできます。

API 呼び出し

https://captivateprime.adobe.com/primeapi/v2/users/{userId}/userSkills/{id}?include=skillLevel.skill&fields[skill]=name&fields[skillLevel]=maxCredits&fields[userSkill]=pointsEarned

例として、userId は 746783、userSkill ID は 746783_4426_1 とします。 

API 呼び出しの応答

{ 
   &quot;links&quot;: {&quot;self&quot;: &quot;https://captivateprime.adobe.com/primeapi/v2/users/746783/userSkills/746783_4426_1?include=skillLevel.skill&fields[userSkill]=pointsEarned&fields[skillLevel]=maxCredits&fields[skill]=name&quot;}, &quot;data&quot;: { &quot;id&quot;: &quot;746783_4426_1&quot;, &quot;type&quot;: &quot;userSkill&quot;, &quot;attributes&quot;: {&quot;pointsEarned&quot;: 5}, &quot;links&quot;: {&quot;self&quot;: &quot;https://captivateprime.adobe.com/primeapi/v2/users/746783/userSkills/746783_4426_1&quot;} }, &quot;included&quot;: [ { &quot;id&quot;: &quot;4426&quot;, &quot;type&quot;: &quot;skill&quot;, &quot;attributes&quot;: {&quot;name&quot;: &quot;Java&quot;}, &quot;links&quot;: {&quot;self&quot;: &quot;https://captivateprime.adobe.com/primeapi/v2/skills/4426&quot;} }, { &quot;id&quot;: &quot;4426_1&quot;, &quot;type&quot;: &quot;skillLevel&quot;, &quot;attributes&quot;: {&quot;maxCredits&quot;: 10} 
      } 
   ] 
} 

Learning Manager モデル

Learning Manager API を使用すると、開発者は Learning Manager オブジェクトに RESTful リソースとしてアクセスできます。 各 API エンドポイントは、通常、バッジなどのオブジェクトインスタンスといったリソースを指しており、そのようなオブジェクトのコレクションを指すこともあります。 デベロッパーは、PUT、GET、POST、DELETE などの HTTP 動詞を使用して、それらのオブジェクト(コレクション)に対する CRUD 操作を実行します。

次の図は、V1 API の Learning Manager オブジェクトモデルのさまざまな要素を示しています。

V1 API オブジェクトモデル
V1 API オブジェクトモデル

シリアル番号

Learning Manager オブジェクト

概要

1.      

user

Learning Manager における主要なモデル。通常、学習目標を使用する、組織の内部学習者や外部学習者を指す。 ただし、学習者という役割に加えて、作成者や管理者など、他の役割を果たす場合もある。インライン属性には、ユーザー ID、タイプ、電子メールなどがある 

2.      

course

Learning Manager でサポートされる学習オブジェクトの 1 つで、1 つ以上のモジュールで構成される。 

3.      

module

Learning Manager で学習オブジェクトを形成する構成要素を指す。モジュールには、クラスルーム、バーチャルクラスルーム、アクティビティおよびセルフペースなど、4 つの異なるタイプがある。 このモジュールモデルを使用して、アカウント内にあるすべてのモジュールの詳細を取得する 

4.      

certification

コースを完了した学習者には、資格認定が付与される。 資格認定を使用するためには、アプリケーションでコースが必要である 

5.      

learning program

ユーザーの特定の学習要件を満たす独自に設計されたコースを指す。 通常、学習プログラムは、個々のコースにわたる学習目標を推進するために使用される。 

6.      

badge

学習者がコースを進めていく中で、指定のマイルストーンに到達したときに得られる功績の証を指す 

7.      

skill

スキルモデルは、レベルとクレジットで構成される。 学習者は関係のあるコースを完了すると、スキルを取得できる 

8.      

certificationEnrollment

このモデルでは、ユーザーによる 1 つの資格認定への登録の詳細を表す

9.  

courseEnrollment

このモデルでは、ユーザーによる 1 つのコースへの登録の詳細を表す 

10.  

courseInstance

1 つまたは複数のインスタンスを関連付けることができる。 コースインスタンスを取得できる 

11.  

courseSkill

コースを完了することで達成できる 1 つのスキルの進捗を指定する

12.  

courseModule

モジュールがどのようにコースに含まれるかを指定する。 例えば、モジュールがプリテスト用とコンテンツ用のどちらに使用されるかを指定する

13.  

learningProgramInstance

学習プログラムは、学習プログラムの類似した特性を持つ複数のインスタンスやカスタマイズされたインスタンスで構成できる 

14.  

job aid

作業計画書とは、登録や完了条件なしに学習者がアクセスできる学習コンテンツを指す。 更新日、ステート、ID 情報に加えて、作業計画書のバージョン、作成者、スキルレベルなどの関連するモデルを使用できる 

15.  

jobAidVersion

作業計画書には、コンテンツの改訂数とアップロード数に基づいて、1 つまたは複数のバージョンを関連付けられる。 このモデルは、1 つの作業計画書のバージョンの詳細を表す 

16.  

learningProgramInstanceEnrollment

学習プログラムは、1 つまたは複数のインスタンスで構成される。 学習プログラムインスタンスへの登録は学習者自身が行うことも、管理者が割り当てることもできる。 このモデルは、ユーザーによる 1 つの学習プログラムインスタンスへの登録の詳細を表す 

17.  

moduleVersion

モジュールには、改訂されたコンテンツアップロードに基づいて、1 つ以上のバージョンを含めることができる。 このモデルを使用して、1 つのモジュールバージョンに関する特定の情報を取得する 

18.  

skillLevel

1 つまたは複数のコースで構成されており、レベルとそれに関連するクレジットを取得するために使用される 

19.  

userBadge

単一のバッジを 1 人のユーザーに関連付ける。いつ達成したかや、assertionUrl 等の詳細を含む 

20.  

userSkill

あるユーザーが 1 つのスキルレベルをどの程度達成したのか表示する

以下は、V2 API の Learning Manager のさまざまな要素を示したクラス図です。

V2 API クラス図
V2 API クラス図

Learning Manager オブジェクト 説明
account Prime のお客様に関する詳細をカプセル化したもの
badge 学習者がコースを進めるにつれて、指定のマイルストーンに到達したときに得られる功績のトークン
catalog 学習目標のコレクション
user Learning Manager における主要なモデル。通常、学習目標を使用する、組織の内部学習者や外部学習者を指す。 ただし、学習者という役割に加えて、作成者や管理者など、他の役割を果たす場合もある。 インライン属性には、ユーザー ID、タイプ、電子メールなどがある 
resource モジュールでカプセル化しようとする各コンテンツリソースをモデル化するために使用される。 loResource 内でカプセル化された すべての リソースは 学習目標という観点では同じだが、配信タイプやコンテンツのロケールが異なる
userNotification 学習者に関連した通知情報が含まれる
userSkill あるユーザーが 1 つのスキルレベルをどの程度達成したのか表示する
userBadge 単一のバッジを 1 人の ユーザーと 関連付ける。 いつ達成したかや、assertionUrl 等の 詳細を 含む
skill スキルモデルは、レベルとクレジットで構成される。 学習者は関係のあるコースを完了すると、スキルを取得できる
skillLevel 1 つまたは複数のコースで構成されており、レベルとそれに関連するクレジットを取得するために使用される
learningObject ユーザーが登録して学習できる、さまざまな種類のオブジェクトを抽象化したもの。 現在、Prime には 4 種類の学習目標(コース、資格認定、学習プログラムおよび作業計画書) がある
learningObjectInstance
学習目標の特定のインスタンス
learningObjectResource モジュールの概念と module 。コースは 1 つ以上のモジュールで 構成されている 。 Prime では、モジュールをさまざまな同等の方法で配信できる。 したがって loResource は 基本的に、これらの同等のリソースをすべてカプセル化する。
loResourceGrade
ユーザーが登録した学習目標のコンテキストで特定のリソースを使用した結果をカプセル化する。 ユーザーがリソースにかけた 時間、 ユーザーの進捗状況、合格/不合格の状態、関連するクイズでユーザーが取得した得点などの情報を含む
calendar
ユーザーが 登録できる 今後行われるクラスルームやバーチャルクラスルームのコースのリスト
l1FeedbackInfo
学習目標に関連したフィードバックの質問に対して、学習者が提出した回答をカプセル化する。 学習者からフィードバックを収集する設定の場合、通常は、ユーザーが学習目標を完了した後に収集する
enrollment
この抽象化したものにより、特定の学習目標のインスタンスに対する、特定のユーザーの割り当てに関連したトランザクションの詳細をカプセル化する。

アプリケーション開発プロセス

前提条件

デベロッパーは、Prime で体験版アカウントを作成して、そのアカウント内すべての役割にフルアクセス権を持つ必要があります。 アプリケーションの作成にあたって、デベロッパーはユーザーやコースを作成して、アカウントを適切な状態にする必要があります。そのようにして、開発中のアプリケーションがサンプルデータにアクセスできるようにします。

クライアント ID とシークレットの作成

  1. 統合管理者ログインで、左ペインの「アプリケーション」をクリックします。 

  2. ページの右上隅にある「登録」をクリックして、アプリケーションの詳細を登録します。 登録ページが表示されます。 

    新しい応募者の登録
    新しい応募者の登録

    このページにあるフィールドは、すべて入力必須です。 

    アプリケーション名:アプリケーション名を入力します。 同じアプリケーション名を使用する必要はありません。別の有効な名前をどれでも使用できます。 

    URL:アプリケーションがホストされる正確な URL がわかっている場合は、その URL を指定できます。 わからない場合は、会社の URL を指定できます。 このフィールドには必ず有効な URL 名を入力してください。 

    リダイレクトドメイン:OAuth 認証後に Learning Manager アプリケーションをリダイレクトするアプリケーションのドメイン名を入力します。ここで複数の URL を指定できますが、http://google.com、http://yahoo.com など、有効な URL を使用する必要があります。 

    説明:アプリケーションの簡単な説明を入力します。 

    スコープ:4 つのオプションからいずれかを選択し、アプリケーションの範囲を定義します。 ここに示された選択に基づき、アプリケーションから、Learning Manager API エンドポイントへのアクセスが可能になります。例えば「学習者の役割の読み取りアクセス」を選択した場合、Learning Manager の学習者 API エンドポイントのすべてで、アプリケーションから読み取り専用のアクセスが可能になります。

    このアカウントのみですか? 
    はい - 「はい」を選択した場合、他のアカウント管理者がアプリケーションを見ることはできません。
    いいえ - 「いいえ」を選択した場合、他のアカウント管理者も、アプリケーション ID を使用して、このアプリケーションにアクセスできます。 アプリケーション ID が生成され、Learning Manager アプリケーションの編集モードに表示されます。

    注意:

    アプリの登録をするときのスコープが承認ワークフローより優先されるため、アプリケーション登録時に「管理者の役割の読み取りおよび書き込みアクセス」を範囲として選択し、API 認証時に「管理者の役割の読み取りアクセス」を選択した場合、書き込みアクセス権を保持できます。 

  3. 登録ページで詳細を入力したら、右上隅の「登録」をクリックします。

アプリケーション開発とテスト

Learning Manager API は、デベロッパーがさまざまなアプリケーションを構築する際に使用できます。デベロッパーは、アカウントが有効なユーザーとコースで構成されていることを確認する必要があります。 複数のダミーユーザーやコースを作成して、体験版アカウントでアクティビティをシミュレートして、アプリケーションの機能をテストできます。

アプリケーションデプロイメント

実用アカウントでは、Learning Manager の管理者や統合管理者が、組織内のユーザーにアプリケーションを使用する権限を与えるようにすることをお勧めします。アプリケーションのテストが完了して、実用の準備が整ったら、実用アカウントの管理者に通知します。 管理者が、実用アカウントでアプリケーションの新しいクライアント ID とクライアントシークレットを生成し、それらを安全に組み込めるよう、アプリケーション内で必要な手順を取るのが理想的です。 アプリケーションをデプロイする実際の手順は、企業によって異なります。デプロイを完了するには、組織の Learning Manager 管理者が、組織内の IT/IS 部門からサポートを受ける必要があります。

外部アプリケーションの承認

外部アプリケーションを追加するには、アプリケーションページの右上隅にある「承認」をクリックします。 外部アプリケーション ID を入力し、「保存」をクリックします。

外部アプリケーションを追加
外部アプリケーションを追加

よくある質問

1. Learning Manager は e コマースと統合されていますか?

Adobe Learning Manager に e コマース統合機能はありません。ただし、独自のヘッドレス LMS を作成し、e コマース機能を実装できるように、API を提供しています。 

アドビのロゴ

アカウントにログイン