|
1 | 1 | # UseDesk |
2 | 2 | [](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square) |
3 | 3 |
|
4 | | - |
5 | | -- [Добавление библиотеки в проект](#добавление-библиотеки-в-проект) |
6 | | -- [Классы базы знаний](#классы-базы-знаний) |
7 | | -- [Документация](#Документация) |
8 | | - |
9 | | - |
10 | 4 | # Добавление библиотеки в проект: |
11 | 5 |
|
12 | 6 | ### Swift Package Manager |
13 | 7 |
|
14 | 8 | ```swift |
15 | | -.package(url: "https://github.com/usedesk/UseDeskSPM.git", from: "1.0.0") |
| 9 | +.package(url: "https://github.com/usedesk/UseDeskSPM.git", from: "1.1.0") |
16 | 10 | ``` |
17 | 11 |
|
18 | | -## Подключение SDK |
19 | | - |
20 | | -- Выполняем операцию инициализации чата параметрами без GUI: |
21 | | - |
22 | | -| Переменная | Тип | Описание | |
23 | | -| -------------| ------------- | ------------- | |
24 | | -| CompanyID\* | String | Идентификатор компании. Как найти описано в [документации](https://docs.usedesk.ru/article/61) | |
25 | | -| ChanelId\* | String | Идентификатор канала (добавлен в v1.1.5). Как найти описано в [документации](https://docs.usedesk.ru/article/10167) | |
26 | | -| UrlAPI\* | String | Адрес API. Стандартное значение `secure.usedesk.ru/uapi` | |
27 | | -| API Token\* | String | Личный API ключ | |
28 | | -| Url\* | String | Адрес сервера в формате - pubsubsec.usedesk.ru | |
29 | | -| Knowledge Base ID | String | Идентификатор базы знаний. Если не указан, база знаний не используется | |
30 | | -| Email | String | Почта клиента | |
31 | | -| Phone | String | Телефон клиента | |
32 | | -| UrlToSendFile | String | Адрес для отправки файлов. Стандартное значение `https://secure.usedesk.ru/uapi/v1/send_file` | |
33 | | -| Port | String | Порт сервера | |
34 | | -| Name | String | Имя клиента | |
35 | | -| NameOperator | String | Имя оператора | |
36 | | -| FirstMessage | String | Автоматическое сообщение. Отправиться сразу после иницилизации от имени клиента | |
37 | | -| Note | String | Текст заметки | |
38 | | -| AdditionalFields | [Int : String] | Массив дополнительный полей в формате - id : "значение". Для текстовых полей значение - строка, для списка - строка с точно совпадающим значением списка, для флага - строка "false" или "true" | |
39 | | -| AdditionalNestedFields | [[Int : String]] | Массив допл полей типа вложенный список. Каждый подмассив представляет один вложенный список. Формат фложенного списка - [id1: "значение", id2 : "значение", id3 : "значение"], где id1, id2, id3 идентификаторы значений по уровням вложенности | |
40 | | -| AdditionalId | String | Дополнительный идентификатор клиента | |
41 | | -| Token | String | Подпись, однозначно идентифицирующая пользователя и его чат на любых устройствах для сохранения истории переписки. (генерирует наша система, ограничение не меньше 64 символа) | |
42 | | -| isSaveTokensInUserDefaults | Bool | Сохранять ли токен юзера ("Token", смотреть выше) в UserDefaults приложения. При занчении "True" позволяет не хранить токены в ваших системах, но он будет храниться только в текущем устройстве. Для доступа к переписке клиента с других устройств и платформ необходимо хранить токен в вашей системе и передавать его при инициализации. В этом случае значение параметра должно быть "False" | |
43 | | - |
44 | | -\* - обязательный параметр |
45 | | - |
46 | | -#### Пример: |
| 12 | +## Инициализация SDK |
| 13 | + |
| 14 | +### Параметры, используемые в конфигурации SDK |
| 15 | + |
| 16 | +Где * — обязательный параметр |
| 17 | + |
| 18 | +| **Переменная** | **Тип** | **Описание** | |
| 19 | +| --- | --- | --- | |
| 20 | +| **CompanyID*** | String | **Идентификатор компании в Юздеске**<br/>[Как найти ID компании](https://docs.usedesk.ru/article/61) | |
| 21 | +| **ChannelID*** | String | **Идентификатор канала чата, через который в Юздеск будут поступать обращения из приложения**<br/>[Как создать и настроить канал](https://docs.usedesk.ru/article/858) | |
| 22 | +| **Url*** | String | **Адрес сервера для работы с чатами SDK**<br/>Стандартное значение: `pubsubsec.usedesk.ru`<br/>Если вы используете коробочную версию Юздеска на собственном сервере, то этот параметр у вас может отличаться. Уточните актуальный адрес у поддержки — support@usedesk.ru | |
| 23 | +| **Port** | String | **Порт сервера для работы с чатами SDK**<br/>Стандартное значение: `443` | |
| 24 | +| **UrlAPI*** | String | **URL для работы с API**<br/>Стандартное значение: `secure.usedesk.ru/uapi`<br/>Если вы используете коробочную версию Юздеска на собственном сервере, то этот параметр у вас будет отличаться. Уточните актуальный адрес у поддержки — support@usedesk.ru | |
| 25 | +| **API_token** | String | **Ключ для доступа к API Юздеска**<br/>[Как получить API ключ](https://docs.usedesk.ru/article/10167) | |
| 26 | +| **KnowledgeBaseID** | String | **Идентификатор базы знаний**<br/>[Как создать Базу знаний](https://docs.usedesk.ru/article/1678)<br/>**Если ID не указан, база знаний не используется** | |
| 27 | +| **UrlToSendFile** | String | **Адрес для отправки файлов**<br/>Стандартное значение: `https://secure.usedesk.ru/uapi/v1/send_file` | |
| 28 | +| **Name** | String | **Имя клиента** | |
| 29 | +| **Email** | String | **Почта клиента** | |
| 30 | +| **Phone** | String | **Телефон клиента** | |
| 31 | +| **Avatar** | Data? | **Изображение аватара клиента** | |
| 32 | +| **Token** | String | **Подпись, однозначно идентифицирующая пользователя и его чат**<br/>Токен выдается в коллбэке после инициализации чата и привязывается к связке почта-телефон-имя пользователя.<br/>Для идентификации различных пользователей на одном устройстве вы должны хранить и передавать полученный токен в метод инициализации | |
| 33 | +| **AdditionalId** | String | **Дополнительный идентификатор клиента** | |
| 34 | +| **Note** | String | **Текст заметки** | |
| 35 | +| **AdditionalFields** | [Int : String] | **Массив дополнительный полей запроса**<br/>Формат: `id : "значение"`<br/>Для текстовых полей значение - строка, для списка - строка с точно совпадающим значением списка, для флага - строка `false` или `true` | |
| 36 | +| **AdditionalNestedFields** | [[Int : String]] | **Массив дополнительных полей типа вложенный список**<br/>Каждый подмассив представляет один вложенный список. <br/>Формат вложенного списка: `[id1: "значение", id2 : "значение", id3 : "значение"]`, где `id1`, `id2`, `id3` — идентификаторы значений по уровням вложенности | |
| 37 | +| **FirstMessage** | String | **Автоматическое сообщение**<br/>Отправится сразу после инициализации от имени клиента | |
| 38 | +| **LocaleIdentifier** | String | **Идентификатор языка**<br/>Доступные языки: русский (`ru`), английский (`en`), португальский (`pt`), испанский (`es`). <br/>Если переданный идентификатор не поддерживается, будет использоваться русский язык | |
| 39 | +| **CustomLocale** | [String : String] | **Свой словарь переводов**<br/>Если SDK нужно показывать на языке, который мы не поддерживаем, можно самостоятельно создать словарь переводов и использовать его | |
| 40 | +| **isSaveTokensInUserDefaults** | Bool | **Флаг сохранения токена пользователя в UserDefaults приложения**<br/>Стандартное значение: `true`<br/>Если указан `true`, то токен будет храниться в текущем устройстве. Недостатки такого подхода — при переустановке приложения, смене устройства или платформы доступ к переписке будет утрачен. <br/>Для сохранения доступа к переписке клиента с других устройств и платформ, токен необходимо хранить в вашей системе и передавать его при инициализации. В этом случае нужно использовать значение параметра `false` | |
| 41 | + |
| 42 | + |
| 43 | +### Инициализация SDK |
| 44 | + |
47 | 45 | ```swift |
48 | | -class ViewController: UIViewController { |
49 | | - |
50 | | - let usedesk = UseDeskSDK() |
51 | | - |
52 | | - override func viewDidLoad() { |
53 | | - super.viewDidLoad() |
54 | | - usedesk.startWithoutGUI(companyID: "companyID", |
55 | | - chanelId: "chanelId", |
56 | | - urlAPI: "secure.usedesk.ru", |
57 | | - knowledgeBaseID: "knowledgeBaseID", |
58 | | - api_token: "api_token", |
59 | | - email: "test@gmail.com", |
60 | | - url: "pubsubsec.usedesk.ru", |
61 | | - urlToSendFile: "https://secure.usedesk.ru/uapi/v1/send_file", |
62 | | - port: "port number", |
63 | | - name: "Name", |
64 | | - operatorName: "NameOperator", |
65 | | - firstMessage: "message", |
66 | | - note: "Note text", |
67 | | - additionalFields: [1 : "value"], |
68 | | - additionalNestedFields: [[1 : "value1", 2 : "value2", 3 : "value3"]], |
69 | | - additional_id: "additional_id", |
70 | | - token: "Token", |
71 | | - connectionStatus: { success, feedbackStatus, token in |
72 | | - print(self.usedesk.historyMess) |
73 | | - }, errorStatus: { _, _ in}) |
| 46 | +let usedesk = UseDeskSDK() |
| 47 | +usedesk.start( |
| 48 | + companyID: "1234567", |
| 49 | + chanelId: "1234", |
| 50 | + url: "pubsubsec.usedesk.ru", |
| 51 | + port: "443", |
| 52 | + urlAPI: "pubsubsec.usedesk.ru", |
| 53 | + api_token: "143ed59g90ef093s", |
| 54 | + urlToSendFile: "https://secure.usedesk.ru/uapi/v1/send_file", |
| 55 | + knowledgeBaseID: "12", |
| 56 | + name: "Name", |
| 57 | + email: "lolo@yandex.ru", |
| 58 | + phone: "89000000000", |
| 59 | + avatar: avatarData, |
| 60 | + token: "Token", |
| 61 | + additional_id: "additional_id", |
| 62 | + note: "Note text", |
| 63 | + additionalFields: [1 : "value"], |
| 64 | + additionalNestedFields: [[1 : "value1", 2 : "value2", 3 : "value3"]], |
| 65 | + firstMessage: "message", |
| 66 | + localeIdentifier: "en", |
| 67 | + customLocale: customLocaleDictionary, |
| 68 | + isSaveTokensInUserDefaults: true, |
| 69 | + connectionStatus: { |
| 70 | + success, error in |
74 | 71 | } |
75 | | -} |
| 72 | +) |
76 | 73 | ``` |
77 | 74 |
|
78 | | -### Блок возвращает следующие параметры: |
| 75 | +### Параметры, которые возвращает блок |
79 | 76 |
|
80 | | -#### СonnectionStatus: |
| 77 | +****СonnectionStatus**** |
81 | 78 |
|
82 | 79 | | Тип | Описание | |
83 | | -| ------------- | ------------- | |
| 80 | +| --- | --- | |
84 | 81 | | Bool | Успешность подключения к чату | |
85 | 82 | | UDFeedbackStatus | Статус показа формы обратной связи | |
86 | 83 | | String | Токен пользователя | |
87 | 84 |
|
88 | | -#### ErrorStatus: |
| 85 | +****ErrorStatus**** |
89 | 86 |
|
90 | 87 | | Тип | Описание | |
91 | | -| ------------- | ------------- | |
| 88 | +| --- | --- | |
92 | 89 | | UDError | Задокументированый тип ошибки | |
93 | | -| UDFeedbackStatus | Описание ошибки | |
| 90 | +| String? | Описание ошибки | |
94 | 91 |
|
95 | 92 |
|
96 | | -# Документация: |
| 93 | +## Документация: |
97 | 94 |
|
98 | | -Документация находится по адресу - http://sdk.usedocs.ru/ |
| 95 | +Методы для работы с SDK и ошибки описаны в нашей документации: [http://sdk.usedocs.ru](http://sdk.usedocs.ru/) |
99 | 96 |
|
100 | | -## Author |
| 97 | +## Автор |
101 | 98 |
|
102 | 99 | Сергей, kon.sergius@gmail.com |
103 | 100 |
|
104 | | -## License |
| 101 | +## ****License**** |
105 | 102 |
|
106 | | -UseDesk_SDK_Swift is available under the MIT license. See the LICENSE file for more info. |
| 103 | +UseDesk_SDK_Swift is available under the MIT license. See the LICENSE file for more info |
107 | 104 |
|
0 commit comments