Markdownで表示

CandidateLaunch

POST/v2/candidate/launch
ベース URL
https://us1.proctorapi.com
利用可能なリージョン10 リージョン
受験者 URL を作成します。
application/json

Body

受験者 URL を作成するための受験者リクエスト。

pre_auth
string
MobileExam アプリケーションで受験者を事前認証するために使用される URL です。
launch_url
string必須
有効な絶対 URL を含む必要があり、追加の認証なしで試験開始ページに完全にリダイレクトされます。"launch_url" の値は、リダイレクトと共に "exam_start" の正規表現パターンに含める必要があります。
exam_start
string必須
試験開始ページと一致する正規表現です。これより前のページはプレ試験ページと見なされ、無視されます。これは受験者が試験を開始する前にいる URL です。"launch_url" の値は、リダイレクトと共に "exam_start" の正規表現パターンに含める必要があります。
exam_take
string必須

試験中のページ URL(試験の URL)およびリダイレクトと一致する正規表現である必要があります。複数ページにわたる問題がある場合、これは重要です。これまたは exam_end パラメータと一致しない他のページにアクセスした場合、試験を離れたと見なされ、セッションは完了したと見なされます。

URL が試験の状態を反映しない場合(シングルページアプリケーション)、postMessage メソッドを使用して、Proctorio 拡張機能に exam_take の状態を通知できます:

window.top.postMessage( ["exam_state_change", "exam_take"], "https://getproctorio.com" );

postMessage メソッドを使用する場合、"exam_take" には "post_message_nofication" の値が必要です。

exam_end
string必須

試験終了ページ(試験が完了した際に受験者が移動する URL)および可能なリダイレクトと一致する正規表現である必要があります。これにより監視セッションが終了し、試験が送信されたと見なされます。これまたは exam_take パラメータと一致しない他のページにアクセスした場合、試験を離れたと見なされ、監視セッションは終了しますが、正常に送信されたとは見なされません。

URL が試験の状態を反映しない場合(シングルページアプリケーション)、postMessage メソッドを使用して、Proctorio 拡張機能に exam_end の状態を通知できます:

window.top.postMessage( ["exam_state_change", "exam_end"], "https://getproctorio.com" );

postMessage メソッドを使用する場合、"exam_end" には "post_message_nofication" の値が必要です。

expire
integer(int32)
受験者 URL が無効になるまでの秒数。このパラメータのデフォルト値は 18000 秒です。値が渡されない場合、デフォルト値が適用されます。整数値である必要があります。
Minimum value is 1, Maximum value is 18000.
exam_settings
object必須
表示 30 exam_settings 属性非表示 exam_settings 属性
record_video
boolean
受験者にウェブカメラを要求し、試験の全期間にわたってビデオを録画します。
record_audio
boolean
受験者にマイクを要求し、試験の全期間にわたって音声を録音します。
record_screen
boolean
試験の全期間にわたってデスクトップ画面全体をキャプチャして録画します。
record_web_traffic
boolean
試験中にアクセスしたウェブサイトのスクリーンショットと URL をキャプチャします。
record_desk
integer(int32)

0 - 設定はオフです。

1 - 受験者に試験中に定期的にデスクスキャンを行うことを要求します。最初のスキャンは試験開始時に行われます。その後のスキャンは、前回から通常30〜45分の間隔で定期的にトリガーされます。以下の設定を true に設定する必要があります: record_video、verify_video。

2 - 受験者に試験開始時にデスクスキャンを行うことを要求します。以下の設定を true に設定する必要があります: record_video、verify_video。

Values are 0, 1, 2.
verify_video
boolean
ウェブカメラが動作しており、仮想化または故障していないことを確認します。以下の設定を true に設定する必要があります: record_video。
verify_audio
boolean
マイクが動作しており、仮想化またはミュートされていないことを確認します。以下の設定を true に設定する必要があります: record_audio。
verify_desktop
boolean
デスクトップ録画が動作しており、正しく録画されていることを確認します。以下の設定を true に設定する必要があります: record_screen。
verify_id
integer(int32)

0 - 設定はオフです。

1 - 受験者に試験開始前に写真付き身分証明書の提示を要求し、自動的にスキャンされます。

2 - 受験者に試験開始前に写真付き身分証明書の提示を要求します。その後、身分証明書は Proctorio のエージェントによって確認・検証され、試験への参加が許可されます。以下の設定を true に設定する必要があります: record_video、verify_video。

Values are 0, 1, 2.
verify_signature
boolean
受験者に試験開始前に同意書への署名を要求します。
full_screen
integer(int32)

0 - 設定はオフです。

