UseDesk_SDK_Swift 3.4.13

UseDesk_SDK_Swift 3.4.13

Sergey Kononov 管理。



 
依赖项
Socket.IO-Client-Swift~> 16
Alamofire~> 5
MarkdownKit>= 0
Texture>= 0
ReachabilitySwift>= 0
SwiftSoup>= 0
 

UseDesk_SDK_Swift

https://img.shields.io/cocoapods/v/UseDesk_SDK_Swift.svg?style=flat-square

其他语言版本的此手册

也提供俄语版本[README_RU.md](README_RU.md)

示例应用

此仓库的 "Example" 文件夹包含一个示例项目,该项目是用于将 Usedesk 聊天 SDK 嵌入客户端应用的示例。您可以使用它来熟悉应用程序的基本功能并测试 SDK。

启动一个示例项目

要启动一个示例项目,您需要

  • 克隆仓库
  • 打开终端
  • 前往克隆仓库的 Example 文件夹
  • 执行命令 pod install

向项目中添加库

CocoaPods

当您使用CocoaPods向项目添加SDK时,既可以使用图形界面也可以使用非图形界面功能。为了安装

  • 在您的应用程序中添加Podfile条目
pod 'UseDesk_SDK_Swift'
  • 在终端中运行命令 pod update
  • 导入库
import UseDesk

Swift包管理器(SPM)

使用SPM安装的SDK实现位于一个单独的仓库中。请注意,使用SPM安装时,不可使用图形界面。

使用GUI初始化聊天或知识库

使用GUI配置SDK时的参数

其中 * — 必需参数

参数 类型 描述
CompanyID* 字符串 Usedesk中的公司ID
如何查找公司ID
ChannelID* 字符串 用于将应用程序消息放置在Usedesk中的聊天渠道ID
如何创建和配置渠道
Url* 字符串 SDK聊天的服务器URL
默认:pubsubsec.usedesk.ru
如果您在自己的服务器上使用Usedesk服务器版本,则值可能不同。与支持人员联系以获取有效的URL — [email protected]
Port 字符串 SDK聊天的服务器端口
默认:443
UrlAPI* 字符串 与Usedesk API进行工作的URL
默认: secure.usedesk.ru/uapi
如果您在自己的服务器上使用Usedesk服务器版本,则值可能不同。与支持人员联系以获取有效的URL — [email protected]
API_token 字符串 Usedesk API令牌
如何获取API令牌
UrlToSendFile 字符串 发送文件的URL
默认: https://secure.usedesk.ru/uapi/v1/send_file
KnowledgeBaseID 字符串 知识库ID
如何创建知识库
如果未提供ID,将不会使用知识库
KnowledgeBaseSectionId 字符串 知识库部分ID
此ID可以在您的知识库部分URL中找到
如果指定了此参数,则在打开知识库时会打开指定的部分
knowledgeBaseCategoryId 字符串 知识库分类ID
此ID可以在您的知识库分类URL中找到
如果指定了此参数,则在打开知识库时会打开指定的分类
knowledgeBaseArticleId 字符串 知识库文章ID
此ID可以在您的知识库文章URL中找到
如果指定了此参数,则在打开知识库时会打开指定的文章
isReturnToParentFromKnowledgeBase 布尔值 标识知识库的“返回”按钮行为,如果指定了单个分类、部分或文章
默认值:false
如果 true,按下“返回”按钮将关闭整个知识库
名称 字符串 客户名称
电子邮件 字符串 客户电子邮件
电话 字符串 客户电话
头像 数据? 客户头像
AvatarUrl URL? 客户头像图片的URL
头像参数具有更高的优先级
令牌 字符串 一个独特的令牌,用于唯一识别用户及其对话
令牌在聊天初始化后的回调中提供,并与电子邮件-电话-用户名相关联。
为了识别同一设备上的不同用户,您必须存储并传递接收到的令牌到初始化方法
AdditionalId 字符串 附加客户ID
注释 字符串 注释的文本
AdditionalFields Int : String 票务附加字段的数组
格式: id : "value"
对于文本字段,值是一个字符串,对于列表,值是一个具有确切列表值的字符串,对于标志,值是字符串 falsetrue
AdditionalNestedFields Int : String 嵌套列表类型的附加字段的数组
每个子数组代表一个嵌套列表。
嵌套列表的格式: [id1: "value", id2 : "value", id3 : "value"],其中 id1id2id3 — 嵌套级别的标识符
NameOperator 字符串 代理人名称
如果指定,字符串将显示在对话中的代理名称而不是代理名称
NameChat 字符串 聊天名称
在标题中显示
FirstMessage 字符串 自动消息
初始化后立即代表客户发送
CountMessagesOnInit Int 启动聊天时加载的消息数量
当客户打开聊天时,将加载指定数量的一条消息。当客户滚动聊天时,再加载20条消息
LocaleIdentifier 字符串 语言标识符
可用语言:俄罗斯(ru)、英语(en)、葡萄牙语(pt)、西班牙语(es)。
如果传入的标识符不受支持,将使用俄语
CustomLocale String : String 您自己的翻译字典
如果SDK需要以我们不支持的语言显示,您可以创建自己的翻译字典并使用它
存储 UDStorage 支持UDStorage协议的存储
每个独立的聊天都必须有自己的单独存储
isCacheMessagesWithFile 布尔值 存储包含文件的旗标
默认值: true
如果为 true,则文件将存储在缓存中。如果为 false,则文件不会存储在缓存中
isSaveTokensInUserDefaults 布尔值 存储用户令牌在应用UserDefaults中的标志
默认值: true
如果 true,则令牌将存储在当前设备上。这种方法的缺点是,如果您重新安装应用程序、更改设备或平台,将丢失对您通信的访问权限。
为了在其他设备和平台上保留对客户对话的访问权限,令牌必须存储在您的系统中,并在初始化期间传输。在这种情况下,您必须使用参数的值 false
isPresentDefaultControllers 布尔值 在指定的父控制器中自动显示控制器的标志
默认值: true
PresentIn UIViewController SDK必须在此控制器中打开的控制器

