CandidateLaunch
https://us1.proctorapi.comBody
Het kandidaatverzoek om een kandidaat-URL aan te maken.
Moet een reguliere expressie zijn om de URL's van de examenpagina's te matchen (de URL van het examen) en eventuele omleidingen. In gevallen waar vragen op meerdere pagina's staan, is dit belangrijk. Alles wat wordt bezocht dat niet overeenkomt met deze parameter of de exam_end-parameter wordt beschouwd als het verlaten van het examen en de sessie wordt als voltooid beschouwd.
Als URL's de examenstatus niet weerspiegelen (single-page-applicaties), kan de postMessage-methode worden gebruikt om de exam_take-status te communiceren naar de Proctorio-extensie via:
window.top.postMessage( ["exam_state_change", "exam_take"], "https://getproctorio.com" );
Bij gebruik van de postMessage-methode moet "exam_take" een "post_message_nofication"-waarde hebben.
Moet een reguliere expressie zijn om de eindpagina van het examen te matchen (de URL waarnaar de kandidaat wordt doorgestuurd na voltooiing van het examen) en eventuele omleidingen. Dit activeert het einde van de proctoring-sessie en beschouwt het examen als ingeleverd. Alles wat wordt bezocht dat niet overeenkomt met deze parameter of de exam_take-parameter wordt beschouwd als het verlaten van het examen en de proctoring-sessie wordt beëindigd, maar de poging wordt niet als correct ingeleverd beschouwd.
Als URL's de examenstatus niet weerspiegelen (single-page-applicaties), kan de postMessage-methode worden gebruikt om de exam_end-status te communiceren naar de Proctorio-extensie via:
window.top.postMessage( ["exam_state_change", "exam_end"], "https://getproctorio.com" );
Bij gebruik van de postMessage-methode moet "exam_end" een "post_message_nofication"-waarde hebben.
1, Maximum value is 18000.^[a-zA-Z0-9-]*$.De parameter "domain" is optioneel. Door "domain" te gebruiken, worden de examenpagina's en het Reviewer Center geladen met uw gewenste domein.
De URL zal niet langer verwijzen naar de pagina https://getproctorio.com. In plaats daarvan worden de kandidaten/reviewers doorgestuurd naar de nieuwe route die u in de parameter hebt opgegeven, bijvoorbeeld: https://yourdomain.com.
Dit maakt het gebruik van aanvullende cross-origin beveiligingsmechanismen mogelijk, die SameSite-cookies of de X-Frame-Options: SAMEORIGIN-header gebruiken. Het biedt ook de mogelijkheid om gegevensverlies in sessie- of lokale opslag te voorkomen gerelateerd aan opslagpartitioneringsfunctionaliteit van de browser.
De pagina https://getproctorio.com heeft de volgende functionaliteiten: controleren of een kandidaat/reviewer de ondersteunde browser heeft geïnstalleerd. Controleren of een kandidaat/reviewer de Proctorio-extensie heeft geïnstalleerd. Om deze functionaliteiten te behouden is een link naar https://getproctorio.com met inhoud die het doel van getproctorio.com beschrijft noodzakelijk op de pagina van de instelling.
Endpoint-URL voor de extensie-toelatingslijst. HTTP-methode: GET. Het antwoord moet een JSON-gestringificeerde array zijn. Bijvoorbeeld: '[extensionID1,extensionID2]'.
De extension_allowlist_url kan worden gebruikt voor kandidaten die door de instelling geforceerd ingeschakelde extensies in de browser hebben. Deze extensies kunnen niet handmatig door de kandidaat worden uitgeschakeld.
De waarde van 'extensionID' moet overeenkomen met het ID van de extensie die actief mag blijven tijdens de proctored poging.
^[a-zA-Z0-9-]*$.^(?!goodbye$|support$|update$|setup$|invalid$).*.Vertegenwoordigt een cursus-ID of een sectie-ID-waarde. Deze parameter is optioneel. Het biedt een gedetailleerdere sortering van de examens.
Dat betekent dat examens met dezelfde "exam_tag" maar een andere "section_id" als verschillende examens worden behandeld.
De parameter "section_id" is afhankelijk van de parameter "roster_url" en kan niet zonder deze worden gebruikt.
Roster-endpoint-URL. HTTP-methode: GET. Het antwoord moet een JSON-gestringificeerde array zijn. Bijvoorbeeld: '[["id1","name1"],["id2","name2"]]'
De waarde van "id" moet overeenkomen met de parameter "userId", uniek zijn voor de kandidaat en niet-herhalend binnen de roster.
Het roster-endpoint wordt gevalideerd door Proctorio, wat betekent dat als een ongeldig endpoint wordt opgegeven of als "userId" niet overeenkomt met een "id"-waarde in de array, de pogingen als "Unmatched" worden gemarkeerd in het Review Center.
De roster_url wordt alleen opgehaald door de eindgebruiker die het Review Center of de examenovereenkomstpagina bezoekt, aan de clientzijde, niet door Proctorio direct. Dit betekent dat het kan worden beveiligd met de sessie voor die specifieke gebruiker. Dit is opzettelijk, en als zodanig is het niet nodig dat de PII op enig moment aan Proctorio wordt doorgegeven, of het nu een Candidate Launch-verzoek of een Reviewer Launch-verzoek betreft.
Reacties200application/jsonGeeft succes aan en retourneert een kandidaat-URL.
400application/jsonGeeft een ongeldig verzoek aan.
401application/jsonGeeft een niet-geautoriseerd antwoord aan.
2154 - Account niet actief.
2155 - Onjuiste regio.
2655 - Ongeldige api_key.
Geeft succes aan en retourneert een kandidaat-URL.
Geeft een ongeldig verzoek aan.
Geeft een niet-geautoriseerd antwoord aan.
2154 - Account niet actief.
2155 - Onjuiste regio.
2655 - Ongeldige api_key.
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"
}