Новости

Интеграция по API Oqylyq Прокторинг

Инструкции
Для взаимодействия с 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.

POST-запрос на ресурс https://api.oqylyq.kz/api/external-session/assignment.json.

Тело запроса, описано в файле swagger и по текущей ссылке - https://pastebin.com/4WLTsNBc.

В теле запроса, необходимо передать 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 формате.