初始化聊天和与知识库聊天(GUI)

不要在 viewDidLoad() 方法中初始化库

let usedesk = UseDeskSDK()
usedesk.start(
    withCompanyID: "1234567", 
    chanelId: "1234", 
    url: "pubsubsec.usedesk.ru", 
    port: "443",
    urlAPI: "secure.usedesk.ru", 
    api_token: "143ed59g90ef093s",
    urlToSendFile: "https://secure.usedesk.ru/uapi/v1/send_file", 
    knowledgeBaseID: "12", 
    knowledgeBaseSectionId: "0",
    knowledgeBaseCategoryId: "0",
    knowledgeBaseArticleId: "0",
    isReturnToParentFromKnowledgeBase: true,
    name: "Name", 
    email: "[email protected]", 
    phone: "89000000000", 
    avatar: avatarData,
    token: "Token", 
    additional_id: "additional_id",
    note: "Note text", 
    additionalFields: [1 : "value"], 
    additionalNestedFields: [[1 : "value1", 2 : "value2", 3 : "value3"]],
    nameOperator: "NameOperator", 
    nameChat: "NameChat", 
    firstMessage: "message",
    сountMessagesOnInit: 30,
    localeIdentifier: "en", 
    customLocale: customLocaleDictionary, 
    storage: UDStorage(),
    isCacheMessagesWithFile: false,
    isSaveTokensInUserDefaults: true, 
    isPresentDefaultControllers: true, 
    presentIn: self,
    connectionStatus: { success, feedbackStatus, token in },
    errorStatus: { udError, description in }
)

块的返回参数

连接状态

类型 描述
布尔值 成功连接到聊天
用户反馈状态 反馈表单显示状态
字符串 用户令牌

错误状态

类型 描述
用户错误 错误类型说明
String? 错误描述

使用GUI初始化没有聊天的知识库

SDK 允许您在应用程序中实现知识库而无需嵌入聊天。