1 - 試験をフルスクリーンで強制し、他のアプリケーションやウェブサイトへのアクセスを防ぎます。試験ページから累計15秒以上離れると、試験から退出させられます。以下の設定を true に設定する必要があります: close_tabs、one_screen。tabs の値が 1 である必要があります。

2 - 試験をフルスクリーンで強制し、他のアプリケーションやウェブサイトへのアクセスを防ぎます。試験ページから累計30秒以上離れると、試験から退出させられます。以下の設定を true に設定する必要があります: close_tabs、one_screen。tabs の値が 1 である必要があります。

3 - 試験をフルスクリーンで強制し、他のアプリケーションやウェブサイトへのアクセスを防ぎます。試験ページから離れると即座に試験から退出させられます。以下の設定を true に設定する必要があります: close_tabs、one_screen。tabs の値が 1 である必要があります。

Values are 0, 1, 2, 3.
disable_clipboard
boolean
コピー/ペースト機能を無効にします。
tabs
integer(int32)

0 - 設定はオフです。

1 - 試験中に新しいタブやウィンドウを無効にします。

2 - 試験ページに埋め込まれたリンクを除き、試験中に新しいタブやウィンドウを無効にします。

Values are 0, 1, 2.
close_tabs
boolean
試験開始前に他のすべてのタブとウィンドウを閉じることを強制します。
one_screen
boolean
受験者に試験開始前にモニターを1台のみにすることを強制し、試験中に追加のモニターの接続を防ぎます。
disable_printing
boolean
試験内容の配布を防ぐため、印刷を無効にします。
block_downloads
boolean
受験者がブラウザ経由でファイルをダウンロードすることを防ぎます。
clear_cache
boolean
試験が送信された後にシステムの一時ファイルを削除します。
disable_right_click
boolean
右クリック機能を無効にします。
calculator
integer(int32)

0 - 設定はオフです。

1 - 受験者に基本的な機能を備えた画面上の電卓を提供します。

2 - 受験者に科学計算機能を備えた画面上の電卓を提供します。

3 - 受験者にグラフ機能を備えた画面上の電卓を提供します。

Values are 0, 1, 2, 3.
whiteboard
boolean
受験者に画面上のメモ帳と描画ツールを提供します。
disable_extensions
boolean
許可リストに登録されたものを除き、受験者が試験中に他のブラウザ拡張機能を使用することを防ぎます。
live_proctor
boolean
この設定により、試験監督者は試験中に受験者を監視し、即座に介入できます。また、完全な録画とレポートは Proctorio Review Center から利用可能です。以下の設定を true に設定する必要があります: record_video、verify_video。
mobile
boolean
MobileExam アプリケーションを使用して、モバイルデバイスで試験を受けることを許可します。起動リクエストで pre_auth の使用が必要です。verify_id: 2 の設定とは互換性がありません。
advanced_program_detection
boolean
試験中に他のアプリケーションの使用を防ぎます。Secure Companion アプリケーションの使用が必要です。
advanced_hardware_detection
boolean
試験中のハードウェア変更を Review Center に記録します。Secure Companion アプリケーションの使用が必要です。
advanced_vm_detection
boolean
仮想マシンを使用した試験の受験を防ぎます。Secure Companion アプリケーションの使用が必要です。
allowed_macos_apps
array[string]
advanced_program_detection 使用時に開いたままにできる許可されたアプリケーションを最大10個リストできます。MacOS ではアプリケーションは bundle ID で識別されます。
allowed_windows_apps
array[object]
advanced_program_detection 使用時に開いたままにできる許可されたアプリケーションを最大10個リストできます。Windows ではアプリケーションは binary_name、product_name、company_name で識別されます。
表示 3 allowed_windows_apps 属性非表示 allowed_windows_apps 属性
binary_name
string
アプリケーションのバイナリ名です。
product_name
string
アプリケーションの製品名です。
company_name
string
アプリケーションの会社名です。
strict_apps_validation
integer(int32)

advanced_program_detection、allowed_macos_apps、allowed_windows_apps を使用する際の許可されたアプリケーションの検証の厳密度を設定します。

0 - 設定はオフです。

1 - デフォルトの検証です。

