Интеграция действий в приложении
Убедитесь, что эти шаги выполнены успешно:
Для передачи данных о действиях клиента нужно завести «операции». Подробно о них в разделе «Операции и интеграции» на help.mindbox.ru.
Для вызова операций из мобильного приложение Mindbox SDK предлагает 2 метода:
executeAsyncOperation— передача данных в систему;executeSyncOperation— получение данных из системы.
Для создания тела запроса при вызове операции нужно использовать конструктор OperationBodyRequest.
Техническое задание на интеграцию
Эта страница — пример того, как вызывать API SDK для передачи данных.
Для передачи данных в Mindbox сначала надо настроить нужные методы API. Это делается индивидуально для каждого проекта.
Менеджер проекта со стороны Mindbox настраивает нужные методы и описывает их в специальном документе.
Не приступайте к этому разделу, если у вас нет документа с описанием всех нужных методов.
Ниже приведены примеры того, как некоторые запросы могут быть интегрированы из мобильного приложения. Если просто скопировать код из этих примеров, то интеграция не заработает.
Пример реализации вызовов по сценариями
Пример авторизации (только для тестов)
Ожидаемый результат:
- по номеру телефона в Mindbox можно найти клиента;
- у этого клиента есть информация о мобильном приложении.
Swift
Передача действий просмотра продуктов и категорий
Ожидаемый результат:
- у клиента, который находится по deviceUUID, на вкладке действия появляется новая запись «просмотр продукта» и «просмотр категории».
Swift
Передача действий добавления в корзину/удаления из корзины
Для работы со списком товаров Mindbox предлагает 2 варианта подхода:
- добавление/удаление по 1 шт;
- установка списка одним запросом.
Популярные списки продуктов: «корзина» и «избранное».
Ожидаемый результат:
- у клиента, который находится по deviceUUID, на вкладке действия появляются новые записи про добавление и удаление товаров в корзине.
Swift
Пример проверки клиента в сегменте
Данный запрос проверяет принадлежность клиента к заранее настроенному сегменту в системе
Ожидаемый результат:
- в консоли разработчика в Xcode отображается ответ от Mindbox.
Swift
Пример получения персональных рекомендаций
Данный запрос возвращает список товаров, подобранных клиенту на основе одного из настроенных алгоритмов товарных рекомендаций
Ожидаемый результат:
- в консоли разработчика в Xcode отображается ответ от Mindbox.
Swift
Передача данных в Mindbox — асинхронное выполнение
Для передачи данных в Mindbox через асинхронные операции, можно использовать метод SDK Mindbox.shared.executeAsyncOperation
Этот метод принимает:
- системное имя операции;
- тело запроса в Mindbox.
Описание метода
Swift
Пример вызова
Swift
Проверка выполнения инструкции
- Создайте операцию в админке;
- Интегрируйте вызов
Mindbox.shared.executeAsyncOperationв вашем приложении, апример, по нажатию кнопки; - Запустите приложение и выполните целевое действие;
- Найдите своего пользователя в системе и проверьте, что у него в «действиях» появилась ожидаемая запись.
Дебаг стандартных ошибок — здесь.
Передача и получение данных от Mindbox — синхронное выполнение
Для выполнения синхронных операций можно использовать метод Mindbox.shared.executeSyncOperation.
Этот метод принимает:
- системное имя операции;
- тело запроса в Mindbox;
- коллбэк, который надо вызвать, если операция выполнится успешно;
- коллбэк, который надо вызвать, если операция выполнится с ошибкой.
В коллбэки передается типизированный объект, в который парсится ответ от Mindbox.
Если по каким-то причинам ответ от Mindbox не может обработаться структурами, которые заложен в SDK, вы можете реализовать собственный класс для обработки ответа.
Он передается отдельным параметром в вызов функции.
Использование готового класса
Описание метода
Swift
В таком случае, для запроса используется параметры operationSystemName и operationBody.
Ответом на запрос является сущность Result<OperationResponse, MindboxError>.
Пример
Swift
Используя собственный класс для ответа
В таком случае, для запроса используется параметры operationSystemName и operationBody, а также customResponseType, который должен реализовывать протокол OperationResponseType. Ответом на запрос является сущность Result<P, MindboxError>.
Описание метода
Swift
Пример
Swift
Расшифровка ответа
OperationResponse — модель, которая имеет в себе перечисление всех возможных полей ответа от сервера. Все поля опциональны.
MindboxError — модель ошибки, которую возвращает Mindbox. Возможные вариации ошибок от сервера:
validationErrorсодержит в себе модельValidationError. Указывает на поля, которые были заполнены неправильно.protocolErrorсодержит в себе модельProtocolError. Возвращается в случае ответа от сервера со статусами4XXа также некоторые ошибки5XX.serverErrorвозвращается в случае5ХХстатуса без данных от сервера.connectionError— ошибка запроса по причине соединения.invalidResponseвозвращается в случае невалидного ответа от сервера.internalErrorуказывает на ошибки конфигурацииMindbox, ошибки декодирования ответа и прочие.unknownвозвращается в случае непредвиденного поведения со вложенным типомError.
Для отладки ошибок используйте параметр errorDescription.
Как прошла ваша интеграция SDK Mindbox?
Мы подготовили короткий опрос, чтобы вы могли поделиться своим опытом интеграции SDK Mindbox. Ваши ответы помогут нам сделать продукт и процесс интеграции лучше!