Для взаимодействия с API интерфейсом Oqylyq, необходимо пройти авторизацию. После успешной авторизации система вернет Access-Token, который нужно добавлять к каждому запросу API. Полученный Access-Token передается в заголовке Header - Authorization: AccessToken.
Пример авторизации через API:
POST-запрос на ресурс https://api.oqylyq.kz/oauth/token, с телом запроса:
{
"username": "string",
"password": "string",
"grant_type": "password",
"client_id": 0,
"client_secret": "string",
"refresh_token": "string"
} Где username, это Номер телефона, Email или Логин личного кабинета. password – пароль от личного кабинета. grant_type – тип авторизации. client_id – id провайдера авторизации client_secret – Секретный ключ провайдера авторизации
Ответ от сервера -
Создание задания, группы и пользователя одним запросом:
Для быстрого создания задания, предусмотрен отдельный метод API, Factory Assignment, описанный в файле swagger.
В теле запроса, необходимо передать 3 массива данных.
Первый массив – Информация о студенте.
'student' => [
'external_id' => 0, // Внешний ID студента
'user' => [
'firstname' => NULL,
'lastname' => NULL,
'email' => NULL,
'password' => NULL // опционально
]
] Где external_id – это id пользователя / студента в вашей системе. В массиве user, описывается информация о пользователе.
Второй массив – Информация о группе студента.
'group' => [
'external_id' => 0, // ID группы студента
'name' => NULL, // Название группы
'description' => NULL // Описание группы
] Где external_id – это id группы в вашей системе.
Третий массив – Информация об экзамене / задании.
'assignment' => [
'type' => 'external',
'external_id' => 0, // Внешний ID задания
'external_url' => str_replace('&', '&', 'Ссылка на задание'),
'settings' => [
'proctoring' => true,
'proctoring_settings' => [
'camera_record' => true,
'two_camera' => false,
'screen_record' => true,
'head_identity' => true
],
'exit_url' => str_replace('&', '&', 'Обратная ссылка на портал'),
]
], type – Тип задания, в случае если тип задания – external, в запросе нужно указать external_id и external_url. Где external_id – это id задания в вашей системе, а external_url – ссылка на задание, например https://ваша-система.ltd/exam/1.html. Переданный external_url, в будущем будет открыт в iframe. exit_url – нужен для обратного перехода в вашу систему, после того как будет завершена сессия задания.
Четвертый массив – Дополнительные параметры (опционально).
'session_data' => [
'query' => [
// Ваши дополнительные параметры
]
] Данный массив является опциональным. Переданные данные, могут являться уникальными (персонализированными) для каждого студента. Тогда как параметры в массиве assignment, должны быть статичными для всех студентов.
Случаи, когда данный массив может использоваться: Например, в параметр query – можно передать некий ключ / хэш авторизации пользователя. Параметры переданные в query, будут добавлены к ссылке external_url.
Запрос, отправленный на https://api.oqylyq.kz/api/external-session/assignment.json, можно неоднократно дублировать. Дублированные запросы лишь обновляют данные. Основной ключ, по которому происходит обновление – external_id в каждом переданном массиве.
Результатом запроса, будет ответ:
{
"qrcode_link": "string",
"qrcode_image": "string"
} qrcode_link – уникальная ссылка на задание qrcode_image – QR-код, изображение в base64 формате.