Values are 0, 1.
record_desk_option
integer(int32)
Values are 0, 1, 2.
redirect_url
string
redirect_url パラメータはオプションです。指定された場合、受験者は試験を正常に送信した後にこの URL にリダイレクトされます。また、受験者が試験を正常に終了しなかった場合、「Attempt End」メッセージ内の「Okay」ボタンをクリックした際にその URL にリダイレクトされます。
redirect_settings
object
表示 2 redirect_settings 属性非表示 redirect_settings 属性
graceful_submission_url
string
試験を正常に送信した後、受験者は graceful_submission_url にリダイレクトされます。
ungraceful_submission_url
string
試験が正常に終了しなかった場合、受験者は「Attempt End」メッセージ内の「Okay」ボタンをクリックした際に ungraceful_submission_url にリダイレクトされます。
attempt_id
string
受験者の特定の試行に対する一意の識別子です。英数字(ハイフンも許容)の値を含む必要があります。"attempt_id" の値は、同じ試行を再開する受験者のために新しい受験者 URL を生成する際に再利用する必要があります。
Format should match: ^[a-zA-Z0-9-]*$.
domain
string

"domain" パラメータはオプションです。"domain" を使用することで、試験ページおよび Reviewer Center が指定したドメインで読み込まれます。

URL は https://getproctorio.com ページを指さなくなります。代わりに、受験者/レビューアーはパラメータで指定した新しいルートに転送されます。例: https://yourdomain.com。

これにより、SameSite cookies や X-Frame-Options: SAMEORIGIN ヘッダーを使用する追加のクロスオリジンセキュリティメカニズムを利用できます。また、ストレージパーティショニングブラウザ機能に関連するセッションまたはローカルストレージのデータ損失を防ぐことができます。

https://getproctorio.com ページには以下の機能があります: 受験者/レビューアーがサポートされているブラウザをインストールしているかの確認。受験者/レビューアーが Proctorio 拡張機能をインストールしているかの確認。これらの機能を維持するには、機関のページに getproctorio.com の目的を説明するコンテンツと共に https://getproctorio.com へのリンクが必要です。

display_name
string
"roster_url" と "user_id" に受験者の名前が含まれていない場合にのみ使用します。"display_name" の情報は保存されず、Review Center でレビューアーやプロクターが利用することはできません。受験者側のライブ ID 認証と試験同意書のためにのみ使用されます。
extension_allowlist_url
string

拡張機能許可リストのエンドポイント URL です。HTTP メソッド: GET。レスポンスは JSON 文字列化された配列である必要があります。例: '[extensionID1,extensionID2]'。

extension_allowlist_url は、機関によってブラウザで拡張機能が強制的に有効化されている受験者に使用できます。これらの拡張機能は受験者が手動で無効にすることはできません。

'extensionID' の値は、監視試行中にアクティブのまま許可される拡張機能の ID に対応する必要があります。

break_settings
object
表示 5 break_settings 属性非表示 break_settings 属性
number
object必須
許可される休憩の回数を定義します。
Minimum value is 1, Maximum value is 10.
duration
object必須
休憩の時間を定義します。
Minimum value is 1, Maximum value is 30.
cumulative
boolean
休憩の時間が複数の休憩間で共有されるか (true)、各休憩ごとに定義されるか (false) を示します。
on_time_exceeded
integer(int32)

休憩時間を超過した場合のアクションです。

0 - 休憩時間の超過が可能です。

1 - 休憩時間を超過した場合、受験者は試験から退出させられます。

Values are 0, 1.
desk_scan_after_break
boolean
休憩後にデスクスキャンが必要かどうかを示します。
branding
object
表示 3 branding 属性非表示 branding 属性
primary_color
string
16進カラーコードは、一部のユーザーインターフェースコントロールのプライマリカラーを指定します。値は # なしの6桁のコードである必要があります。学習プラットフォームが Proctorio のカラースキームと自社のカラースキームを合わせ、ヘッダーでブランドを強調できます。文字列値である必要があります。
Format should match: ^[a-zA-Z0-9]*$.
secondary_color
string
16進カラーコードは、一部のユーザーインターフェースコントロールのセカンダリカラーを指定します。値は # なしの6桁のコードである必要があります。学習プラットフォームが Proctorio のカラースキームと自社のカラースキームを合わせ、ブランドを強調できます。文字列値である必要があります。
Format should match: ^[a-zA-Z0-9]*$.
logo_url
string
カスタムロゴのエンドポイント URL です。HTTP メソッド: GET。レスポンスは画像である必要があります。CORS セーフ。ロゴの高さは 32px で、幅は可変です。
post_auth
string
post_auth は pre_auth を必要とします。受験者がプラットフォームにログインした後の事前認証後に使用されます。このパラメータは、事前チェックが開始されるべきポイントを定義します。事前チェックが完了すると、受験者は launch_url に送られます。
pre_auth_bypass
boolean
pre_auth_bypass はオプションです。使用して true に設定すると、MobileExam アプリケーションでの受験者の事前認証をバイパスできます。
user_id
string必須
この特定のユーザーに固有の英数字(ハイフンも許容)の値を含む必要があります。
Format should match: ^[a-zA-Z0-9-]*$.
exam_tag
string
これは試験 ID タグであり、URL の末尾に追加されます。exam_tag にはスペースを含めることができず、NON-ASCII 文字も含めることができません。使用した場合、Proctorio はそれをレスポンスに反映します。使用しない場合、ハッシュなしの URL が生成されるため、使用前に学習プラットフォームが追加する必要があります。Proctorio は exam_tag が提供されない場合に roster_url の使用を推奨します。
Format should match: ^(?!goodbye$|support$|update$|setup$|invalid$).*.
section_id
string

