Перейти к содержимому
Разработчикам и интеграторам

Frontend SDK: встраивание прокторинга TrustExam

Эта статья показывает, как подключить TrustExam Proctoring SDK к вашей веб-странице и управлять попытками экзаменов на фронтенде.

Материал проверен:

Подключение SDK

Добавьте скрипт на вашу страницу:

<script src="https://cdn.trustexam.ai/extension/app.js"></script>
<script src="https://cdn.trustexam.ai/extension/app.js"></script>
<script src="https://cdn.trustexam.ai/extension/app.js"></script>

Инициализация

'''javascript'''

Proctoring.initialize('.wrapper', {
  language: 'ru', // 'en' / 'ru' / 'kz'
  token: 'external_session.token из ответа backend API',

  protector: {
    match: '.question-wrapper',
    textColor: '#000'
  },

  onMounted: function () { /* SDK смонтирован */ },
  onConfigured: function () { /* конфигурация загружена */ },
  onStarted: function () { /* экзамен начат */ },
  onFinished: function () { /* экзамен завершён */ },
  onAction: function (action) { /* события / действия */ },
  onError: function (error) { /* обработка ошибок */ }
});
'''javascript'''

Proctoring.initialize('.wrapper', {
  language: 'ru', // 'en' / 'ru' / 'kz'
  token: 'external_session.token из ответа backend API',

  protector: {
    match: '.question-wrapper',
    textColor: '#000'
  },

  onMounted: function () { /* SDK смонтирован */ },
  onConfigured: function () { /* конфигурация загружена */ },
  onStarted: function () { /* экзамен начат */ },
  onFinished: function () { /* экзамен завершён */ },
  onAction: function (action) { /* события / действия */ },
  onError: function (error) { /* обработка ошибок */ }
});
'''javascript'''

Proctoring.initialize('.wrapper', {
  language: 'ru', // 'en' / 'ru' / 'kz'
  token: 'external_session.token из ответа backend API',

  protector: {
    match: '.question-wrapper',
    textColor: '#000'
  },

  onMounted: function () { /* SDK смонтирован */ },
  onConfigured: function () { /* конфигурация загружена */ },
  onStarted: function () { /* экзамен начат */ },
  onFinished: function () { /* экзамен завершён */ },
  onAction: function (action) { /* события / действия */ },
  onError: function (error) { /* обработка ошибок */ }
});

Параметры

  • selector (string)

    CSS-селектор контейнера (например, .wrapper), в который будет встроен интерфейс прокторинга.

  • language (string)

    Язык интерфейса: "en", "ru", "kz".

  • token (string)

    Значение external_session.token, полученное от backend-API.

  • protector (object, опционально)

    Настройки Content Protect:

    • match – селектор защищаемого элемента (например, .question-wrapper).

    • textColor – цвет текста внутри контейнера (для корректного отображения).

Колбэки

  • onMounted() – вызывается после монтирования SDK в DOM.

  • onConfigured() – SDK успешно сконфигурирован.

  • onStarted() – попытка экзамена начата.

  • onFinished() – попытка экзамена завершена.

  • onAction(action) – вызывается при внутренних событиях (например, фиксация нарушений).

  • onError(error) – вызывается при ошибке.

Основные методы

1. Proctoring.start()

'''javascript'''

Proctoring.start()
  .then(() => console.log('started'))
  .catch(err => console.log(err));
'''javascript'''

Proctoring.start()
  .then(() => console.log('started'))
  .catch(err => console.log(err));
'''javascript'''

Proctoring.start()
  .then(() => console.log('started'))
  .catch(err => console.log(err));

Запускает попытку экзамена после инициализации.

2. Proctoring.finish()

'''javascript'''

Proctoring.finish()
  .then(() => console.log('finished'))
  .catch(err => console.log(err));
'''javascript'''

Proctoring.finish()
  .then(() => console.log('finished'))
  .catch(err => console.log(err));
'''javascript'''

Proctoring.finish()
  .then(() => console.log('finished'))
  .catch(err => console.log(err));

Явно завершает попытку экзамена (например, при нажатии «Отправить»).

3. Proctoring.startNewAttempt()

'''javascript'''

Proctoring.startNewAttempt()
  .then(() => console.log('new attempt started'))
  .catch(err => console.log('cannot start new attempt'));
'''javascript'''

Proctoring.startNewAttempt()
  .then(() => console.log('new attempt started'))
  .catch(err => console.log('cannot start new attempt'));
'''javascript'''

Proctoring.startNewAttempt()
  .then(() => console.log('new attempt started'))
  .catch(err => console.log('cannot start new attempt'));

Запускает новую попытку, если это разрешено настройками задания.

4. Вспомогательные методы

  • Proctoring.isFinished() – возвращает true, если задание уже завершено.

  • Proctoring.isCanStartNewAttempt() – возвращает true, если возможен запуск новой попытки.

Content Protect

Content Protect защищает содержимое от:

  • скриншотов и записи экрана,

  • инструментов удалённого управления, пытающихся захватить область экзамена.

Чтобы включить Content Protect:

  • На backend: установите content_protect: true в assignment.settings.proctoring_settings.

  • На frontend: передайте объект protector в Proctoring.initialize:

protector: { match: '.question-wrapper', textColor: '#000' }
protector: { match: '.question-wrapper', textColor: '#000' }
protector: { match: '.question-wrapper', textColor: '#000' }

Где:

  • match – селектор защищаемого элемента.

  • textColor – цвет текста внутри контейнера.

СЛЕДУЮЩИЙ ШАГ

Не удалось решить проблему?

Выберите, кто поможет с вашим вопросом.

Техническая проблема

Камера, микрофон, приложение или проверка оборудования: откройте чат поддержки в TrustExam, если он доступен в вашей сессии. Если войти не получается, используйте контакт из приглашения.

Открыть TrustExam

Доступ, расписание или результат

Обратитесь к организатору по контактам в приглашении. Он проверяет назначение и время экзамена, решает вопросы оценок, пересдач, апелляций и специальных условий.

Что проверить перед обращением
Что указать в сообщении о проблеме
  • Название экзамена и этап, на котором возникла ошибка.
  • Время проблемы и часовой пояс.
  • Точный текст ошибки, ОС и версия браузера или приложения.
  • Что вы уже проверили; снимок ошибки без экзаменационных заданий и лишних личных данных.

Не отправляйте пароль, коды входа или документы в обычном сообщении. Для проверки личности используйте только предусмотренный экзаменом защищённый шаг.