UseDesk_SDK_Swift
其他语言版本的此手册
也提供俄语版本[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" 对于文本字段,值是一个字符串,对于列表,值是一个具有确切列表值的字符串,对于标志,值是字符串 false 或 true |
AdditionalNestedFields | Int : String | 嵌套列表类型的附加字段的数组 每个子数组代表一个嵌套列表。 嵌套列表的格式: [id1: "value", id2 : "value", id3 : "value"] ,其中 id1 、id2 、id3 — 嵌套级别的标识符 |
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" 对于文本字段,值是一个字符串,对于列表,值是一个具有确切列表值的字符串,对于标志,值是字符串 false 或 true |
AdditionalNestedFields | Int : String | 嵌套列表类型的附加字段的数组 每个子数组代表一个嵌套列表。 嵌套列表的格式: [id1: "value", id2 : "value", id3 : "value"] ,其中 id1 、id2 、id3 — 嵌套级别的标识符 |
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 文件