Skip to content

BugorBN/UseDeskSwift

 
 

Repository files navigation

UseDesk_SDK_Swift

CocoaPods Compatible Swift Package Manager

Образец

Чтобы запустить пример проекта, клонируйте репозиторий и сначала запустите pod install из каталога примера.

Тестовое приложение

Для запуска тестового приложения нужно:

-Клонировать репозиторий

-Запустить терминал

-Перейти в скаченную дирректорию (в папку Example)

-Выполнить команду pod install

Добавление библиотеки в проект:

CocoaPods

Полный функционал с нашим GUI доступен через CocoaPods.

-Добавьте строчку в Podfile вашего приложения

pod 'UseDesk_SDK_Swift'

-Выполните команду в терминале pod update

-Подключаем библиотеку import UseDesk`

Swift Package Manager

.package(url: "https://github.com/usedesk/UseDeskSwift.git", from: "2.1.0")

ВАЖНЫЕ ОБНОВЛЕНИЯ:

Начиная с версии 2.0.0 мы заменяем параметр signature на token. Токен выдается в коллбэке после инициализации чата и привязывается к связке почта-телефон-имя пользователя. Для идентификации различных пользователей на одном устройстве вы должны хранить и передавать полученный токен в метод инициализации.

В параметре Url вместо pubsub.usedesk.ru нужно указывать pubsubsec.usedesk.ru

Выполняем операцию инициализации чата параметрами:

Переменная Тип Описание
CompanyID* String Идентификатор компании. Как найти описано в документации
ChanelId* String Идентификатор канала (добавлен в v1.1.5). Как найти описано в документации
UrlAPI* String Адрес API. Стандартное значение secure.usedesk.ru/
Knowledge Base ID String Идентификатор базы знаний. Если не указан, база знаний не используется
API Token* String Личный API ключ
Email String Почта клиента
Phone String Телефон клиента
Url* String Адрес сервера в формате - pubsubsec.usedesk.ru
UrlToSendFile String Адрес для отправки файлов. Стандартное значение https://secure.usedesk.ru/uapi/v1/send_file
Port String Порт сервера
Name String Имя клиента
NameOperator String Имя оператора
NameChat String Имя чата. Отображается в шапке
FirstMessage String Автоматическое сообщение. Отправиться сразу после иницилизации от имени клиента
Note String Текст заметки
AdditionalFields [Int : String] Массив дополнительный полей в формате - id : "значение". Для текстовых полей значение - строка, для списка - строка с точно совпадающим значением списка, для флага - строка "false" или "true"
AdditionalNestedFields [[Int : String]] Массив допл полей типа вложенный список. Каждый подмассив представляет один вложенный список. Формат фложенного списка - [id1: "значение", id2 : "значение", id3 : "значение"], где id1, id2, id3 идентификаторы значений по уровням вложенности
Token String Подпись, однозначно идентифицирующая пользователя и его чат на любых устройствах для сохранения истории переписки. (генерирует наша система, ограничение не меньше 64 символа)
LocaleIdentifier String Идентификатор языка. Доступные языки: русский ("ru"), английский ("en"), португальский ("pt"), испанский ("es"). Если переданный идентификатор не поддерживается, будет выбран русский язык.
CustomLocale [String : String] Можно передать свой словарь переводов
Storage UDStorage Хранилище поддерживающее протокол UDStorage. Для каждого отдельного чата нужно передавать свое отдельное хранилище.
isCacheMessagesWithFile Bool Сохранять ли сообщения содержащие файлы
PresentIn UIViewController В каком контроллере открывать
isPresentDefaultControllers Bool Показывать ли контроллеры автоматически в указанном родительском контроллере
isUseBase Bool Начиная с версии 0.3.19 не используется
Signature String Начиная с версии 2.0.0 не используется

* - обязательный параметр

Блок возвращает следующие параметры:

СonnectionStatus:

Тип Описание
Bool Успешность подключения к чату
UDFeedbackStatus Статус показа формы обратной связи
String Токен пользователя

ErrorStatus:

Тип Описание
UDError Задокументированый тип ошибки
UDFeedbackStatus Описание ошибки

Пример c использованием базы знаний:

let usedesk = UseDeskSDK()
usedesk.start(withCompanyID: "1234567", chanelId: "1234", knowledgeBaseID: "1", api_token: "143ed59g90ef093s", email: "[email protected]", phone: "89000000000", url: "pubsubsec.usedesk.ru", urlToSendFile: "https://secure.usedesk.ru/uapi/v1/send_file", port: "213", name: "Name", operatorName: "NameOperator", nameChat: "NameChat", firstMessage: "message", note: "Note text", additionalFields: [1 : "value"], additionalNestedFields: [[1 : "value1", 2 : "value2", 3 : "value3"]], token: "Token", localeIdentifier: "en", customLocale: customLocaleDictionary, presentIn: self, isPresentDefaultControllers: true, connectionStatus: { success, error in

})

Пример без использования базы знаний:

let usedesk = UseDeskSDK()
usedesk.start(withCompanyID: "1234567", chanelId: "1234", api_token: "143ed59g90ef093s", email: "[email protected]", phone: "89000000000", url: "pubsubsec.usedesk.ru", urlToSendFile: "https://secure.usedesk.ru/uapi/v1/send_file", port: "213", name: "Name", operatorName: "NameOperator", nameChat: "NameChat", firstMessage: "message", note: "Note text", token: "Token", localeIdentifier: "en", customLocale: customLocaleDictionary, connectionStatus: { success, error in

})

Подключение SDK без графического интерфейса

  • Выполняем операцию инициализации чата параметрами без GUI:
Переменная Тип Описание
CompanyID* String Идентификатор компании. Как найти описано в документации
ChanelId* String Идентификатор канала (добавлен в v1.1.5). Как найти описано в документации
UrlAPI* String Адрес - devsecure.usedesk.ru/uapi
API Token* String Личный API ключ
Url* String Адрес сервера в формате - pubsubsec.usedesk.ru
Knowledge Base ID String Идентификатор базы знаний. Если не указан, база знаний не используется
Email String Почта клиента
Phone String Телефон клиента
UrlToSendFile String Адрес для отправки файлов. Стандартное значение https://secure.usedesk.ru/uapi/v1/send_file
Port String Порт сервера
Name String Имя клиента
NameOperator String Имя оператора
NameChat String Имя чата. Отображается в шапке
FirstMessage String Автоматическое сообщение. Отправиться сразу после иницилизации от имени клиента
Note String Текст заметки
AdditionalFields [Int : String] Массив дополнительный полей в формате - id : "значение". Для текстовых полей значение - строка, для списка - строка с точно совпадающим значением списка, для флага - строка "false" или "true"
AdditionalNestedFields [[Int : String]] Массив допл полей типа вложенный список. Каждый подмассив представляет один вложенный список. Формат фложенного списка - [id1: "значение", id2 : "значение", id3 : "значение"], где id1, id2, id3 идентификаторы значений по уровням вложенности
Token String Подпись, однозначно идентифицирующая пользователя и его чат на любых устройствах для сохранения истории переписки. (генерирует наша система, ограничение не меньше 64 символа)
isUseBase Bool Начиная с версии 0.3.19 не используется
Signature String Начиная с версии 2.0.0 не используется

* - обязательный параметр

Пример:

let usedesk = UseDeskSDK()
usedesk.startWithoutGUICompanyID(companyID: "1234567", chanelId: "1234", knowledgeBaseID: "1", api_token: "143ed59g90ef093s", email: "[email protected]", phone: "89000000000", url: "pubsubsec.usedesk.ru", urlToSendFile: "https://secure.usedesk.ru/uapi/v1/send_file", port: "213", name: "Name", operatorName: "NameOperator", nameChat: "NameChat", firstMessage: "message", note: "Note text", additionalFields: [1 : "value"], additionalNestedFields: [[1 : "value1", 2 : "value2", 3 : "value3"]], token: "Token", connectionStatus: { (success, error) in

})

Блок возвращает следующие параметры:

СonnectionStatus:

Тип Описание
Bool Успешность подключения к чату
UDFeedbackStatus Статус показа формы обратной связи
String Токен пользователя

ErrorStatus:

Тип Описание
UDError Задокументированый тип ошибки
UDFeedbackStatus Описание ошибки

Документация:

Документация находится по адресу - http://sdk.usedocs.ru/

Author

Сергей, [email protected]

Максим, [email protected]

License

UseDesk_SDK_Swift is available under the MIT license. See the LICENSE file for more info.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 99.5%
  • Other 0.5%