LPABCSDK 1.3.10

LPABCSDK 1.3.10

omerBergerLuis CastilloDavid VillacisWenzhi ZhaoGrant HasfjordUmair Alinramagiri 维护。



LPABCSDK 1.3.10

  • Grant Hasfjord

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 安装

  1. 将 lpabcsdk.framework 复制到您的 XCode 项目中,确保它在 iMessageApp 目标的 嵌入式目标 部分中使用,在 项目设置/常规 选项卡下,以及您的 App 目标(如有必要)。

  2. 如果嵌入到您的宿主应用中,在项目设置中,导航到构建阶段选项卡,并点击加号按钮粘贴以下内容:

 	${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/LPABCSDK.framework/LPABCSDKStrippingScript.sh
  1. 为每个实现目标,确保在 info.plist 的能力部分中启用 App 分组。

    • 创建一个键为 ‘LPABC_PARAMS’ 的字典,并添加一个键:lpabc_appgroup,其值为您的应用分组(在所有目标中相同):lpabc_appgroup : <your_app_group_id>
  2. 导入 lpabcsdk 并初始化 SDK

  3. 为了启用 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 将从小部件中删除

  • 信任证书:设置/通用/设备管理/Lookio