Как получить имя пользователя и адрес электронной почты из курса в Storyline
Здесь вы узнаете, как получить из курса Storyline имя и адрес электронной почты учащегося и передать его в xAPI утверждение. Это позволит отслеживать опыт обучения пользователя, используя его адрес электронной почты в качестве уникального идентификатора.
Настройка проекта Storyline
Во-первых, нужно добавить в Storyline текстовый вводов для сбора имени и адреса электронной почты пользователя. Для этого нужно:

  1. Выбрать вкладку Insert в Storyline
  2. Выбрать значок Input
  3. Выбрать Text Entry Field
  4. Разместить его на слайде
Создайте два поля для имени и почты. Затем добавьте описание и кнопку, которая будет отправлять данные.
После измените стандартное название переменных на более понятное вам. Например, userName и userEmail. Так вы совершите избежать ошибок :)

Важное примечание: эти переменные чувствительны к регистру, те "a" и "A" воспринимаются по-разному.

Чтобы изменить имя переменной Storyline, нужно:
  1. Открыть вкладку переменные
  2. Выбрать переменную, которую вы хотите изменить
  3. Два раза кликнуть левой кнопкой мыши
  4. Ввести новое имя для переменной
  5. Нажать ОК
Чтобы проверить не ошиблись ли вы в соответствии переменных, выберете поля ввода и посмотрите на вкладку Triggers.
Присвоение переменных Storyline переменным JavaScript
Теперь нужно использовать JavaScipt, чтобы связать переменные ввода текста Storyline с оператором xAPI.

Сначала откройте файл «xapi-statement.js» (который мы создали в части 1) в текстовом редакторе. И добавьте в начало кода следующую строку:
const player = GetPlayer();
Ключевое слово const сообщает, что мы собираемся создать новую неизменную переменную JavaScript, под названием player.

Функция GetPlayer() нужна для связи курса Storyline и JavaScript кода.
const userNamejs = player.GetVar("userName");
С помощью этой строки кода мы создаем новую переменную JavaScript под названием userNamejs и присваиваем ей значение переменной userName.

Часть "player." показывает, что мы обращаемся к курсу Storyline, а GetVar() - это функция, которая получает значение Storyline переменных.

Сделайте тоже самое с перемнными userEmailjs и userEmail. Ваш код должен выглядеть следующим образом:
const player = GetPlayer();
const userNamejs = player.GetVar("userName");
const userEmailjs = player.GetVar("userEmail");
Изменение оператора xAPI
Теперь нужно обновить оператор xAPI так, чтобы он включал имя пользователя и адрес электронной почты из курса Storyline. Чтобы сделать это, нужно в объекте Actor изменить значение свойства name на userNamejs, а значение свойства mbox на userEmailjs.

Важно: не забудьте, что в свойстве mbox необходимо добавить строку "mailto:" (в переменной userEmailjs будет только email).

Файл xapi-statement.js должен выглядеть следующим образом:
const player = GetPlayer();
const userNamejs = player.GetVar("userName");
const userEmailjs = player.GetVar("userEmail");

{
  "actor": {
    "name": userNamejs,
    "mbox": "mailto:" + userEmailjs
  },
  "verb": {
    "id": "http://adlnet.gov/expapi/verbs/completed",
    "display": { "en-US": "completed" }
  },
  "object": {
    "id": "http://example/xapi/firstmodule",
    "definition": {
      "name": { "en-US": "first module" }
    }
  }	
}
Важно: внимательно проверьте запятые и имена переменных!