QMConnect.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865
  1. //
  2. // QMConnect.h
  3. // QMLineSDK
  4. //
  5. // Created by haochongfeng on 2018/10/23.
  6. // Copyright © 2018年 haochongfeng. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import "QMLineDelegate.h"
  11. #import "QMMessage.h"
  12. @class CustomMessage;
  13. @class QMAgent;
  14. @class QMSessionOption;
  15. @class QMEvaluation;
  16. @interface QMConnect : NSObject
  17. + (void)registerSDKWithAppKey:(NSString *)accessId
  18. userName:(NSString *)userName
  19. userId:(NSString *)userId
  20. deviceId:(NSString *)deviceId;
  21. /**
  22. 注册accessId、初始化SDK:
  23. 初始化成功,建立tcp连接,保证移动端消息的接收,如果建立tcp连接失败,会导致消息接收不到
  24. 以通知的方式进行回调
  25. param accessId: 接入客服系统的密钥, 可在客服系统登录平台获取
  26. param userName: 用户名, 区分用户, 用户名可直接在后台显示
  27. param userId: 用户ID, 区分用户
  28. */
  29. + (void)registerSDKWithAppKey:(NSString *)accessId
  30. userName:(NSString *)userName
  31. userId:(NSString *)userId;
  32. /**
  33. 注册accessId、初始化SDK:
  34. 初始化成功,建立tcp连接,保证移动端消息的接收,如果建立tcp连接失败,会导致消息接收不到
  35. 以代理的方式进行回调
  36. param accessId: 接入客服系统的密钥, 可在客服系统登录平台获取
  37. param userName: 用户名, 区分用户, 用户名可直接在后台显示
  38. param userId: 用户ID, 区分用户
  39. */
  40. + (void)registerSDKWithAppKey:(NSString *)accessId
  41. userName:(NSString *)userName
  42. userId:(NSString *)userId
  43. delegate:(id<QMKRegisterDelegate>)delegate;
  44. /**
  45. 注销、断开tcp连接
  46. 客服人员可收到用户离开的通知
  47. */
  48. + (void)logout;
  49. /*
  50. 部分用户Cocoapods服务,需要咨询对接是否需要使用
  51. **/
  52. + (void)setServerToCocoapods;
  53. /**
  54. 自建服务器设置网络地址:
  55. 是不是自建服务器的用户不需要设置此项
  56. param tcpHost: TCP连接地址
  57. param tcpPort: TCP端口号
  58. param httpPost: HTTP请求地址
  59. */
  60. + (void)setServerAddress:(NSString *)tcpHost
  61. tcpPort:(int)tcpPort
  62. httpPost:(NSString *)httpPost;
  63. /*
  64. 推送的token
  65. 每次启动应用都需要重新设置
  66. **/
  67. + (void)setServerToken:(NSData *)deviceToken;
  68. /**
  69. 发起新会话:
  70. 调用此接口、可以拥有与客服对话的能力
  71. param peer: 技能组ID,客服平台配置多个技能组时,需要传入对应的技能组ID,会话才能接入到对应的技能组,
  72. param successBlock: 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  73. param failBlock: 接入会话失败回调,
  74. */
  75. + (void)sdkBeginNewChatSession:(NSString *)peerId
  76. successBlock:(void (^)(BOOL))success
  77. failBlock:(void (^)(NSString *))failure;
  78. /**
  79. 发起新会话:
  80. 调用此接口、可以拥有与客服对话的能力
  81. @param peerId 技能组ID,客服平台配置多个技能组时,需要传入对应的技能组ID,会话才能接入到对应的技能组,
  82. @param delegate 设置代理方法
  83. @param success 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  84. @param failure 接入会话失败回调
  85. */
  86. + (void)sdkBeginNewChatSession:(NSString *)peerId
  87. delegate:(id<QMKServiceDelegate>)delegate
  88. successBlock:(void (^)(BOOL))success
  89. failBlock:(void (^)(void))failure;
  90. /**
  91. 发起新会话:
  92. 调用此接口、可以拥有与客服对话的能力
  93. param peer: 技能组ID,客服平台配置多个技能组时,需要传入对应的技能组ID,会话才能接入到对应的技能组,
  94. param params: @{@"agent":@"8000"} 专属坐席
  95. @{@"customField":@{@"姓名":@"李三"}} 自定义字段
  96. param successBlock: 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  97. param failBlock: 接入会话失败回调,
  98. */
  99. + (void)sdkBeginNewChatSession:(NSString *)peerId
  100. params:(NSDictionary *)params
  101. successBlock:(void (^)(BOOL))success
  102. failBlock:(void (^)(NSString *))failure;
  103. /**
  104. 发起新会话:
  105. 调用此接口、可以拥有与客服对话的能力
  106. @param peerId 技能组ID,客服平台配置多个技能组时,需要传入对应的技能组ID,会话才能接入到对应的技能组,
  107. @param option 扩展信息配置 含VIP专属坐席 自定义字段
  108. @param success 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  109. @param failure 接入会话失败回调
  110. */
  111. + (void)sdkBeginNewChatSession:(NSString *)peerId
  112. option:(QMSessionOption *)option
  113. successBlock:(void (^)(BOOL))success
  114. failBlock:(void (^)(NSString *))failure;
  115. /**
  116. 发起新会话:
  117. 启用日程管理的用此接口
  118. 调用此接口、可以拥有与客服对话的能力、携带参数
  119. param schedule: 日程id
  120. param processId: 流程id
  121. param currentNodeId: 入口节点中访客选择的流转节点ID
  122. param entranceId: 入口节点中的id
  123. param params: @{@"agent":@"8000"} 专属坐席
  124. @{@"customField":@{@"姓名":@"李三"}} 自定义字段
  125. param successBlock: 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  126. param failBlock: 接入会话失败回调,
  127. */
  128. + (void)sdkBeginNewChatSessionSchedule:(NSString *)scheduleId
  129. processId:(NSString *)processId
  130. currentNodeId:(NSString *)currentNodeId
  131. entranceId:(NSString *)entranceId
  132. params:(NSDictionary *)params
  133. successBlock:(void (^)(BOOL))success
  134. failBlock:(void (^)(NSString *))failure;
  135. /**
  136. 发起新会话:
  137. 启用日程管理vip坐席失败之后用此接口
  138. 调用此接口、可以拥有与客服对话的能力、携带参数
  139. param schedule: 日程id
  140. param processId: 流程id
  141. param currentNodeId: 入口节点中访客选择的流转节点ID
  142. param entranceId: 入口节点中的id
  143. param successBlock: 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  144. param failBlock: 接入会话失败回调,
  145. */
  146. + (void)sdkBeginNewChatSessionSchedule:(NSString *)scheduleId
  147. processId:(NSString *)processId
  148. currentNodeId:(NSString *)currentNodeId
  149. entranceId:(NSString *)entranceId
  150. successBlock:(void (^)(BOOL))success
  151. failBlock:(void (^)(NSString *))failure;
  152. /**
  153. 获取渠道全局配置中 globalSet
  154. 调用此接口获取后台的全局配置信息,注册成功会主动请求一次插入本地plist文件,用户也可以自行调用获取
  155. param successBlock: 成功回调
  156. param failBlock: 回调失败
  157. */
  158. + (void)sdkGetWebchatGlobleConfig:(void (^)(NSDictionary *))success
  159. failBlock:(void (^)(void))failure;
  160. /**
  161. 获取渠道全局配置中的 scheduleConfig
  162. 调用此接口获取全局配置中的 scheduleConfig 此接口主要用于开启日程管理需要
  163. param configs: 配置信息
  164. param successBlock: 成功回调
  165. param failBlock: 回调失败
  166. */
  167. + (void)sdkGetWebchatScheduleConfig:(void (^)(NSDictionary *))success
  168. failBlock:(void (^)(void))failure;
  169. /**
  170. 发送文本消息:
  171. 调用此接口、可以发送文本消息,包括文字、表情
  172. param text: 文本消息内容
  173. param successBlock: 成功回调
  174. param failBlock: 失败回调
  175. */
  176. + (void)sendMsgText:(NSString *)text
  177. successBlock:(void (^)(void))success
  178. failBlock:(void (^)(void))failure;
  179. /**
  180. 发送图片消息:
  181. 调用此接口、可以发送图片消息
  182. param pic: 图片消息内容
  183. param successBlock: 成功回调
  184. param failBlock: 失败回调
  185. */
  186. + (void)sendMsgPic:(UIImage *)image
  187. successBlock:(void (^)(void))success
  188. failBlock:(void (^)(void))failure;
  189. /**
  190. 发送图片消息:
  191. 调用此接口、可以发送图片消息
  192. param filePath: 图片文件相对路径
  193. param successBlock: 成功回调
  194. param failBlock: 失败回调
  195. */
  196. + (void)sendMsgImage:(NSString *)filePath
  197. successBlock:(void (^)(void))success
  198. failBlock:(void (^)(void))failure;
  199. /**
  200. 发送语音消息:
  201. 调用此接口、可以发送语音消息
  202. param audio: 语音消息路径 语音名字需要带mp3后缀
  203. param duration: 语音消息时长
  204. param successBlock: 成功回调
  205. param failBlock: 失败回调
  206. */
  207. + (void)sendMsgAudio:(NSString *)audio
  208. duration:(NSString *)duartion
  209. successBlock:(void (^)(void))success
  210. failBlock:(void (^)(void))failure;
  211. /**
  212. 语音转文本接口:
  213. param message: 消息model
  214. */
  215. + (void)sendMsgAudioToText:(CustomMessage *)message
  216. successBlock:(void (^)(void))success
  217. failBlock:(void (^)(void))failure;
  218. /**
  219. 发送文件消息:
  220. 调用此接口、可以发送文件消息
  221. param fileName: 文件名称
  222. param filePath: 沙盒文件相对路径
  223. param fileSize: 文件大小
  224. param progress: 上传进度回调
  225. param successBlock: 成功回调
  226. param failBlock: 失败回调
  227. */
  228. + (void)sendMsgFile:(NSString *)fileName
  229. filePath:(NSString *)filePath
  230. fileSize:(NSString *)fileSize
  231. progressHander:(void (^)(float))progress
  232. successBlock:(void (^)(void))success
  233. failBlock:(void (^)(void))failure;
  234. /**
  235. 发送商品信息消息:
  236. 调用此接口、可以发送商品信息消息
  237. param message: 消息字典
  238. param successBlock: 成功回调
  239. param failBlock: 失败回调
  240. */
  241. + (void)sendMsgCardInfo:(NSDictionary *)message
  242. successBlock:(void (^)(void))success
  243. failBlock:(void (^)(void))failure;
  244. /**
  245. 下载消息中的文件:
  246. param message: 消息实例
  247. param localFilePath: 沙盒文件相对路径
  248. param progress: 下载进度回调
  249. param successBlock: 成功回调
  250. param failBlock: 失败回调
  251. */
  252. + (void)downloadFileWithMessage:(CustomMessage *)message
  253. localFilePath:(NSString *)filePath
  254. progressHander:(void (^)(float))progress
  255. successBlock:(void (^)(void))success
  256. failBlock:(void (^)(NSString *))failure;
  257. /**
  258. 消息重发:
  259. 调用此接口、将未发送的消息重新发送
  260. @param message 消息内容
  261. @param success 成功回调
  262. @param failure 失败回调
  263. */
  264. + (void)resendMessage:(CustomMessage *)message
  265. successBlock:(void (^)(void))success
  266. failBlock:(void (^)(void))failure;
  267. /**
  268. 封装消息模型:
  269. 目前只支持新增的评价类型消息(不支持文本、语音、图片等)
  270. */
  271. + (CustomMessage *)createMessageOfInvestigations;
  272. /**
  273. 获取数据库信息:
  274. 调用此接口、获取数据库信息
  275. param num : 单次获取消息数目(无默认值)
  276. param [CustomMessage]: 返回消息数组
  277. */
  278. + (NSArray<CustomMessage *> *)getDataFromDatabase:(int)number;
  279. /**
  280. 获取数据库接口、相同的accessId的数据库中的全部消息
  281. 调用此接口、获取数据库下同一个accessid下的全部信息
  282. param num : 单次获取消息数目(无默认值)
  283. param [CustomMessage]: 返回消息数组
  284. */
  285. + (NSArray<CustomMessage *> *)getAccessidAllDataFormDatabase:(int)number;
  286. /**
  287. 获取数据库接口、相同的userId的数据库中的全部消息
  288. 调用此接口、获取数据库下同一个userId下的全部信息
  289. param num : 单次获取消息数目(无默认值)
  290. param [CustomMessage]: 返回消息数组
  291. */
  292. + (NSArray<CustomMessage *> *)getUserIdDataFormDatabase:(int)number;
  293. /**
  294. 获取单条数据库信息:
  295. 调用此接口、获取数据库一条记录、用于消息重发
  296. param messageId: 消息ID
  297. param [CustomMessage]: 返回消息数组
  298. */
  299. + (NSArray<CustomMessage *> *)getOneDataFromDatabase:(NSString *)messageId;
  300. /**
  301. 删除单条数据库信息:
  302. 用此接口、删除数据路一条记录、只能删除本地消息
  303. param message: 消息
  304. */
  305. + (void)removeDataFromDataBase:(NSString *)messageId;
  306. /**
  307. 修改语音状态接口:
  308. 将语音由未读取状态变为已读取状态
  309. param messageId: 消息ID
  310. */
  311. + (void)changeAudioMessageStatus:(NSString *)messageId;
  312. /**
  313. 撤回消息接口:
  314. 将发送的消息撤回,该接口只用于客服撤回消息
  315. param messageId: 消息ID
  316. */
  317. + (void)changeDrawMessageStatus:(NSString *)messageId;
  318. /**
  319. 查询Mp3消息:
  320. 查询MP3类型文件的消息的大小
  321. param messageId: 消息ID
  322. */
  323. + (NSString *)queryMp3FileMessageSize:(NSString *)messageId;
  324. /**
  325. 修改Mp3消息:
  326. 修改MP3类型文件的消息的大小
  327. param messageId: 消息ID
  328. param fileSize: 文件大小
  329. */
  330. + (void)changeMp3FileMessageSize:(NSString *)messageId
  331. fileSize:(NSString *)fileSize;
  332. /**
  333. 插入商品信息展示数据
  334. param message: 消息字典
  335. */
  336. + (void)insertCardInfoData:(NSDictionary *)message type:(NSString *)type;
  337. /**!
  338. 提示: Use the (insertCardInfoData: type:) instead
  339. */
  340. + (void)insertCardInfoData:(NSDictionary *)message __attribute__((deprecated));
  341. /*
  342. 删除商品信息展示消息
  343. */
  344. + (void)deleteCardTypeMessage;
  345. + (void)deleteCardTypeMessage:(NSString *)type;
  346. /**
  347. 变更商品信息展示消息时间
  348. param time: 消息时间
  349. */
  350. + (void)changeCardTypeMessageTime:(NSString *)time;
  351. /**
  352. 语音转文本是否显示
  353. param status: 是否显示 @”0“不显示 @”1“显示
  354. param messageId: 消息id (messageId传@”all“时是隐藏所有已经转的语音----用于退出聊天页面再次进入的时候)
  355. */
  356. + (void)changeVoiceTextShowoOrNot:(NSString *)status message:(NSString *)messageId;
  357. /**
  358. 查询语音转文字的状态
  359. 0不展示 1展示 2正在翻译中…
  360. @param messageId 消息id
  361. */
  362. + (NSString *)queryVoiceTextStatusWithmessageId:(NSString *)messageId;
  363. /**
  364. 请求人工服务:
  365. 调用此接口、请求人工服务(如后台开启智能机器人功能、默认为机器人服务器)
  366. param successBlock: 成功回调
  367. param failBlock: 失败回调
  368. */
  369. + (void)sdkConvertManual:(void (^)(void))success
  370. failBlock:(void (^)(void))failure;
  371. /**
  372. 其他坐席服务授权
  373. 专属坐席未在线的情况下,是否接受其他坐席的服务
  374. param peer: 技能组ID, 详见beginSession接口
  375. param successBlock: 成功回调
  376. param failBlock: 失败回调
  377. */
  378. + (void)sdkAcceptOtherAgentWithPeer:(NSString *)peer
  379. successBlock:(void (^)(void))success
  380. failBlock:(void (^)(void))failure;
  381. /**
  382. 获取满意度评价信息:
  383. 用于满意度调查
  384. param investigateArray: 评价信息
  385. param successBlock: 成功回调
  386. param failureBlock : 失败回调
  387. */
  388. + (void)sdkGetInvestigate:(void (^)(NSArray<NSDictionary *> *))success
  389. failureBlock:(void (^)(void))failure;
  390. /**
  391. 获取满意度评价信息:
  392. 用于满意度调查 自定义标题和感谢语
  393. param investigateArray: 评价信息
  394. param successBlock: 成功回调
  395. param failureBlock : 失败回调
  396. */
  397. + (void)newSDKGetInvestigate:(void (^)(QMEvaluation *))success
  398. failureBlock:(void (^)(void))failure;
  399. /**
  400. 取消满意度评价:
  401. 获取服务器timestamp时间戳
  402. param successBlock: 成功回调
  403. param failureBlock : 失败回调
  404. */
  405. + (void)sdkGetServerTime:(void (^)(NSString *))success
  406. failureBlock:(void (^)(void))failure;
  407. /**
  408. 查询满意度评价是否超时:
  409. params 参数
  410. param successBlock: 成功回调
  411. param failureBlock : 失败回调
  412. */
  413. + (void)sdkCheckImCsrTimeoutParams:(NSDictionary *)params
  414. success:(void (^)(void))success
  415. failureBlock:(void (^)(void))failure;
  416. /**
  417. 获取技能组信息:
  418. 开始会话前选择技能组进入
  419. param investigateArray: 评价信息
  420. param successBlock: 成功回调
  421. param failureBlock: 失败回调
  422. */
  423. + (void)sdkGetPeers:(void (^)(NSArray<NSDictionary *> *))success
  424. failureBlock:(void (^)(void))failure;
  425. /**
  426. 获取未读消息数接口
  427. param accessId: 接入客服系统的密钥, 可在客服系统登录平台获取
  428. param userName: 用户名, 区分用户, 用户名可直接在后台显示
  429. param userId: 用户ID, 区分用户
  430. param successBlock: 成功回调
  431. param failureBlock : 失败回调
  432. */
  433. + (void)sdkGetUnReadMessage:(NSString *)accessId
  434. userName:(NSString *)userName
  435. userId:(NSString *)userId
  436. successBlock:(void (^)(NSInteger))success
  437. failBlock:(void (^)(void))failure;
  438. /**
  439. 提交满意度调查信息
  440. param name: 评价信息
  441. param value: 评价信息ID
  442. param successBlock: 成功回调
  443. param failBlock: 失败回调
  444. */
  445. + (void)sdkSubmitInvestigate:(NSString *)name
  446. value:(NSString *)value
  447. successBlock:(void (^)(void))success
  448. failBlock:(void (^)(void))failure;
  449. /**
  450. 提交满意度评价 包含二级n标题和备注
  451. param name: 评价信息
  452. param value: 评价信息ID
  453. param successBlock: 成功回调
  454. param failBlock: 失败回调
  455. */
  456. + (void)sdkNewSubmitInvestigate:(NSString *)name
  457. value:(NSString *)value
  458. radioValue:(NSArray *)radioValue
  459. remark:(NSString *)remark
  460. successBlock:(void (^)(void))success
  461. failBlock:(void (^)(void))failure;
  462. /**
  463. 留言接口
  464. 客服离线状态下,未配置机器人客服或转人工客服时,可进行留言操作
  465. param peer: 技能组
  466. param phone: 联系电话
  467. param Email: 联系邮箱
  468. param message: 留言内容
  469. param successBlock: 成功回调
  470. param failBlock: 失败回调
  471. */
  472. + (void)sdkSubmitLeaveMessage:(NSString *)peer
  473. phone:(NSString *)phone
  474. Email:(NSString *)email
  475. message:(NSString *)message
  476. successBlock:(void (^)(void))success
  477. failBlock:(void (^)(void))failure;
  478. /**
  479. 留言接口
  480. 客服离线状态下,未配置机器人客服或转人工客服时,可进行留言操作
  481. param peer: 技能组
  482. param information: 联系信息
  483. param leavesgFields: 自定义联系字段
  484. param message: 留言内容
  485. param successBlock: 成功回调
  486. param failBlock: 失败回调
  487. */
  488. + (void)sdkSubmitLeaveMessageWithInformation:(NSString *)peer
  489. information:(NSDictionary *)information
  490. leavemsgFields:(NSArray<NSDictionary*> *)leavemsgFields
  491. message:(NSString *)message
  492. successBlock:(void (^)(void))success
  493. failBlock:(void (^)(void))failure;
  494. /**
  495. 机器人反馈
  496. param isUseful: 是否有帮助
  497. param questionId: 问题ID
  498. param messageId: 消息Id
  499. param robotType: 机器人类型
  500. parma robotId: 机器人ID
  501. param successBlock: 成功回调
  502. param failBlock: 失败回调
  503. */
  504. + (void)sdkSubmitRobotFeedback:(BOOL)isUseful
  505. questionId:(NSString *)questionId
  506. messageId:(NSString *)messageId
  507. robotType:(NSString *)robotType
  508. robotId:(NSString *)robotId
  509. robotMsgId:(NSString *)robotMsgId
  510. successBlock:(void (^)(void))success
  511. failBlock:(void (^)(void))failure;
  512. /**
  513. 智能机器人评价
  514. param robotId: 机器人id
  515. param satisfaction: 评价选项
  516. param successBlock: 成功回调
  517. param failBlock: 失败回调
  518. */
  519. + (void)sdkSubmitIntelligentRobotSatisfaction:(NSString *)satisfaction
  520. satisfaction:(NSString *)satisfaction
  521. successBlock:(void (^)(void))success
  522. failBlock:(void (^)(void))failure;
  523. /**
  524. xbot机器人反馈
  525. param isUseful: 是否有帮助
  526. param messageId: 消息Id
  527. parma robotId: 机器人ID
  528. param oriquestion: 访客问题
  529. param question: 标准问题
  530. param answer: 答案
  531. param confidence: 置信度
  532. param successBlock: 成功回调
  533. param failBlock: 失败回调
  534. */
  535. + (void)sdkSubmitXbotRobotFeedback:(BOOL)isUseful
  536. message:(CustomMessage *)message
  537. successBlock:(void (^)(void))success
  538. failBlock:(void (^)(void))failure;
  539. /**
  540. xbot机器人评价
  541. param satisfaction: 评价选项
  542. param successBlock: 成功回调
  543. param failBlock: 失败回调
  544. */
  545. + (void)sdkSubmitXbotRobotSatisfaction:(NSString *)satisfaction
  546. successBlock:(void (^)(void))success
  547. failBlock:(void (^)(void))failure;
  548. /**
  549. xbot联想功能
  550. param text 联想文本
  551. param cateIds xbot机器人cateIds
  552. param robotId 机器人id
  553. param robotType 机器人类型
  554. param successBlock: 成功回调
  555. param failBlock: 失败回调
  556. */
  557. + (void)sdkSubmitXbotRobotAssociationInput:(NSString *)text
  558. cateIds:(NSArray *)cateIds
  559. robotId:(NSString *)robotId
  560. robotType:(NSString *)robotType
  561. successBlock:(void (^)(NSArray *))success
  562. failBlock:(void (^)(void))failure;
  563. /**
  564. 客服是否说话
  565. 目前用于满意度评价按钮
  566. param successBlock: 成功回调
  567. param failBlock: 失败回调
  568. */
  569. + (void)customerServiceIsSpeek:(void (^)(void))success
  570. failBlock:(void (^)(void))failure;
  571. /**
  572. 是否启用留言功能
  573. 全局配置:
  574. 启用留言功能,坐席不在线跳转到留言面板进行留言
  575. 未启用留言功能,坐席不在线,不会跳转至留言面板
  576. */
  577. + (BOOL)allowedLeaveMessage;
  578. /**
  579. 留言提示窗口信息
  580. 全局配置:
  581. 未启用留言状态下,弹出的提示内容
  582. */
  583. + (NSString *)leaveMessageAlert;
  584. /**
  585. 留言标题
  586. 全局配置:
  587. 启用留言状态下,展示留言板标题
  588. */
  589. + (NSString *)leaveMessageTitle;
  590. /**
  591. 留言内容占位
  592. 全局配置:
  593. 启用留言状态下,展示在留言板输入框的占位提醒
  594. */
  595. + (NSString *)leaveMessagePlaceholder;
  596. /**
  597. 留言自定义配置
  598. 全局配置:
  599. 后台留言板联系方式自定义字段
  600. */
  601. + (NSArray *)leaveMessageContactInformation;
  602. /**
  603. 是否启用用户无响应会话自动关闭功能
  604. 全局配置:
  605. 用户长时间未给坐席发送消息,自动关闭当前会话 并退出聊天界面,需要后台正确配置 提示和断开时间
  606. */
  607. + (BOOL)allowedBreakSession;
  608. /**
  609. 自动关闭会话提示语
  610. 全局配置:
  611. 后台配置的提示语,在断开前进行提示
  612. */
  613. + (NSString *)breakSessionAlert;
  614. /**
  615. 自动关闭会话时间
  616. 全局配置:
  617. 从开始新的会话、或用户发送一条消息开始计时
  618. */
  619. + (int)breakSessionDuration;
  620. /**
  621. 自动关闭会话提示时间
  622. 全局配置:
  623. 关闭会话前进行的提示的时间,从开始新的会话、或用户发送一条消息开始计时
  624. */
  625. + (int)breakSessionAlertDuration;
  626. /**
  627. 判断是否启用机器人
  628. */
  629. + (BOOL)allowRobot;
  630. /**
  631. 机器人的类型
  632. 此方法必须s是在启用机器人后使用
  633. 小七 7mbot
  634. 小陌 7mbot_ai
  635. xbot xbot
  636. 云秘 yunmi
  637. 智齿 sobot
  638. */
  639. + (NSString *)sdkRobotType;
  640. /**
  641. 转人工按钮是否显示
  642. */
  643. + (BOOL)manualButtonStatus;
  644. /**
  645. 与服务器连接状态
  646. @param connected 已连接
  647. @param connecting 连接中/重连中
  648. @param disconnect 断开连接
  649. */
  650. + (void)statusWithConneted:(void (^)(void))connected
  651. connecting:(void (^)(void))connecting
  652. dis:(void (^)(void))disconnect;
  653. /**
  654. 会话定时断开
  655. 调用此接口、可以再客户在一定时间没有新消息的时候断开会话
  656. param successBlock: 成功回调
  657. param failBlock: 回调失败
  658. */
  659. + (void)sdkChatTimerBreaking:(void (^)(NSDictionary *))success
  660. failBlock:(void (^)(void))failure;
  661. /**
  662. 排队数提示文案
  663. */
  664. + (NSArray *)sdkQueueMessage;
  665. /**
  666. 是否开启访客先说话才接入
  667. */
  668. + (BOOL)customerAccessAfterMessage;
  669. /**
  670. xbot底部推荐数据
  671. */
  672. + (NSArray *)xbotBottomList:(NSString *)type;
  673. /*
  674. 应用杀死时事件处理
  675. **/
  676. + (void)applicationWillTerminateHandle;
  677. /**
  678. 获取常见问题
  679. */
  680. + (void)sdkGetCommonQuestion:(void (^)(NSArray *))completion failure:(void(^)(NSString *))failure;
  681. /**
  682. 获取常见问题第二联
  683. */
  684. + (void)sdkGetSubCommonQuestionWithcid:(NSString *)cid completion:(void (^)(NSArray *))completion failure:(void(^)(NSString *))failure;
  685. + (void)sdkGetCommonDataWithParams:(NSDictionary *)params completion:(void (^)(id))completion failure:(void (^)(NSError *))failure;
  686. + (void)changeAllCardMessageHidden;
  687. + (void)changeCardMessageType:(QMMessageCardReadType)type messageId:(NSString *)messageId;
  688. /**
  689. 退出登录,取消推送
  690. */
  691. + (void)sdkLogoutAction:(void(^)(BOOL, NSString *))completion;
  692. + (CustomMessage *)createAndInsertMessageToDBWithMessageType: (NSString *)type filePath: (NSString *)filePath content: (NSString *)content metaData: (NSDictionary *)metaData;
  693. /**
  694. 定时断开会话消息提醒
  695. */
  696. + (void)sdkSendBreakTipMessage;
  697. /**
  698. 系统消息头像
  699. */
  700. + (NSString *)sdkSystemMessageIcon;
  701. /**
  702. 消费未读消息
  703. */
  704. + (void)sdkDealImMsg;
  705. @end