在所选方法中,除其他必需参数外,您还可以传递分区、类别或文章标识符。在这种情况下,SDK 初始化后,将打开指定的分区、类别或文章,您可以从知识库的层次结构返回。如果同时指定分区、类别和/或文章标识符,我们将显示最深的实体。

使用GUI配置SDK时使用的参数

其中 * — 必需参数

参数 类型 描述
UrlAPI* 字符串 与Usedesk API进行工作的URL
默认: secure.usedesk.ru/uapi
如果您在自己的服务器上使用Usedesk的服务器版,您的值可能不同。请与支持团队确认有效的URL地址 — [email protected]
API_token 字符串 Usedesk API令牌
如何获取API令牌
KnowledgeBaseID 字符串 知识库ID
如何创建知识库
如果未提供ID,将不会使用知识库
KnowledgeBaseSectionId 字符串 知识库部分ID
此ID可以在您的知识库部分URL中找到
如果指定了此参数,则在打开知识库时会打开指定的部分
knowledgeBaseCategoryId 字符串 知识库分类ID
此ID可以在您的知识库分类URL中找到
如果指定了此参数,则在打开知识库时会打开指定的分类
knowledgeBaseArticleId 字符串 知识库文章ID
此ID可以在您的知识库文章URL中找到
如果指定了此参数,则在打开知识库时会打开指定的文章
isReturnToParentFromKnowledgeBase 布尔值 标识知识库的“返回”按钮行为,如果指定了单个分类、部分或文章
默认值:false
如果 true,按下“返回”按钮将关闭整个知识库
名称 字符串 客户名称
电子邮件 字符串 客户电子邮件
电话 字符串 客户电话
LocaleIdentifier 字符串 语言标识符
可用语言:俄罗斯(ru)、英语(en)、葡萄牙语(pt)、西班牙语(es)。
如果传入的标识符不受支持,将使用俄语
CustomLocale String : String 您自己的翻译字典
如果SDK需要以我们不支持的语言显示,您可以创建自己的翻译字典并使用它
isPresentDefaultControllers 布尔值 在指定的父控制器中自动显示控制器的标志
默认值: true
PresentIn UIViewController SDK必须在此控制器中打开的控制器

仅使用GUI和知识库初始化SDK

let usedesk = UseDeskSDK()
usedesk.startKnowledgeBase(
    urlAPI: "pubsubsec.usedesk.ru", 
    api_token: "143ed59g90ef093s",
    knowledgeBaseID: "12", 
    knowledgeBaseSectionId: "0",
    knowledgeBaseCategoryId: "0",
    knowledgeBaseArticleId: "0",
    isReturnToParentFromKnowledgeBase: true,
    name: "Name", 
    email: "[email protected]", 
    phone: "89000000000", 
    localeIdentifier: "en", 
    customLocale: customLocaleDictionary, 
    isPresentDefaultControllers: true, 
    presentIn: self,
    connectionStatus: { success in },
    errorStatus: { udError, description in }
)

块1返回的参数

连接状态

类型 描述
布尔值 知识库打开成功的标志

错误状态

类型 描述
布尔值 成功连接到聊天
用户反馈状态 反馈表单显示状态

无GUI初始化SDK

无GUI方式配置SDK时使用的参数

其中 * — 必需参数

