Получение структуры кампании проекта

Получение структуры кампании проекта

Метод

GET https://api.uxfeedback.ru/{version}/forms/{project_alias}/campaigns/{campaign_id}

где

  • {version} - это версия метода, которая предполагает какое-то поведение метода. Рекомендуется использовать “последнюю” или “более высокую” версию метода, как самую актуальную

Авторизация для метода не требуется, как в других методах ClientAPI.

Версии метода

v4

GET https://api.uxfeedback.ru/v4/forms/{project_alias}/campaigns/{campaign_id}

Внесены изменения в версию v3:

  • добавлена возможность получения в структуре кампании вопросов опросной формы типа “stars“

в строке запроса необходимо передавать:

  • {project_alias} - зашифрованный идентификатор проекта, выданный на этапе создания проекта для Клиента.

  • {campaign_id} - id кампании, по которой хотим получить структуру для показа её в интерфейсе приложения / сайта.

Пример метода

Пример максимально полного запроса:
GET https://api.uxfeedback.ru/v4/forms/{project_alias}/campaigns/{campaign_id}

Структура ответа

{ "site": { "userId": 1, "campaign": { "pages": [ { "id": "string" // id страницы опроса "type": 1, // тип страницы: 1 - не последняя, 2 - последняя в опросе "buttons": [ // описание кнопок на странице опроса { "id": "string", // id кнопки "type": "button", // тип поля "button" "value": "string", // наименование кнопки, например "Отправить" } ], "fields": [ // описание вопросов на странице опроса { "id": "string", // id вопроса "type": "header", // тип вопроса "header" "value": "string" // заголовок опроса }, { "id": "string", // id вопроcа "type": "text", // тип вопроса "text" "value": "string" // текст для опроса }, { "id": "string", // id вопроса "type": "comment", // тип вопроса "comment" "value": "string", // заголовок вопроса про "оставьте комментарий" "mode": "single", // тип комментария - однострочный "placeholder": "string" // плейсхолдер для поля комментария "warning": "string", // опционален - призыв к заполнению комментария "required": true // опционален - обяз-ть заполнения комментария }, { "id": "string", // id вопроcа "type": "comment", // тип вопроса "comment" "value": "string", // заголовк вопроса про "оставьте комментарий" "mode": "multi", // тип комментария - многострочный "placeholder": "string" // плейсхолдер для поля комментария "warning": "string", // опционален - призыв к заполнению комментария "required": true // опционален - обяз-ть заполнения комментария }, { "id": "string", // id вопроса "type": "email", // тип вопроса "email" "value": "string", // заголовк вопроса про "email" "placeholder": "string" // плейсхолдер для поля email }, { "id": "string", // id вопроса "type": "rating", // тип вопроса "rating" "value": "string", // заголовк вопроса про шкалу рейтинга "ratingCount": 5, // кол-во значений в рейтинге "messages": { // описание ответов - рейтинг "positive": "string", "negative": "string" } }, { "id": "string", // id вопроса "type": "smiles", // тип вопроса "smiles" "value": "string", // заголовк вопроса про шкалу смайлов "smiles": { // описание ответов - смайлов "0": { "hint": "Ужасно" }, "1": { "hint": " Плохо" }, "2": { "hint": "Нормально" }, "3": { "hint": "Хорошо" }, "4": { "hint": "Отлично" } } }, { "id": "string", // id вопроса "type": "stars", // тип вопроса "stars" "value": "string", // заголовок вопроса про шкалу звёзд "stars": { // описание ответов - звёзд "1": { "hint": "1 звезда" }, "2": { "hint": "2 звезды" }, "3": { "hint": "3 звезды" }, "4": { "hint": "4 звезды" }, "5": { "hint": "5 звезд" } } }, { "id": "string", // id вопроса "type": "nps", // тип вопроса "nps" "value": "string", // заголовк вопроса про nps "mode": "circle", // тип "nps" "messages": { ... } // описание ответов - nps }, { "id": "string", // id вопроса "type": "checkboxes", // тип вопроса "checkboxes" "value": "string", // заголовок вопроса с чекбоксами "shuffle": false, // перемешивать ли варианты ответов на вопрос "options": [ // описание вариантов ответа на вопрос { "id": "string", // id варианта 1 "value": "string" // 'Вараинт 1' }, ... { "id": "string", // id варианта N "value": "string" // 'Вараинт N' }, { "id": "KiUR0vdy", // id варианта 'Другое' "value": "string", // 'Другое' "other": true, // альтернативынй вариант 'Другое' "exceptional": true, // исключает ли все другие варианты "isLocked": true // зафиксировано место в списке }, { "id": "KiUR0vdy", // id варианта 'Ничего из перечисленного' "value": "string", // 'Ничего из перечисленного' "other": false, // альтернативынй вариант 'Другое'(нет) "exceptional": true, // исключает ли все другие варианты "isLocked": true // зафиксировано место в списке } ] }, { "id": "string", // id вопроса "type": "radiobuttons", // тип вопроса "radiobuttons" "value": "string", // заголовок вопроса с radiobuttons "shuffle": false, // перемешивать ли варианты ответов на вопрос "options": [ { "id": "string", // id варианта 1 "value": "string" // 'Вараинт 1' }, ... { "id": "string", // id варианта N "value": "string" // 'Вараинт N' } ] }, { "id": "string", // id вопроcа "type": "image", // тип вопроса "изображение" "value": "string", // заголовк вопроса с изображением "alignment": "center", // центровка изображения на форме: center | left | right "set": { // изображение в разных размерах "1x": "https://cdn3.uxfeedback.ru/i/sets/conversation@1x.png" "2x": "https://cdn3.uxfeedback.ru/i/sets/conversation@2x.png", "3x": "https://cdn3.uxfeedback.ru/i/sets/conversation@3x.png", "svg": "https://cdn3.uxfeedback.ru/i/sets/conversation.svg", } }, { "id": "string", // id вопроcа "type": "screenshot", // тип вопроса "screenshot" "value": "string", // заголовок вопроса про "оставьте скриншот" "buttons": { "create": "Создать скриншот", "upload": "Прикрепить скриншот" } } ] }, { ... // аналогичное описание другой страницы опроса }, ... ], "type": 1, "position": null, "progress": { "enabled": true }, "privacy": { // согласие на обработку перс.данных "warningMessage": "Пожалуйста, подтвердите свое согласие", "type": "checkboxDisabled", "declaration": "<p>Я соглашаюсь на обработку</p>", "showType": "all", "enabled": false }, "autoClose": null, "transforms": [ ... ], // описание логики переходов от вопроса к вопрсоу "gaCounter": "string" // id счётчика Google аналитики }, "theme": { ... } // описание стилей темы опроса "copyright": { "isShow": true, "image": { "1x": "https://cdn.uxfeedback.ru/i/logo/uxfb@1x.png", "2x": "https://cdn.uxfeedback.ru/i/logo/uxfb@2x.png", "3x": "https://cdn.uxfeedback.ru/i/logo/uxfb@3x.png", "imageUrl": "https://cdn.uxfeedback.ru/i/logo/uxfb.svg" }, "href": "https://uxfeedback.ru?utm_campaign=1&utm_medium=test_widget" }, "yaid": "string" // id счётчика Yandex метрики }, "answerId": "string", "fromCache": true }

Коды ответов и ошибок

Код ответа

Пример JSON'а

Код ответа

Пример JSON'а

423 Locked

Запрос:
GET https://api.uxfeedback.ru/v4/forms/{project_alias}/CAMPAIGN/{campaign_id}

Ответ: без тела ошибки

Пояснения:
Ошибка возникает, когда ресурс заблокирован (ведутся технические работы - “тихий режим”) и Клиент не может получить к нему доступ, пока блокировка не будет снята сервером.

404 Not Found

Запрос:
GET https://api.uxfeedback.ru/v4/forms/{project_alias}/CAMPAIGN/{campaign_id}

Ответ: без тела ошибки

Пояснения:
Ошибка возникает, когда ресурс не найден, например: ошиблись с написанием .../campaign/... (или что-то другое) вместо .../campaigns/...

200 Ok

Запрос:
GET https://api.uxfeedback.ru/v4/forms/{project_alias}/campaigns/{campaign_id}

Ответ:

{ "site": { "userId": 1, "campaign": { "pages": [ { "id": "string", "type": 1, "buttons": [ ... ], "fields": [ ... ] }, { ... // аналогичное описание другой страницы опроса }, ... ], "type": 1, "position": null, "progress": { ... }, "privacy": { ... }, "autoClose": null, "transforms": [ ... ], "gaCounter": "string" }, "theme": { ... }, "copyright": { ... }, "yaid": "string" }, "answerId": "string", "fromCache": true }

Пояснения:
Успешный ответ, структура полнотсью зависит от набора полей кампании

Если указали некорректный {project_alias} или {campaign_id}, то вернётся тоже ответ '200 Ok', но с телом:
{ "site": null, "fromCache": false }