Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/authorization.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Авторизация

SDK обменивается данными с CDP Sendsay через HTTPS. SDK поддерживает стандартную **авторизацию по токену** для доступа к мобильному API.
SDK обменивается данными с CDP Sendsay через HTTPS. Для доступа к мобильному API SDK использует **авторизацию по токену**.

## Авторизация по токену

Стандартный режим авторизации по токену обеспечивает доступ к публичным эндпоинтам мобильного API с использованием API-ключа в качестве токена.
Авторизация по токену даёт доступ к публичным эндпоинтам мобильного API. Для этого используйте API-ключ в качестве токена.

Разработчики должны установить токен, используя параметр конфигурации `authorization` при инициализации SDK:
Передайте токен в параметре конфигурации `authorization` при инициализации SDK:

```swift
Sendsay.shared.configure(
Expand Down
139 changes: 74 additions & 65 deletions docs/configuration.md

Large diffs are not rendered by default.

53 changes: 31 additions & 22 deletions docs/configure-apns.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,61 @@ categorySlug: integrations
parentDocSlug: ios-sdk-push-notifications
---

Чтобы иметь возможность отправлять [iOS push-уведомления](https://documentation.bloomreach.com/engagement/docs/ios-sdk-push-notifications) с помощью Engagement, вы должны получить ключ подписи токена аутентификации Apple Push Notification service (APNs) и настроить интеграцию APNs в веб-приложении Engagement.
Чтобы иметь возможность отправлять [iOS push-уведомления](https://documentation.bloomreach.com/engagement/docs/ios-sdk-push-notifications) через Engagement, получите ключ подписи токена Apple Push Notification service (APNs) и настройте интеграцию APNs в веб-приложении Engagement.

> 📘
>
> Обратитесь к [документации разработчика Apple Push Notifications](https://developer.apple.com/documentation/usernotifications) для получения подробностей.
> Подробнее — в [документации Apple Push Notifications](https://developer.apple.com/documentation/usernotifications).

## Получение ключа APNs

1. В вашей [учетной записи разработчика Apple](https://developer.apple.com/account/resources/authkeys/list) перейдите в `Certificates, Identifiers & Profiles` > `Keys`.
![Apple Developer - ключи APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns1.png)
1. Войдите в свою [учётную запись разработчика Apple](https://developer.apple.com/account/resources/authkeys/list) и откройте раздел **Certificates, Identifiers & Profiles** > **Keys**.

2. Добавьте новый ключ и выберите APNs.
![Apple Developer - регистрация нового ключа APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns2.png)
![Apple Developer — ключи APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns1.png)

3. Подтвердите создание ключа. Нажмите `Download`, чтобы сгенерировать и скачать ключ. Запомните `Team id` (в правом верхнем углу) и `Key Id`.
![Apple Developer - скачивание ключа APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns3.png)
2. Создайте новый ключ и выберите APNs.

![Apple Developer — регистрация нового ключа APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns2.png)

3. Подтвердите создание ключа. Нажмите «Download», чтобы сгенерировать и скачать ключ. Запомните **Team id** (в правом верхнем углу) и **Key Id**.

![Apple Developer — скачивание ключа APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns3.png)

> ❗️
>
> Обязательно сохраните скачанный ключ в безопасном месте, так как вы не сможете скачать его повторно.
> Скачайте ключ и сохраните его в безопасном месте — повторно скачать его невозможно.

## Добавление ключа APNs в Engagement

1. Откройте веб-приложение Engagement и перейдите в `Data & Assets` > `Integrations`. Нажмите `+ Add new integration`.
![Engagement Integrations - Добавление новой интеграции](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns4.png)
1. В веб-приложении Engagement перейдите в **Data & Assets** > **Integrations** и нажмите «+ Add new integration».

![Engagement Integrations — Добавление новой интеграции](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns4.png)

2. Выберите «Apple Push Notification Service» и нажмите «+ Add integration».

2. Найдите `Apple Push Notification Service` и нажмите `+ Add integration`.
![Engagement Integrations - Выбор интеграции Apple Push Notification Service](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns5.png)
![Engagement Integrations — Выбор интеграции Apple Push Notification Service](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns5.png)

3. Прочитайте и примите условия использования.
![Engagement Integrations - Принятие условий использования](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns6.png)
3. Ознакомьтесь с условиями использования и подтвердите согласие.

![Engagement Integrations — Принятие условий использования](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns6.png)

4. Выберите режим API — **Development** или **Production**. Укажите **Team ID** и **Key ID**, вставьте содержимое файла ключа в поле **ES256 Private Key** и добавьте `Bundle ID` вашего приложения. Нажмите «Save integration».

![Engagement Integrations — Настройка интеграции APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns7.png)

4. Выберите `API mode` (`Development` или `Production`) и введите `Team ID` и `Key ID`. Откройте скачанный файл ключа в текстовом редакторе и скопируйте его содержимое в поле `ES256 Private Key`. Введите `Bundle ID` вашего приложения. Нажмите `Save integration` для завершения.
![Engagement Integrations - Настройка интеграции APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns7.png)
> ❗️
>
> Среда API (`Development` или `Production`) не может быть изменена позже. Вам нужно создать новую интеграцию, если вы хотите использовать другую среду. Если возникают ошибки BadDeviceToken, убедитесь, что выбрана правильная среда API.
> Режим API (**Development** или **Production**) изменить нельзя. Чтобы использовать другой режим, создайте новую интеграцию. Если получаете ошибку **BadDeviceToken**, проверьте, что выбран правильный режим.

> ❗️
>
> Только одна интеграция APNs может быть активна одновременно в проекте Engagement. Если вы хотите использовать среды разработки и продакшена APNs одновременно, вам нужны два отдельных проекта Engagement.
> В проекте Engagement может быть активна только одна интеграция APNs. Чтобы использовать одновременно среды разработки и продакшена, настройте два отдельных проекта.

> ❗️
>
> Убедитесь, что `Application Bundle ID` соответствует `Bundle Identifier` в целевом приложении в Xcode. Если они не совпадают, push-уведомления не будут доставлены.
> Убедитесь, что `Application Bundle ID` совпадает с `Bundle Identifier` в настройках приложения в Xcode — иначе push-уведомления не будут доставляться.


5. Перейдите в **Settings** > **Project settings** > **Channels** > **Push notifications** > **iOS Notification** выберите вашу интеграцию в поле **Apple Push Notification Service integration**.

5. Перейдите в `Settings` > `Project settings` > `Channels` > `Push notifications` > `iOS Notification` и установите `Apple Push Notification Service integration` в `Apple Push Notification Service`.
![Engagement - Выбор интеграции APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns8.png)
![Engagement — Выбор интеграции APNs](https://raw.githubusercontent.com/sendsay/sendsay-ios-sdk/main/Documentation/images/apns8.png)
23 changes: 12 additions & 11 deletions docs/data-flushing.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
## Отправка данных

SDK кэширует данные (сессии, события, свойства клиентов и т.д.) во внутренней базе данных и периодически отправляет их в CDP Sendsay. После загрузки данных значения в базе данных аккаунта Sendsay обновляются, а кэшированные данные удаляются из внутренней базы данных SDK. Этот процесс называется **отправкой данных**.
SDK кэширует данные (сессии, события, свойства клиентов и т.д.) во внутренней базе данных и периодически отправляет их в CDP Sendsay.
После успешной отправки данные обновляют значения в базе аккаунта, а затем удаляются из кэша SDK. Этот процесс называется **отправкой данных**.

По умолчанию SDK автоматически отправляет данные, как только они отслеживаются, или когда приложение переходит в фоновый режим. Вы можете настроить [режим отправки](#flushing-modes), чтобы адаптировать это поведение под ваши потребности.
По умолчанию SDK отправляет данные сразу после их отслеживания или при переходе приложения в фоновый режим. Поведение можно изменить, настроив [режим отправки](#режимы-отправки).

Вы также можете полностью отключить автоматическую отправку. В этом случае вы должны [вручную отправлять](#manual-flushing) данные каждый раз, когда есть данные для отправки.
Вы можете полностью отключить автоматическую отправку. В этом случае данные нужно [передавать вручную](#ручная-отправка) — каждый раз, когда они накопились и готовы к отправке.

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

## Режимы отправки

SDK поддерживает следующие 4 режима отправки для указания того, как часто или если данные отправляются автоматически.
SDK поддерживает четыре режима, определяющих частоту и способ отправки данных.

| Название | Описание |
| ---------------------- | ----------- |
| `.immediate` (по умолчанию) | Отправляет все данные немедленно по мере их получения. |
| `.automatic` | Отправляет данные каждый раз, когда приложение теряет активное состояние. |
| `.periodic(Int)` | Отправляет данные в указанном интервале (в секундах) и когда приложение закрывается или переходит в фоновый режим. |
| `.manual` | Отключает любую автоматическую загрузку. Разработчик несет ответственность за [ручную отправку данных](#manual-flushing). |
| `.immediate` (по умолчанию) | Отправляет все данные сразу после их получения. |
| `.automatic` | Отправляет данные при потере активного состояния приложения. |
| `.periodic(Int)` | Отправляет данные с указанным интервалом (в секундах), а также при закрытии или переходе приложения в фоновый режим. |
| `.manual` | Полностью отключает автомтатическую отправку. Отправку необходимо выполнять [вручную](#ручная-отправка). |

Чтобы установить режим отправки, сначала [инициализируйте SDK](docs/ios-sdk-setup.md), затем установите `flushingMode` напрямую в синглтоне `Sendsay`:
Чтобы изменить режим, сначала [инициализируйте SDK](docs/ios-sdk-setup.md), затем установите `flushingMode` напрямую в синглтоне `Sendsay`:

```swift
Sendsay.shared.flushingMode = .periodic(10)
```

## Ручная отправка

Для ручного запуска отправки данных в API используйте следующий метод:
Чтобы вручную отправить накопленные данные, вызовите:

```swift
Sendsay.shared.flushData()
Expand Down
Loading