参数 类型 描述
CompanyID* 字符串 Usedesk中的公司ID
如何查找公司ID
ChannelID* 字符串 用于将应用程序消息放置在Usedesk中的聊天渠道ID
如何创建和配置渠道
Url* 字符串 SDK聊天的服务器URL
默认:pubsubsec.usedesk.ru
如果您在自己的服务器上使用Usedesk的服务器版,您的值可能不同。请与支持团队确认有效的URL地址 — [email protected]
Port 字符串 SDK聊天的服务器端口
默认:443
UrlAPI* 字符串 与Usedesk API进行工作的URL
默认: secure.usedesk.ru/uapi
如果您在自己的服务器上使用Usedesk的服务器版,您的值可能不同。请与支持团队确认有效的URL地址 — [email protected]
API_token 字符串 Usedesk API令牌
如何获取API令牌
UrlToSendFile 字符串 发送文件的URL
默认: https://secure.usedesk.ru/uapi/v1/send_file
KnowledgeBaseID 字符串 知识库ID
如何创建知识库
如果未提供ID,将不会使用知识库
名称 字符串 客户名称
电子邮件 字符串 客户电子邮件
电话 字符串 客户电话
头像 数据? 客户头像
AvatarUrl URL? 客户头像图片的URL
头像参数具有更高的优先级
令牌 字符串 一个独特的令牌,用于唯一识别用户及其对话
令牌在聊天初始化后的回调中提供,并与电子邮件-电话-用户名相关联。
为了识别同一设备上的不同用户,您必须存储并传递接收到的令牌到初始化方法
AdditionalId 字符串 附加客户ID
注释 字符串 注释的文本
AdditionalFields Int : String 票务附加字段的数组
格式: id : "value"
对于文本字段,值是一个字符串,对于列表,值是一个具有确切列表值的字符串,对于标志,值是字符串 falsetrue
AdditionalNestedFields Int : String 嵌套列表类型的附加字段的数组
每个子数组代表一个嵌套列表。
嵌套列表的格式: [id1: "value", id2 : "value", id3 : "value"],其中 id1id2id3 — 嵌套级别的标识符
FirstMessage 字符串 自动消息
初始化后立即代表客户发送
CountMessagesOnInit Int 启动聊天时加载的消息数量
当客户打开聊天时,将加载指定数量的一条消息。当客户滚动聊天时,再加载20条消息
LocaleIdentifier 字符串 语言标识符
可用语言:俄罗斯(ru)、英语(en)、葡萄牙语(pt)、西班牙语(es)。
如果传入的标识符不受支持,将使用俄语
CustomLocale String : String 您自己的翻译字典
如果SDK需要以我们不支持的语言显示,您可以创建自己的翻译字典并使用它
isSaveTokensInUserDefaults 布尔值 存储用户令牌在应用UserDefaults中的标志
默认值: true
如果 true,则令牌将存储在当前设备上。这种方法的缺点是,如果您重新安装应用程序、更改设备或平台,将丢失对您通信的访问权限。
为了在其他设备和平台上保留对客户对话的访问权限,令牌必须存储在您的系统中,并在初始化期间传输。在这种情况下,您必须使用参数的值 false

在无GUI情况下初始化SDK

let usedesk = UseDeskSDK()
usedesk.startWithoutGUICompanyID(
    companyID: "1234567",
    chanelId: "1234", 
    url: "pubsubsec.usedesk.ru", 
    port: "443",
    urlAPI: "secure.usedesk.ru", 
    api_token: "143ed59g90ef093s",
    urlToSendFile: "https://secure.usedesk.ru/uapi/v1/send_file", 
    knowledgeBaseID: "12",
    name: "Name", 
    email: "[email protected]", 
    phone: "89000000000", 
    avatar: avatarData,
    token: "Token", 
    additional_id: "additional_id",
    note: "Note text", 
    additionalFields: [1 : "value"], 
    additionalNestedFields: [[1 : "value1", 2 : "value2", 3 : "value3"]], 
    firstMessage: "message",
    сountMessagesOnInit: 30,
    localeIdentifier: "en", 
    customLocale: customLocaleDictionary,
    isSaveTokensInUserDefaults: true,
    connectionStatus: { success, feedbackStatus, token in },
    errorStatus: { udError, description in }
)

块返回的参数

连接状态

类型 描述
布尔值 成功连接到聊天
用户反馈状态 反馈表单显示状态
字符串 用户令牌

错误状态

类型 描述
用户错误 错误类型说明
String? 错误描述

文档

SDK的使用方法,元素定制和错误处理在文档中描述:[http://sdk.usedocs.com/](http://sdk.usedocs.com/)

作者

Sergey, [email protected]

Maksim, [email protected]

许可协议

UseDesk_SDK_Swift 在 MIT 许可协议下可用。有关更多信息,请参阅 LICENSE 文件