LivePerson iOS ABC SDK:适用于 iMessage App/Extension 和主应用的轻量级 SDK。
LivePerson ABC SDK 的目标是提供与 LiveEngage 平台集成的解决方案(主机 & iMessage app/ Extension)。在发送自定义交互消息 (CIM) 后,此 SDK 将允许您通过以下功能增强对话体验:
- 将支持的消费行为/SDE 报告为 LiveEngage 平台中的参与属性:[链接](https://developers.liveperson.com/engagement-attributes-types-of-engagement-attributes.html)
- 从消费者向代理发送自定义交互消息 (CIM) 回复消息,具有独特的文本上下文。
- 通知特殊事件回调。
Apple 和 LivePerson 配置确保您有一个 Apple Business Chat 商业 ID。联系您的 LivePerson 账户代表以在后台服务器上启用此 SDK。
SDK 安装
-
将 lpabcsdk.framework 复制到您的 XCode 项目中,确保它在 iMessageApp 目标的 嵌入式目标 部分中使用,在 项目设置/常规 选项卡下,以及您的 App 目标(如有必要)。
-
如果嵌入到您的宿主应用中,在项目设置中,导航到构建阶段选项卡,并点击加号按钮粘贴以下内容:
${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/LPABCSDK.framework/LPABCSDKStrippingScript.sh
-
为每个实现目标,确保在 info.plist 的能力部分中启用 App 分组。
- 创建一个键为 ‘LPABC_PARAMS’ 的字典,并添加一个键:lpabc_appgroup,其值为您的应用分组(在所有目标中相同):lpabc_appgroup : <your_app_group_id>
-
导入 lpabcsdk 并初始化 SDK
-
为了启用 SDE 报告功能,在 iMessage app/extension 中,在 MSMessagesAppViewController 的覆盖中添加以下代码:
-
override func didBecomeActive(with conversation: MSConversation)
-
override func didReceive(_ message: MSMessage, conversation: MSConversation) of MSMessagesAppViewController
self.lpabcsdk.updateWithIncomingInteractiveMessage(with: conversation, message: message)
SDK 实现
- 初始化 SDK
LPABCSDK.initializeSDK(minimumLogLevel: .trace, enableLog: true)
-
创建 SDE
createSDE 函数在回调闭包中返回一个 SDEBase 对象,然后可以设置所需的 SDE。设置完成后,SDE 将被添加到一个期望显式发送的堆栈中
lpabcsdk.createSDE(sdeType: .cartUpdate) { (sdeBase) in
//setup the sde:
sdeBase.cartUpdate?.setup(...)
}
示例 1
lpabcsdk.createSDE(sdeType: .visitorError) { (sdeBase) in
sdeBase.visitorError?.setup(contextId: "<CONTEXID>",
message: "<MESSAGE>",
code: "<CODE>",
level: 0,
resolved: true)
}
示例 2
lpabcsdk.createSDE(sdeType: .cartUpdate) { (sdeBase) in
//Create a product:
let product = SDEProduct.init(name: "<>", category: "<>", sku: "<>", price: 100, quantity: 3)
//Setup the sde:
sdeBase.cartUpdate?.setup(total: 100, currency: "<>", numItems: 1, products: [product])
}
使用 json 字符串或 字典 对象也可以创建配置 sde
示例
sdeBase.setupWithJson("{\"type\":\"ctmrinfo\"}")
sdeBase.setupWithJson(["type":"cart"])
- 发送 SDE 对于发送 SDE 堆栈,请使用
lpabcsdk.sendSDEStack()
//Using completion callbacks:
lpabcsdk.sendSDEStack(onSuccess: { (success) in
}) { (error) in
}
-
空闲时自动发送 SDE 堆栈
当 autoSendWhenIdle 为 true 时,SDE 将在 SDE 堆栈中聚合,并在堆栈活动空闲(等待间隔)时自动发送
您可以设置等待时间(0-15秒,默认:5秒)
lpabcsdk.setSDEStackIdleInterval(interval: 8)
示例
lpabcsdk.createSDE(sdeType: .customerInfo, autoSendWhenIdle: true) { (sdeBase) in
sdeBase.customerInfo?.setup(cstatus: "<cstatus>",
ctype: "<ctype>",
balance: 10,
currency: "<currency>",
socialId: "<socialId>",
imei: "<imei>",
userName: "<userName>",
companySize: 30,
companyBranch: "<companyBranch>",
accountName: "<accountName>",
role: "<role>",
loginStatus: 0,
storeZipCode: "<storeZipCode>",
storeNumber: "<storeNumber>",
lastPaymentDate: SDEDate.init(day: 23,
month: 4,
year: 2019),
registrationDate: nil)
}
- 要获取空闲 SDE 堆栈的成功/失败回调,您可以实现 idleSDEStackCompletion 闭包
lpabcsdk.idleSDEStackCompletion = { success in
<YOUR CUSTOM CODE HERE>
}
-
隐式 SDE
某些操作将触发隐式 SDE 流。这将以专用回调闭包的形式返回流程类型 - ImplicitSDEType。然后您可以将所需的 SDE 设置为表达由所触发事件的自定义报告。目前唯一表达此事件的途径是在收到新的 CIMf 或每个会话 ID 的第一次。
类型将按照以下方式回调
lpabcsdk.implicitSDEClosure = { implicitType in
switch implicitType {
<YOUR CUSTOM CODE HERE i.e sendCustomerInfoSDE()>
}
}
- 发送 CIM(自定义交互消息)回复 * 仅在 iMessage 目标上受支持
appendReplayMessagePayload(message: MSMessage, textContext: String)
示例
//Create an MSMEssage to send:
Let messageToSend = createMessage()
//Append text:
lpabcsdk.appendReplayMessagePayload(message: messageToSend, textContext: "<YOUR_CUSTOM_TEXT>")
- 可擦除 SDE(仅发送 'type')
- 购物车更新
- *客户信息(连接器使用的已验证字段)
- *个人信息(连接器使用的已验证字段)
- 营销来源
- 服务活动
当仅使用类型发送时,这些 SDE 将从小部件中删除
-
示例应用程序(企业级)
https://s3.amazonaws.com/lp-mobile-apps/lpabcsdk/index.html
用户:lptester 密码:lp1234
- 信任证书:设置/通用/设备管理/Lookio