CandidateLaunch
https://us1.proctorapi.comBody
La solicitud de candidato para crear una URL de candidato.
Debe ser una expresión regular para coincidir con las URL de las páginas durante el examen (la URL del examen) y cualquier redirección. En los casos en que hay preguntas en varias páginas, esto es importante. Cualquier otra página visitada que no coincida con este parámetro o con el parámetro exam_end se considerará como abandono del examen y la sesión se considerará completada.
En caso de que las URL no reflejen el estado del examen (aplicaciones de una sola página), se puede utilizar el método postMessage para comunicar el estado exam_take a la extensión de Proctorio mediante:
window.top.postMessage( ["exam_state_change", "exam_take"], "https://getproctorio.com" );
Al utilizar el método postMessage, "exam_take" debe tener un valor "post_message_nofication".
Debe ser una expresión regular para coincidir con la página de finalización del examen (la URL a la que se dirige al candidato una vez completado el examen) y cualquier posible redirección. Esto activa el fin de la sesión de supervisión y considera que el examen ha sido enviado. Cualquier otra página visitada que no coincida con este parámetro o con el parámetro exam_take se considerará como abandono del examen y la sesión de supervisión finalizará, pero el intento no se considerará como enviado correctamente.
En caso de que las URL no reflejen el estado del examen (aplicaciones de una sola página), se puede utilizar el método postMessage para comunicar el estado exam_end a la extensión de Proctorio mediante:
window.top.postMessage( ["exam_state_change", "exam_end"], "https://getproctorio.com" );
Al utilizar el método postMessage, "exam_end" debe tener un valor "post_message_nofication".
1, Maximum value is 18000.^[a-zA-Z0-9-]*$.El parámetro "domain" es opcional. Al utilizar "domain", las páginas del examen así como el Review Center se cargarán con el dominio deseado.
La URL ya no apuntará a la página https://getproctorio.com. En su lugar, los candidatos/revisores serán dirigidos a la nueva ruta que proporcionó en el parámetro, ejemplo: https://yourdomain.com.
Esto permite la utilización de mecanismos de seguridad de origen cruzado adicionales, que utilizan las cookies SameSite o el encabezado X-Frame-Options: SAMEORIGIN. También proporcionará la capacidad de evitar la pérdida de datos en la sesión o el almacenamiento local relacionada con la funcionalidad de particionamiento de almacenamiento del navegador.
La página https://getproctorio.com tiene las siguientes funcionalidades: Comprobar si un candidato/revisor tiene el navegador compatible instalado. Comprobar si un candidato/revisor tiene la extensión de Proctorio instalada. Para mantener estas funcionalidades, es necesario un enlace a https://getproctorio.com con contenido que describa el propósito de getproctorio.com en la página de la institución.
URL del endpoint de la lista de extensiones permitidas. Método HTTP: GET. La respuesta debe ser un array JSON en formato de cadena. Por ejemplo: '[extensionID1,extensionID2]'.
La extension_allowlist_url puede utilizarse para candidatos que tienen extensiones habilitadas de forma forzada en el navegador por la institución. Estas extensiones no pueden ser deshabilitadas manualmente por el candidato.
El valor 'extensionID' debe corresponder al ID de la extensión que se permitirá permanecer activa durante el intento supervisado.
^[a-zA-Z0-9-]*$.^(?!goodbye$|support$|update$|setup$|invalid$).*.Representa un ID de curso o un valor de ID de sección. Este parámetro es opcional. Proporciona una clasificación más detallada de los exámenes.
Esto significa que los exámenes que tienen el mismo "exam_tag" pero diferente "section_id" se tratarán como exámenes diferentes.
El parámetro "section_id" depende del parámetro "roster_url" y no puede utilizarse sin él.
URL del endpoint del listado de participantes. Método HTTP: GET. La respuesta debe ser un array JSON en formato de cadena. Por ejemplo: '[["id1","name1"],["id2","name2"]]'
El valor "id" debe corresponder al parámetro "userId", ser único para el candidato y no repetirse dentro del listado.
El endpoint del listado es validado por Proctorio, lo que significa que si se proporciona un endpoint no válido o si "userId" no coincide con ningún valor "id" dentro del array, los intentos se marcarán como "Unmatched" en el Review Center.
La roster_url solo es consultada por el usuario final que accede al Review Center o a la página del acuerdo del examen, del lado del cliente, no por Proctorio directamente. Esto significa que puede asegurarse con la sesión de ese usuario en particular. Esto es intencional, y como tal no es necesario que los datos personales se envíen a Proctorio en ningún momento, ya sea en una solicitud de Candidate Launch o de Reviewer Launch.
Respuestas200application/jsonIndica éxito y devuelve una URL de candidato.
400application/jsonIndica una solicitud incorrecta.
401application/jsonIndica una respuesta no autorizada.
2154 - Cuenta no activa.
2155 - Región incorrecta.
2655 - api_key inválido.
Indica éxito y devuelve una URL de candidato.
Indica una solicitud incorrecta.
Indica una respuesta no autorizada.
2154 - Cuenta no activa.
2155 - Región incorrecta.
2655 - api_key inválido.
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"
}