object.widget

Информация о виджете

Параметры

Название Описание Тип
id ID виджета Число
type Тип виджета
text - текст
image - картинка
onlinevideo - видео из онлайн видео-сервиса
onlinemusic - звуковая дорожка из онлайн сервиса
test - виджет-тест
file - виджет-файл
table - виджет-таблица
homework - домашняя работа
spoiler - спойлер
form - анкета
Строка
points Количество поинтов за виджет. Если видет не тестовый, количество поинтов за виджет равно нулю. Число
sort Ключ сортировки виджетов. Ключи начинаются с нуля Число
user_answer Ответ на виджет-анкету. Если пользователь не отвечал на виджет, то будет передана пустая строка
Пример для непустого ответа:
Для виджета
[
{"type":"text","question":"Дурак? (Да, я дурак)","required":"1"},
{"type":"textarea","question":"Дурак? (Нет, я не дурак)","required":"0"},
{"type":"checkbox","question":"Дурак?","required":"0","answers":["Да","Нет","Не знаю"]},
{"type":"radiobox","question":"Дурак?","required":"0","answers":["Да","Нет","Не знаю"]},
{"type":"select","question":"Дурак?","required":"0","answers":["Да","Нет","Не знаю"]}
]
Формат ответа будет иметь вид:
["Да, я дурак","Нет, я не дурак",["Да","Не знаю"],[],["Нет"]]
То есть передается массив ответов на каждый из вопросов по-отдельности, сохраняя последовательность вопросов
Число
content Содержание виджета в формате json
Важно использовать двойные кавычки для ключей и значений

Примеры содержания разных типов виджетов:

Файловый виджет

Доступные форматы:
  Word (doc, docx)
  Excel (xls, xlsx, csv)
  Powerpoint (ppt, pptx)
  PDF
  ZIP
  cloud (в этом случае в объекте будут только параметры src, file_name и type)

{
     "file_name":"test file",
     "src":"https://api.iq.academy/test.pdf",
     "file_size":"128" [размер файла в КБ]
     "type":"pdf"
}

Текстовый виджет

{
     "text":"тут текст",
     "align":"left",
     "style":"header"
}

Виджет-картинка

{
     "src": "https://api.iq.academy/images/widgets/hehehe.png"
}

Онлайн видео-виджет

{
     "src":"https://youtu.be/5qap5aO4i9A",
     "service":"youtube" (iq, ...)
}

Онлайн звуко-виджет

{
     "src":"https://soundcloud.com/essily/sor-el-gd3an",
     "service":"soundcloud"
}

Тестовый виджет

{
     "question":"Квадратный корень из 16",
     "type":"checkbox",
    "answers":{
        "1":"4",
        "2":"-4",
        "3":"256"
    },
    "correct":"1,2",
    "user_points":10,
    "user_answer":"2,1",
}
{
     "question":"2^10",
     "type":"radio",
    "answers":{
        "1":"512",
        "2":"1024",
        "3":"2048"
    },
    "correct":"2",
    "user_points":10,
    "user_answer":"2,1",
}
{
     "question":"Квадратный корень из 16",
     "type":"open",
    "answers":{},
    "correct":"4",
    "user_points":10,
    "user_answer":"2,1",
}
{
     "question":"Расположи числа в порядке возрастания",
     "type":"sort",
    "answers":{
        "1":"1",
        "2":"3",
        "3":"2"
    },
    "correct":"1,3,2",
    "user_points":10,
    "user_answer":"1,3,2",
}
{
     "question":"Сопоставь суммы",
     "type":"correlate",
    "answers":{
        "1":"2+2",
        "2":"6",
        "3":"3+3",
        "3":"4",
    },
    "correct":"1,4,3,2",
    "user_points":10,
    "user_answer":"1,4,3,2",
}

Виджет-таблица

[
    [
        "a",
        "b"
    ],
    [
        "c",
        "d"
    ]
]

Домашняя работа

Параметр status:
  0 - Не отправлено
  1 - Ожидает проверку
  2 - Задание зачтено
  3 - Задание не зачтено

{
    "question":"Квадратный корень из 16",
    "user_points":10,
    "status":1,
    "user_answer":"Ответ пользователя",
    "attachments":[
        "https://api.iq.academy/images/messages/123.jpg",
        "https://api.iq.academy/images/messages/124.pdf"
    ]
}

Спойлер

{
    "short":"Возведение в квадрат",
    "long":"Чтобы возвести число в квадрат, его нужно умножить само на себя"
}

Анкета

[
    {
        "type":"text",
        "question":"Дурак?",
        "required":"1"
    },
    {
        "type":"textarea",
        "question":"Дурак?",
        "required":"1"
    },
    {
        "type":"checkbox",
        "question":"Дурак?",
        "answers":["Да","Нет","Не знаю"],
        "required":"0"
    },
    {
        "type":"radiobox",
        "question":"Дурак?",
        "answers":["Да","Нет","Не знаю"],
        "required":"1"
    },
    {
        "type":"select",
        "question":"Дурак?",
        "answers":["Да","Нет","Не знаю"],
        "required":"0"
    },
]
Строка