メソッド
user.create
このメソッドは新しい受講者あるいは管理者を作成します。全てのユーザーは組織内のトップレベルのグループに追加されます。
URL
https://customdomain.com/api/user.create
バッチURL
https://customdomain.com/api/batch/user.create
Arguments
Argument | 必須 | 説明 |
---|---|---|
login_id | 必須 | |
last_name | 必須 | |
first_name | 必須 | |
password | 必須 | パスワードは8文字以上 |
password_change_required | 任意 | 有効な属性:true , false 。このArgumentをリクエストに含めない場合はfalse となります。 |
role | 必須 | 有効な属性: "learner" , "admin" |
language | 必須 | これはユーザーのインターフェースで設定される言語の文字コードとなります。有効な属性は以下をご参照ください。 |
time_zone | 必須 | 有効なタイムゾーンはこちらのリストの「TZ database name」の列をご参照ください。(例:Asia/Tokyo ) |
profile | 任意 | 詳細は以下を参照ください。 |
language
属性
有効なコード | 言語 |
---|---|
ja | 日本語 |
en | 英語 |
es | スペイン語 |
zh_CN | 中国語簡体字 |
zh_TW | 中国語繁体字 |
fr | フランス語 |
vi | ベトナム語 |
de | ドイツ語 |
id | インドネシア語 |
it | イタリア語 |
ko | 韓国語 |
pt | ポルトガル語 |
ru | ロシア語 |
th | タイ語 |
プロフィール
現在以下の6つのタイプのプロフィール項目があります。適切な項目のタイプを使用していることを確認して下さい。
フィールドタイプ | 有効なJSONタイプ |
---|---|
text | 文字列 |
number | 整数又は数字 |
date | ISO 8601 (YYYY-MM-DD) フォーマットの文字列 。例えば、2019年1月17日は2019-01-17 となります。 |
text_choice | 文字列(選択肢の"choice_id"となります) |
number_choice | 文字列(選択肢の"choice_id"となります) |
date_choice | 文字列(選択肢の"choice_id"となります) |
例:
[
{
"field_id": "hvGva1TxJ08z",
"value": "テキスト項目に入れる文字列"
},
{
"field_id": "ySU2O89tx5PQ",
"value": 100
},
{
"field_id": "5mo6hek3p7WP",
"value": "2019-01-17"
},
{
"field_id": "tJWOy9kqL0ru",
"value": "IKR8fotbjgUT"
},
{
"field_id": "OCDY271wu2Dv",
"value": "1qTZ7g3GPRkc"
},
{
"field_id": "ykjUihjjlOdW",
"value": "qP8foksNsuOE"
}
]
リクエスト
{
"login_id": "taro.yamada@example.com",
"last_name": "山田",
"first_name": "太郎",
"password": "a6nKr2rw",
"role": "learner",
"language": "ja",
"time_zone": "Asia/Tokyo",
"profile": [
{
"field_id": "hvGva1TxJ08z",
"value": "テキスト項目に入れる文字列"
}
],
"password_change_required": true
}
レスポンス
レスポンスが成功した場合は作成したユーザーのIDを返します。以下がレスポンスの例です。
{
"status": "success",
"data": {
"user_id": "wLQPaRVUME7f"
}
}
エラー
コード | 説明 |
---|---|
login_id_exists | 指定されたlogin IDは他のユーザーによってすでに使用されています。 |
invalid_password | 指定されたパスワードでユーザーを作成できません。 |
invalid_time_zone | 指定されたタイムゾーンでユーザーを作成できません。 |
invalid_language | 指定された言語でユーザーを作成できません。 |
invalid_role | 指定された属性でユーザーを作成できません。 |
invalid_profile | 指定されたプロフィール属性は無効です。項目のタイプに正しいタイプの属性が送られているか確認をして下さい。 |
user.update
このメソッドは組織内のユーザーの情報をアップデートします。
URL
https://customdomain.com/api/user.update
バッチURL
https://customdomain.com/api/batch/user.update
Arguments
Argument | 必須 | 説明 |
---|---|---|
user_id | 必須 | アップデートするユーザーのID |
login_id | 任意 | |
last_name | 任意 | |
first_name | 任意 | |
language | 任意 | これはユーザーのインターフェイスで設定される言語の文字コードとなります。有効な属性は以下をご参照ください。 |
time_zone | 任意 | 有効なタイムゾーンはこちらのリストの「TZ database name」の列をご参照ください。(例:Asia/Tokyo ) |
profile | 任意 | 詳細は以下を参照ください。 |
language
属性
有効なコード | 言語 |
---|---|
ja | 日本語 |
en | 英語 |
es | スペイン語 |
zh_CN | 中国語簡体字 |
zh_TW | 中国語繁体字 |
fr | フランス語 |
vi | ベトナム語 |
de | ドイツ語 |
id | インドネシア語 |
it | イタリア語 |
ko | 韓国語 |
pt | ポルトガル語 |
ru | ロシア語 |
th | タイ語 |
プロフィール
現在以下の6つのタイプのプロフィール項目があります。適切な項目のタイプを使用していることを確認して下さい。
フィールドタイプ | 有効なJSONタイプ |
---|---|
text | 文字列 |
number | 整数又は数字 |
date | ISO 8601 (YYYY-MM-DD) フォーマットの文字列 。例えば、2019年1月17日は2019-01-17 となります。 |
text_choice | 文字列(選択肢の"choice_id"となります) |
number_choice | 文字列(選択肢の"choice_id"となります) |
date_choice | 文字列(選択肢の"choice_id"となります) |
項目のアップデートするとアップデートした項目はそのユーザーの既存の項目に上書きされます。
例:
[
{
"field_id": "hvGva1TxJ08z",
"value": "テキスト項目に入れる文字列"
},
{
"field_id": "ySU2O89tx5PQ",
"value": 100
},
{
"field_id": "5mo6hek3p7WP",
"value": "2019-01-17"
},
{
"field_id": "tJWOy9kqL0ru",
"value": "IKR8fotbjgUT"
},
{
"field_id": "OCDY271wu2Dv",
"value": "1qTZ7g3GPRkc"
},
{
"field_id": "ykjUihjjlOdW",
"value": "qP8foksNsuOE"
}
]
リクエスト
{
"user_id": "wLQPaRVUME7f",
"language": "ja",
"profile": [
{
"field_id": "hvGva1TxJ08z",
"value": "文字列に入れる新しい属性"
}
]
}
レスポンス
{
"status": "success",
"data": null
}
エラー
コード | 説明 |
---|---|
user_not_found | 指定されたIDでユーザーが見つかりません。 |
login_id_exists | login IDが他のユーザーによってすでに使用されています。 |
invalid_time_zone | 指定されたタイムゾーンでユーザーをアップデートできません。 |
invalid_language | 指定された言語でユーザーをアップデートできません。 |
invalid_profile | 指定されたプロフィール属性が無効です。項目のタイプに正しいタイプの属性が送られているか確認をして下さい。 |
user.info
このメソッドは組織内のユーザーの情報を返します。
URL
https://customdomain.com/api/user.info
リリース予定
バッチURLhttps://customdomain.com/api/batch/user.info
Arguments
Argument | 必須 | 説明 |
---|---|---|
user_id | 必須 |
リクエスト
{
"user_id": "wLQPaRVUME7f"
}
レスポンス
{
"status": "success",
"data": {
"user_id": "wLQPaRVUME7f",
"login_id": "taro.yamada@example.com",
"last_name": "山田",
"first_name": "太郎",
"time_zone": "Asia/Tokyo",
"language": "ja",
"profile": [
{
"field_id": "hvGva1TxJ08z",
"name": "テキストプロフィール項目",
"values": ["テキスト項目に入れる文字列"]
},
{
"field_id": "tJWOy9kqL0ru",
"name": "テキスト選択プロフィール項目",
"values": [
{
"choice_id": "IArmC6RUe4l3",
"value": "Choice 1"
}
]
}
]
}
}
エラー
コード | 説明 |
---|---|
user_not_found | 指定されたIDでユーザーが見つかりません。 |
user.delete
このメソッドは組織内のユーザーを削除します。
URL
https://customdomain.com/api/user.delete
バッチURL
https://customdomain.com/api/batch/user.delete
Arguments
Argument | 必須 | 説明 |
---|---|---|
user_id | 必須 |
リクエスト
{
"user_id": "wLQPaRVUME7f"
}
レスポンス
{
"status": "success",
"data": null
}
このメソッドはリクエストが正しく処理されると"success"レスポンスを返します。"success"レスポンスを受け取った後も引き続き処理が行われますが、最終的には処理が完了します。
エラー
コード | 説明 |
---|---|
user_not_found | 指定されたIDでユーザーが見つかりません。 |
user.merge
このメソッドはユーザーを統合します。
URL
https://customdomain.com/api/user.merge
バッチURL
https://customdomain.com/api/batch/user.merge
Arguments
Argument | 必須 | 説明 |
---|---|---|
base_user_id | 必須 | 統合後に組織に残るIDです。 |
merge_user_id | 必須 | "base_user_id"に統合されるIDです。 |
リクエスト
{
"base_user_id": "wLQPaRVUME7f",
"merge_user_id": "dCl2tVjYpaUD"
}
レスポンス
{
"status": "success",
"data": null
}
このメソッドはリクエストが正しく処理されると"success"レスポンスを返します。"success"レスポンスを受け取った後も引き続き処理が行われますが、最終的には処理が完了します。
エラー
コード | 説明 |
---|---|
user_not_found | 指定されたIDでユーザーが見つかりません。 |
cant_merge_same_user | 同一のIDを統合することはできません。 |
user.deactivate
このメソッドはユーザーを無効化します。無効化されたユーザーは組織にアクセスすることができなくなります。
URL
https://customdomain.com/api/user.deactivate
バッチURL
https://customdomain.com/api/batch/user.deactivate
Arguments
Argument | 必須 | 説明 |
---|---|---|
user_id | 必須 |
リクエスト
{
"user_id": "wLQPaRVUME7f"
}
レスポンス
{
"status": "success",
"data": null
}
エラー
コード | 説明 |
---|---|
user_not_found | 指定されたIDでユーザーが見つかりません。 |
user_already_deactivated | 既に無効化されたユーザーを無効化することはできません。 |
user.reactivate
このメソッドは無効化されたユーザーを再有効化します。再有効化されたユーザーは組織に再びアクセスすることができるようになります。
URL
https://customdomain.com/api/user.reactivate
バッチURL
https://customdomain.com/api/batch/user.reactivate
Arguments
Argument | 必須 | 説明 |
---|---|---|
user_id | 必須 |
リクエスト
{
"user_id": "wLQPaRVUME7f"
}
レスポンス
{
"status": "success",
"data": null
}
エラー
コード | 説明 |
---|---|
user_not_found | 指定されたIDでユーザーが見つかりません。 |
user_already_activated | 既に有効なユーザーを再有効化することはできません。 |
user.groups.list
このメソッドは組織内でユーザーが登録されているグループを返します。
URL
https://customdomain.com/api/user.groups.list
Arguments
Argument | 必須 | 説明 |
---|---|---|
user_id | 必須 |
リクエスト
{
"user_id": "fgUxj8SO6AaB"
}
レスポンス
{
"status": "success",
"data": [
{
"group_id": "cwo9aFjilDyg",
"name": "グループA"
},
{
"group_id": "YeMxzbxY5yDS",
"name": "グループB"
}
]
}
エラー
コード | 説明 |
---|---|
user_not_found | 指定されたIDでユーザーが見つかりません。 |
org.users.list
このメソッドは組織内のユーザーをページ分割されたリストで返します。
URL
https://customdomain.com/api/org.users.list
Arguments
Argument | 必須 | 説明 |
---|---|---|
next | 任意 | 前回のリクエストで受け取ったカーソル |
リクエスト
{}
レスポンス
{
"status": "success",
"data": {
"users": [
{
"user_id": "wLQPaRVUME7f",
"login_id": "user1@example.com"
},
(...残りのデータ)
],
"next": "RGVRt1m9DRWp"
}
}
次のページのカーソルを含めたリクエスト
{
"next": "RGVRt1m9DRWp"
}
次のページのカーソルが存在しない場合のレスポンス
{
"status": "success",
"data": {
"users": [
{
"user_id": "fgUxj8SO6AaB",
"login_id": "user3@example.com"
}
],
"next": null
}
}
org.users.search
このメソッドは検索ワードに基づいて、ページ分割のユーザーリストを返します。login_id
の部分一致によってユーザーを検索することができます。
必須条件
- 各検索ワードは最低3文字以上にする必要があります。
- 各リクエストにおける検索ワードの最大数は100です。
URL
https://customdomain.com/api/org.users.search
Arguments
Argument | 必須 | 説明 |
---|---|---|
login_id | 必須 | カンマで分けられたlogin IDの文字列 |
next | 任意 | 前回のリクエストで受け取ったカーソル |
リクエスト
{
"login_id": "@example.com,@example2.com"
}
レスポンス
{
"status": "success",
"data": {
"users": [
{
"user_id": "wLQPaRVUME7f",
"login_id": "user1@example.com"
},
{
"user_id": "9zQEwIZscwhp",
"login_id": "user2@example2.com"
},
(...残りのデータ)
],
"next": "RGVRt1m9DRWp"
}
}
次のページのカーソルを含めたリクエスト
{
"login_id": "@example.com,@example2.com",
"next": "RGVRt1m9DRWp"
}
次のページのカーソルが存在しない場合のレスポンス
{
"status": "success",
"data": {
"users": [
{
"user_id": "fgUxj8SO6AaB",
"login_id": "user3@example.com"
}
],
"next": null
}
}
org.groups.list
このメソッドは組織内のグループを返します。
URL
https://customdomain.com/api/org.groups.list
リクエスト
{}
レスポンス
各グループの"parent_id"は組織階層の中におけるそのグループの位置を示します。組織レベルのグループには"parent_id"はありません。
{
"status": "success",
"data": [
{
"group_id": "cwo9aFjilDyg",
"name": "グループA",
"parent_id": null
},
{
"group_id": "YeMxzbxY5yDS",
"name": "グループB",
"parent_id": "cwo9aFjilDyg"
},
{
"group_id": "YeMxzbxY5yDS",
"name": "グループC",
"parent_id": "cwo9aFjilDyg"
}
]
}
org.courses.list
このメソッドは組織内のコースをページ分割されたリストで返します。
URL
https://customdomain.com/api/org.courses.list
Arguments
Argument | 必須 | 説明 |
---|---|---|
next | 任意 | 前回のリクエストで受け取ったカーソル |
リクエスト
{}
レスポンス
{
"status": "success",
"data": {
"courses": [
{
"course_id": "tNtGFwMR8fFm",
"title": "サンプルコース 1"
},
(...残りのデータ)
],
"next": "FSaRYeqE8Nzk"
}
}
次のページのカーソルを含めたリクエスト
{
"next": "FSaRYeqE8Nzk"
}
次のページのカーソルが存在しない場合のレスポンス
{
"status": "success",
"data": {
"courses": [
{
"course_id": "h1il3qxKHYN6",
"title": "サンプルコース 2"
}
],
"next": null
}
}
org.profile.list
このメソッドは組織内のプロフィール項目を返します。
URL
https://customdomain.com/api/org.profile.list
リクエスト
{}
レスポンス
{
"status": "success",
"data": [
{
"field_id": "hvGva1TxJ08z",
"name": "テキストプロフィール項目",
"type": "text"
},
{
"field_id": "ySU2O89tx5PQ",
"name": "番号プロフィール項目",
"type": "number"
},
{
"field_id": "5mo6hek3p7WP",
"name": "日付プロフィール項目",
"type": "date"
},
{
"field_id": "tJWOy9kqL0ru",
"name": "テキスト選択プロフィール項目",
"type": "text_choice",
"choices": [
{
"choice_id": "IKR8fotbjgUT",
"value": "テキスト選択プロフィール項目の属性1"
},
{
"choice_id": "Eq77H5mkOCn9",
"value": "テキスト選択プロフィール項目の属性2"
}
]
},
{
"field_id": "OCDY271wu2Dv",
"name": "番号選択プロフィール項目",
"type": "number_choice",
"choices": [
{
"choice_id": "1qTZ7g3GPRkc",
"value": 100
},
{
"choice_id": "5fYhEFHz8fil",
"value": 200
}
]
},
{
"field_id": "ykjUihjjlOdW",
"name": "Date choice profile field",
"type": "date_choice",
"choices": [
{
"choice_id": "qP8foksNsuOE",
"value": "2019-01-19"
},
{
"choice_id": "kl7boFCWLiDv",
"value": "2019-02-19"
}
]
}
]
}
org.reports.list
このメソッドは組織内のレポートをページ分割されたリストで返します。
URL
https://customdomain.com/api/org.reports.list
Arguments
Argument | 必須 | 説明 |
---|---|---|
next | 任意 | 前回のリクエストで受け取ったカーソル |
リクエスト
{}
レスポンス
{
"status": "success",
"data": {
"reports": [
{
"report_id": "32O31xMb2R",
"title": "Learner progress report",
"type": "learners",
},
(...rest of data)
],
"next": "Bp0mAXl0GQ"
}
}
レポートプロパティ
プロパティ | 説明 |
---|---|
report_id | レポートのID |
title | レポートのタイトル |
type | レポートのタイプ: "learners" , "courses" , "submission_rates" , "submissions" , "people" , "video_analytics" , "activities" , "activity_solutions" , "submission_answers" , "udemy_user_activity" , "udemy_user_course_activity" , "udemy_user_progress" . |
次のページのカーソルを含めたリクエスト
{
"next": "Bp0mAXl0GQ"
}
次のページのカーソルが存在しない場合のレスポンス
{
"status": "success",
"data": {
"reports": [
{
"report_id": "6r1w67Yw2k",
"title": "Confirm certification",
"type": "people",
},
],
"next": null
}
}
group.user.add
このメソッドは指定のグループに1名のユーザーを追加します。
URL
https://customdomain.com/api/group.user.add
バッチURL
https://customdomain.com/api/batch/group.user.add
Arguments
Argument | 必須 | 説明 |
---|---|---|
group_id | 必須 | |
user_id | 必須 | |
role | 必須 | 有効な属性: "learner" , "admin" |
リクエスト
{
"group_id": "cwo9aFjilDyg",
"user_id": "wLQPaRVUME7f",
"role": "learner"
}
レスポンス
{
"status": "success",
"data": null
}
エラー
コード | 説明 |
---|---|
group_not_found | 指定されたIDでグループが見つかりません。 |
user_not_found | 指定されたIDでユーザーが見つかりません。 |
invalid_role | 指定された属性でユーザーを作成できません。 |
group.user.remove
このメソッドは指定のグループから1名のユーザーを除外します。
URL
https://customdomain.com/api/group.user.remove
バッチURL
https://customdomain.com/api/batch/group.user.remove
Arguments
Argument | 必須 | 説明 |
---|---|---|
group_id | 必須 | |
user_id | 必須 | |
role | 必須 | 有効な属性: "learner" , "admin" |
リクエスト
{
"group_id": "cwo9aFjilDyg",
"user_id": "wLQPaRVUME7f",
"role": "learner"
}
レスポンス
{
"status": "success",
"data": null
}
このメソッドはリクエストが正しく処理されると"success"レスポンスを返します。"success"レスポンスを受け取った後も引き続き処理が行われますが、最終的には処理が完了します。
現在は、除外するユーザーについて以下の2つの条件を満たす場合にエラーが返されます。この制限は将来的に排除されます。
- そのユーザーが登録されている最後のグループから除外する。
- そのユーザーが登録されているコースのキャンセル待ちリストにユーザーが入っている。
エラー
コード | 説明 |
---|---|
group_not_found | 指定されたIDでグループが見つかりません。 |
user_not_found | 指定されたIDでユーザーが見つかりません。 |
invalid_role | 指定された属性でユーザーを作成できません。 |
group.users.list
このメソッドはグループ内のユーザーをページ分割されたリストで返します。
URL
https://customdomain.com/api/group.users.list
Arguments
Argument | 必須 | 説明 |
---|---|---|
group_id | 必須 | |
next | 任意 | 前回のリクエストで受け取ったカーソル |
リクエスト
{
"group_id": "cwo9aFjilDyg"
}
レスポンス
{
"status": "success",
"data": {
"users": [
{
"user_id": "wLQPaRVUME7f",
"login_id": "user1@example.com",
"role": "learner"
},
(...残りのデータ)
],
"next": "RGVRt1m9DRWp"
}
}
役割
role
の3つの属性は"learner"
、"admin"
、instructor
があります。
次のページのカーソルを含めたリクエスト
{
"group_id": "cwo9aFjilDyg",
"next": "RGVRt1m9DRWp"
}
次のページのカーソルが存在しない場合のレスポンス
{
"status": "success",
"data": {
"users": [
{
"user_id": "fgUxj8SO6AaB",
"login_id": "user3@example.com",
"role": "learner"
}
],
"next": null
}
}
エラー
コード | 説明 |
---|---|
group_not_found | 指定されたIDでグループが見つかりません。 |
course.info
このメソッドは組織内のコースの情報を返します。
URL
https://customdomain.com/api/course.info
リリース予定
バッチURLhttps://customdomain.com/api/batch/course.info
Arguments
Argument | 必須 | 説明 |
---|---|---|
course_id | 必須 |
リクエスト
{
"course_id": "B9Bp9jpHhemG"
}
レスポンス
{
"status": "success",
"data": {
"course_id": "B9Bp9jpHhemG",
"title": "サンプルコース",
"title_translations": [
{
"language": "en",
"value": "Example course"
}
],
"location": "サンプルロケーション",
"start_date": "2019-01-31",
"end_date": "2019-02-28",
"registration_end_date": "2019-01-30",
"passing_grade": "enabled",
"passing_grade_percentage": 80,
"learner_maximum": "enabled",
"learner_maximum_count": 10,
"learner_waitlist": "enabled",
"learner_waitlist_count": 5,
"learner_leave_course": "enabled",
"messages": "enabled",
"instructor_count": 1,
"learner_count": 10,
"status": "active"
}
}
コースのプロパティが設定されていない場合や該当しない場合、それらのプロパティはnull
となります。
{
"status": "success",
"data": {
"course_id": "B9Bp9jpHhemG",
"title": "サンプルコース",
"title_translations": [],
"location": null,
"start_date": null,
"end_date": null,
"registration_end_date": null,
"passing_grade": "disabled",
"passing_grade_percentage": null,
"learner_maximum": "disabled",
"learner_maximum_count": null,
"learner_waitlist": null,
"learner_waitlist_count": null,
"learner_leave_course": "disabled",
"messages": "disabled",
"instructor_count": 0,
"learner_count": 0,
"status": "active"
}
}
コースプロパティ
プロパティ | 説明 |
---|---|
passing_grade | 属性: "enabled" 又は "disabled" |
passing_grade_percentage | passing_grade が enabled の場合、このプロパティはパーセンテージの文字列となります。それ以外の場合は null となります。 |
learner_maximum | 属性: "enabled" 又は "disabled" |
learner_maximum_count | もし learner_maximum が "enabled" の場合、このプロパティは数字となります。それ以外の場合はnull となります。 |
learner_waitlist | もし learner_maximum が "enabled" の場合、このプロパティで利用可能な属性は "enabled" 又は "disabled" となります。それ以外の場合はnull となります。 |
learner_waitlist_count | もしlearner_waitlist が"enabled" の場合、このプロパティは数字となります。それ以外の場合はnull となります。 |
learner_leave_course | 属性: "enabled" 又は "disabled" |
messages | 属性: "enabled" 又は "disabled" |
status | 属性: "active" 又は "archived" |
エラー
コード | 説明 |
---|---|
course_not_found | 指定されたIDでコースが見つかりません。 |
course.approvers.list
このメソッドは組織内のコース承認関係をページ分割されたリストで返します。
URL
https://customdomain.com/api/course.approvers.list
Arguments
Argument | 必須 | 説明 |
---|---|---|
login_id | 任意 | 検索対象のユーザーのログインID(全体または一部)を指定します。指定したログインID(部分一致を含む)を持つユーザーが承認者または申請者として含まれる行を全て返します。 |
next | 任意 | 前回のリクエストで受け取ったカーソル。 |
リクエスト
{}
レスポンス
{
"status": "success",
"data": {
"relationships": [
{
"approver": {
"user_id": "fgUxj8SO6AaB",
"first_name": "John",
"last_name": "Smith",
"login_id": "approver@example.com",
},
"requester": {
"user_id": "k2eqgkjd24",
"first_name": "Jack",
"last_name": "Wilson",
"login_id": "requester@example.com",
},
},
(...rest of data)
],
"next": "YLk0alrDdP",
}
}
検索対象のログインIDを含めたリクエスト
{
"login_id": "example@example.com"
}
検索対象のログインIDを含んだレスポンス
{
"status": "success",
"data": {
"relationships": [
{
"approver": {
"user_id": "fgUxj8SO6AaB",
"first_name": "John",
"last_name": "Smith",
"login_id": "example@example.com",
},
"requester": {
"user_id": "k2eqgkjd24",
"first_name": "Jack",
"last_name": "Wilson",
"login_id": "requester@example.com",
},
},
{
"approver": {
"user_id": "32O6b96l0R",
"first_name": "Marry",
"last_name": "Nguyen",
"login_id": "approver1@example.com",
},
"requester": {
"user_id": "fgUxj8SO6AaB",
"first_name": "John",
"last_name": "Smith",
"login_id": "example@example.com",
},
},
(...rest of data)
],
"next": "YLk0alrDdP",
}
}
次のページのカーソルを含めたリクエスト
{
"next": "RGVRt1m9DRWp"
}
次のページのカーソルが存在しない場合のレスポンス
{
"status": "success",
"data": {
"relationships": [
{
"approver": {
"user_id": "fgUxj8SO6AaB",
"first_name": "John",
"last_name": "Smith",
"login_id": "approver@example.com",
},
"requester": {
"user_id": "k2eqgkjd24",
"first_name": "Jack",
"last_name": "Wilson",
"login_id": "requester@example.com",
},
},
(...rest of data)
],
"next": null,
}
}
エラー
コード | 説明 |
---|---|
feature_not_enabled | この機能は現在有効になっていません。 |
course.approvers.add
このメソッドはコース参加の承認関係を新たに追加します。
URL
https://customdomain.com/api/course.approvers.add
Arguments
Argument | 必須 | 説明 |
---|---|---|
approver_id | 必須 | |
requester_id | 必須 |
リクエスト
{
"approver_id": "cwo9aFjilDyg",
"requester_id": "wLQPaRVUME7f",
}
レスポンス
{
"status": "success",
"data": null
}
エラー
コード | 説明 |
---|---|
approver_not_found | 指定したIDの承認者が見つかりません。 |
requester_not_found | 指定したIDの申請者が見つかりません。 |
relationship_exists | 既にコース参加の承認関係が設定されています。 |
feature_not_enabled | この機能は現在有効になっていません。 |
course.approvers.remove
このメソッドはコース参加の承認関係を除外します。
URL
https://customdomain.com/api/course.approvers.remove
Arguments
Argument | 必須 | 説明 |
---|---|---|
approver_id | 必須 | |
requester_id | 必須 |
リクエスト
{
"approver_id": "cwo9aFjilDyg",
"requester_id": "wLQPaRVUME7f",
}
レスポンス
{
"status": "success",
"data": null
}
エラー
コード | 説明 |
---|---|
approver_not_found | 指定したIDの承認者が見つかりません。 |
requester_not_found | 指定したIDの申請者が見つかりません。 |
relationship_not_found | 指定したコース参加の承認関係が見つかりません。 |
feature_not_enabled | この機能は現在有効になっていません。 |
report.export
このメソッドは指定したレポートタイプに応じたレポートのデータをエクスポートします。
URL
https://customdomain.com/api/report.export
Arguments
Argument | 必須 | 説明 |
---|---|---|
report_type | 任意 | エクスポートするレポートのタイプを指定します。有効な属性は以下をご参照ください。report_id をリクエストに含めない場合は、必ず含めてください。また、report_id と併用してリクエストに含めることはできません。 |
report_id | 任意 | エクスポートするレポートのIDを指定します。report_type をリクエストに含めない場合は、必ず含めてください。また、report_type と併用してリクエストに含めることはできません。 |
language | 必須 | エクスポートされるレポートのデータが表示される言語の文字コードとなります。有効な属性は以下をご参照ください。 |
time_zone | 必須 | レポートのデータが参照するタイムゾーンとなります。有効なタイムゾーンはこちらのリストの「TZ database name」の列をご参照ください。(例:Asia/Tokyo ) |
report_type
属性
有効なレポートのタイプ | インターフェース上での名称 |
---|---|
activities | 課題 |
activity_solutions | 設問正答 |
courses | コース |
learners | 受講者 |
people | メンバー |
submission_answers | 設問回答 |
submission_rates | 提出率 |
submissions | 提出物 |
video_analytics | 動画視聴履歴 |
udemy_user_activity * | Udemyユーザーアクティビティ |
udemy_user_course_activity * | Udemyユーザーコースアクティビティ |
udemy_user_progress * | Udemyユーザー進行状況 |
* 一部組織でのみ有効
language
属性
有効なコード | 言語 |
---|---|
ja | 日本語 |
en | 英語 |
es | スペイン語 |
zh_CN | 中国語簡体字 |
zh_TW | 中国語繁体字 |
fr | フランス語 |
vi | ベトナム語 |
de | ドイツ語 |
id | インドネシア語 |
it | イタリア語 |
ko | 韓国語 |
pt | ポルトガル語 |
ru | ロシア語 |
th | タイ語 |
リクエスト
{
"report_type": "learners",
"language": "ja",
"time_zone": "Asia/Tokyo"
}
レスポンス
{
"status": "success",
"data": {
"status": "pending",
"report_type": "learners",
"language": "ja",
"time_zone": "Asia/Tokyo"
}
}
レスポンスが成功した場合、report.export.status
のメソッドから、レポートのエクスポートステータスをトラッキングすることができます。また、レポートのダウンロードURLはreport.export.status
のメソッドから確認することができます。
ユニークなリクエストの制限
各種類のレポートは一度に一つだけエクスポートできます。進行中のエクスポートに対してリクエストを送信すると、現在のエクスポートの状況が返されます。異なる属性(例:言語やタイムゾーン)でレポートをエクスポートしたい場合は、進行中のエクスポートが完了してからリクエストを送信してください。
エラー
コード | 説明 |
---|---|
invalid_report_type | 指定されたレポートタイプは無効です。 |
invalid_language | 指定された言語は無効です。 |
invalid_time_zone | 指定されたタイムゾーンは無効です。 |
report.export.status
このメソッドはreport.export
で送信したレポートのエクスポートステータスを確認します。
URL
https://customdomain.com/api/report.export.status
Arguments
Argument | 必須 | 説明 |
---|---|---|
report_type | 任意 | エクスポートするレポートのタイプを指定します。有効な属性は以下をご参照ください。report_id をリクエストに含めない場合は、必ず含めてください。また、report_id と併用してリクエストに含めることはできません。 |
report_id | 任意 | エクスポートするレポートのIDを指定します。report_type をリクエストに含めない場合は、必ず含めてください。また、report_type と併用してリクエストに含めることはできません。 |
report_type
属性
有効なレポートのタイプ | インターフェース上での名称 |
---|---|
activities | 課題 |
activity_solutions | 設問正答 |
courses | コース |
learners | 受講者 |
people | メンバー |
submission_answers | 設問回答 |
submission_rates | 提出率 |
submissions | 提出物 |
video_analytics | 動画視聴履歴 |
udemy_user_activity * | Udemyユーザーアクティビティ |
udemy_user_course_activity * | Udemyユーザーコースアクティビティ |
udemy_user_progress * | Udemyユーザー進行状況 |
* 一部組織でのみ有効
リクエスト
{
"report_type": "learners"
}
レスポンス
レスポンスが成功した場合、レポートのエクスポートステータスを確認することができます。以下はステータスの定義となります。
"pending"
: レポートのエクスポートが待機中であることを示します。"started"
: レポートのエクスポートが開始されたことを示します。"finished"
: レポートのエクスポートが完了したことを示します。この場合、1時間有効なレポートのダウンロードURLが表示されます。
{
"status": "success",
"data": {
"status": "finished",
"report_type": "learners",
"language": "ja",
"time_zone": "Asia/Tokyo",
"started_at": "2024-02-13T07:55:31.960Z",
"finished_at": "2024-02-13T07:55:32.286Z",
"data_updated_at": "2024-02-07T04:59:38.513Z",
"row_count": 2345,
"url": "https://storage.coursebase.co/report-exports/ABCDEFG/Learners/csv/Learners.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AAA%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20240213T075532Z&X-Amz-Expires=900&X-Amz-Signature=AAAA&X-Amz-SignedHeaders=host&x-id=GetObject"
}
}
エクスポートが完了したレポートのダウンロードURLは1時間有効です。有効期限が切れたダウンロードURLにアクセスした場合、not_found
エラーとなります。この場合、report.export
メソッドから、再度レポートのエクスポートをリクエストする必要があります。
ステータスプロパティ
プロパティ | 説明 |
---|---|
status | レポートステータス: "pending" 、 "started" 、又は "finished" |
report_type | エクスポートされるレポートのレポートタイプ |
time_zone | エクスポートされるレポートのタイムゾーン |
started_at | (レポートステータスが"started" 又は "finished" の場合のみ) レポートのエクスポートが開始した日時 |
finished_at | (レポートステータスが"finished" の場合のみ) レポートのエクスポートが完了した日時 |
data_updated_at | (レポートステータスが"finished" の場合のみ) レポート内のデータが最後に更新された日時 |
row_count | (レポートステータスが"finished" の場合のみ) 完了したレポートに含まれる行数 |
url | (レポートステータスが"finished" の場合のみ) 完了したレポートのダウンロードURL |
エラー
コード | 説明 |
---|---|
invalid_report_type | 指定されたレポートタイプは無効です。 |
not_found | レポートエクスポートが見つかりません。エクスポートが開始されたか確認してください。 |
← バッチリクエスト