コース ID またはセクション ID の値を表します。このパラメータはオプションです。試験のより詳細なソートを提供します。

これは、同じ "exam_tag" でも異なる "section_id" を持つ試験が、異なる試験として扱われることを意味します。

"section_id" パラメータは "roster_url" パラメータに依存しており、それなしでは使用できません。

roster_url
string

名簿のエンドポイント URL です。HTTP メソッド: GET。レスポンスは JSON 文字列化された配列である必要があります。例: '[["id1","name1"],["id2","name2"]]'

"id" の値は "userId" パラメータに対応し、受験者に固有で、名簿内で重複しないものである必要があります。

名簿エンドポイントは Proctorio によって検証されるため、無効なエンドポイントが提供された場合、または "userId" が配列内のいずれの "id" 値とも一致しない場合、試行は Review Center で「Unmatched」としてマークされます。

roster_url は Review Center または試験同意ページにアクセスするエンドユーザーによってクライアントサイドでフェッチされ、Proctorio が直接フェッチするものではありません。そのため、特定のユーザーのセッションで保護できます。これは意図的なものであり、受験者起動リクエストやレビューアー起動リクエストにおいて、PII を Proctorio に渡す必要はありません。

レスポンス

200application/json

成功を示し、受験者 URL を返します。

400application/json

不正なリクエストを示します。

401application/json

未承認のレスポンスを示します。

2154 - アカウントが有効ではありません。

2155 - リージョンが正しくありません。

2655 - api_key が無効です。

POST/v2/candidate/launch
curl --request POST \
  --url https://us1.proctorapi.com/v2/candidate/launch \
  --header 'Content-Type: application/json' \
  --header 'api_key: $API_KEY' \
  --data '{"launch_url":"https://example.com/exam","exam_start":"https://example.com/exam","exam_take":"https://example.com/exam","exam_end":"https://example.com/exam","exam_settings":{"record_video":true,"record_audio":false,"record_screen":false,"verify_video":false},"user_id":"example-id-123"}'
import requests

url = "https://us1.proctorapi.com/v2/candidate/launch"

payload = {
    "launch_url": "https://example.com/exam",
    "exam_start": "https://example.com/exam",
    "exam_take": "https://example.com/exam",
    "exam_end": "https://example.com/exam",
    "exam_settings": {
        "record_video": True,
        "record_audio": False,
        "record_screen": False,
        "verify_video": False
    },
    "user_id": "example-id-123"
}
headers = {
    "api_key": "$API_KEY",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const fetch = require('node-fetch');

const url = 'https://us1.proctorapi.com/v2/candidate/launch';
const options = {
  method: 'POST',
  headers: {api_key: '$API_KEY', 'Content-Type': 'application/json'},
  body: '{"launch_url":"https://example.com/exam","exam_start":"https://example.com/exam","exam_take":"https://example.com/exam","exam_end":"https://example.com/exam","exam_settings":{"record_video":true,"record_audio":false,"record_screen":false,"verify_video":false},"user_id":"example-id-123"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Post,
    RequestUri = new Uri("https://us1.proctorapi.com/v2/candidate/launch"),
    Headers =
    {
        { "api_key", "$API_KEY" },
    },
    Content = new StringContent("{\"launch_url\":\"https://example.com/exam\",\"exam_start\":\"https://example.com/exam\",\"exam_take\":\"https://example.com/exam\",\"exam_end\":\"https://example.com/exam\",\"exam_settings\":{\"record_video\":true,\"record_audio\":false,\"record_screen\":false,\"verify_video\":false},\"user_id\":\"example-id-123\"}")
    {
        Headers =
        {
            ContentType = new MediaTypeHeaderValue("application/json")
        }
    }
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}
リクエスト例
{
  "launch_url": "https://example.com/exam",
  "exam_start": "https://example.com/exam",
  "exam_take": "https://example.com/exam",
  "exam_end": "https://example.com/exam",
  "exam_settings": {
    "record_video": true,
    "record_audio": false,
    "record_screen": false,
    "verify_video": false
  },
  "user_id": "example-id-123"
}