QMConnect.h 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005
  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. typedef enum : NSUInteger {
  17. QMServiceLineAliy = 0,
  18. QMServiceLineTencent,
  19. } QMServiceLine;
  20. @interface QMConnect : NSObject
  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. 重连 socket
  51. */
  52. + (void)reConnectSocket;
  53. /*
  54. 切换线路服务,需要咨询对接是否需要使用 默认Aliy
  55. **/
  56. + (void)switchServiceRoute:(QMServiceLine)line;
  57. /**
  58. 自建服务器设置网络地址:
  59. 是不是自建服务器的用户不需要设置此项
  60. param tcpHost: TCP连接地址
  61. param tcpPort: TCP端口号
  62. param httpPost: HTTP请求地址
  63. */
  64. + (void)setServerAddress:(NSString *)tcpHost
  65. tcpPort:(int)tcpPort
  66. httpPost:(NSString *)httpPost;
  67. /*
  68. 推送的token
  69. 每次启动应用都需要重新设置
  70. **/
  71. + (void)setServerToken:(NSData *)deviceToken;
  72. /*
  73. 更改七牛服务地址
  74. **/
  75. + (void)setFileServer:(NSString *)fileUrl withZone:(NSString *)zoneUrl;
  76. /**
  77. 发起新会话:
  78. 调用此接口、可以拥有与客服对话的能力
  79. param peer: 技能组ID,客服平台配置多个技能组时,需要传入对应的技能组ID,会话才能接入到对应的技能组,
  80. param successBlock: 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  81. param failBlock: 接入会话失败回调,
  82. */
  83. + (void)sdkBeginNewChatSession:(NSString *)peerId
  84. successBlock:(void (^)(BOOL, NSString *))success
  85. failBlock:(void (^)(NSString *))failure;
  86. /**
  87. 发起新会话:
  88. 调用此接口、可以拥有与客服对话的能力
  89. @param peerId 技能组ID,客服平台配置多个技能组时,需要传入对应的技能组ID,会话才能接入到对应的技能组,
  90. @param delegate 设置代理方法
  91. @param success 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  92. @param failure 接入会话失败回调
  93. */
  94. + (void)sdkBeginNewChatSession:(NSString *)peerId
  95. delegate:(id<QMKServiceDelegate>)delegate
  96. successBlock:(void (^)(BOOL, NSString *))success
  97. failBlock:(void (^)(void))failure;
  98. /**
  99. 发起新会话:
  100. 调用此接口、可以拥有与客服对话的能力
  101. param peer: 技能组ID,客服平台配置多个技能组时,需要传入对应的技能组ID,会话才能接入到对应的技能组,
  102. param params: @{@"agent":@"8000"} 专属坐席
  103. @{@"customField":@{@"姓名":@"李三"}} 自定义字段
  104. param successBlock: 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  105. param failBlock: 接入会话失败回调,
  106. */
  107. + (void)sdkBeginNewChatSession:(NSString *)peerId
  108. params:(NSDictionary *)params
  109. successBlock:(void (^)(BOOL, NSString *))success
  110. failBlock:(void (^)(NSString *))failure;
  111. /**
  112. 发起新会话:
  113. 调用此接口、可以拥有与客服对话的能力
  114. @param peerId 技能组ID,客服平台配置多个技能组时,需要传入对应的技能组ID,会话才能接入到对应的技能组,
  115. @param option 扩展信息配置 含VIP专属坐席 自定义字段
  116. @param success 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  117. @param failure 接入会话失败回调
  118. */
  119. + (void)sdkBeginNewChatSession:(NSString *)peerId
  120. option:(QMSessionOption *)option
  121. successBlock:(void (^)(BOOL, NSString *))success
  122. failBlock:(void (^)(NSString *))failure;
  123. /**
  124. 发起新会话:
  125. 启用日程管理的用此接口
  126. 调用此接口、可以拥有与客服对话的能力、携带参数
  127. param schedule: 日程id
  128. param processId: 流程id
  129. param currentNodeId: 入口节点中访客选择的流转节点ID
  130. param entranceId: 入口节点中的id
  131. param params: @{@"agent":@"8000"} 专属坐席
  132. @{@"customField":@{@"姓名":@"李三"}} 自定义字段
  133. param successBlock: 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  134. param failBlock: 接入会话失败回调,
  135. */
  136. + (void)sdkBeginNewChatSessionSchedule:(NSString *)scheduleId
  137. processId:(NSString *)processId
  138. currentNodeId:(NSString *)currentNodeId
  139. entranceId:(NSString *)entranceId
  140. params:(NSDictionary *)params
  141. successBlock:(void (^)(BOOL, NSString *))success
  142. failBlock:(void (^)(NSString *))failure;
  143. /**
  144. 发起新会话:
  145. 启用日程管理vip坐席失败之后用此接口
  146. 调用此接口、可以拥有与客服对话的能力、携带参数
  147. param schedule: 日程id
  148. param processId: 流程id
  149. param currentNodeId: 入口节点中访客选择的流转节点ID
  150. param entranceId: 入口节点中的id
  151. param successBlock: 接入会话成功回调,回调参数为bool类型,判断后台是否开启问卷调查功能
  152. param failBlock: 接入会话失败回调,
  153. */
  154. + (void)sdkBeginNewChatSessionSchedule:(NSString *)scheduleId
  155. processId:(NSString *)processId
  156. currentNodeId:(NSString *)currentNodeId
  157. entranceId:(NSString *)entranceId
  158. successBlock:(void (^)(BOOL, NSString *))success
  159. failBlock:(void (^)(NSString *))failure;
  160. /**
  161. 获取渠道全局配置中 globalSet
  162. 调用此接口获取后台的全局配置信息,注册成功会主动请求一次插入本地plist文件,用户也可以自行调用获取
  163. param successBlock: 成功回调
  164. param failBlock: 回调失败
  165. */
  166. + (void)sdkGetWebchatGlobleConfig:(void (^)(NSDictionary *))success
  167. failBlock:(void (^)(void))failure;
  168. /**
  169. 获取渠道全局配置中的 scheduleConfig
  170. 调用此接口获取全局配置中的 scheduleConfig 此接口主要用于开启日程管理需要
  171. param configs: 配置信息
  172. param successBlock: 成功回调
  173. param failBlock: 回调失败
  174. */
  175. + (void)sdkGetWebchatScheduleConfig:(void (^)(NSDictionary *))success
  176. failBlock:(void (^)(void))failure;
  177. /**
  178. 发送文本消息:
  179. 调用此接口、可以发送文本消息,包括文字、表情
  180. param text: 文本消息内容
  181. param successBlock: 成功回调
  182. param failBlock: 失败回调
  183. */
  184. + (void)sendMsgText:(NSString *)text
  185. successBlock:(void (^)(void))success
  186. failBlock:(void (^)(NSString *))failure;
  187. /**
  188. 发送图片消息:
  189. 调用此接口、可以发送图片消息
  190. param pic: 图片消息内容
  191. param successBlock: 成功回调
  192. param failBlock: 失败回调
  193. */
  194. + (void)sendMsgPic:(UIImage *)image
  195. successBlock:(void (^)(void))success
  196. failBlock:(void (^)(NSString *))failure;
  197. /**
  198. 发送图片消息:
  199. 调用此接口、可以发送图片消息
  200. param filePath: 图片文件相对路径
  201. param successBlock: 成功回调
  202. param failBlock: 失败回调
  203. */
  204. + (void)sendMsgImage:(NSString *)filePath
  205. successBlock:(void (^)(void))success
  206. failBlock:(void (^)(NSString *))failure;
  207. /**
  208. 发送语音消息:
  209. 调用此接口、可以发送语音消息
  210. param audio: 语音消息路径 语音名字需要带mp3后缀
  211. param duration: 语音消息时长
  212. param successBlock: 成功回调
  213. param failBlock: 失败回调
  214. */
  215. + (void)sendMsgAudio:(NSString *)audio
  216. duration:(NSString *)duartion
  217. successBlock:(void (^)(void))success
  218. failBlock:(void (^)(NSString *))failure;
  219. /**
  220. 语音转文本接口:
  221. param message: 消息model
  222. */
  223. + (void)sendMsgAudioToText:(CustomMessage *)message
  224. successBlock:(void (^)(void))success
  225. failBlock:(void (^)(void))failure;
  226. /**
  227. 发送文件消息:
  228. 调用此接口、可以发送文件消息
  229. param fileName: 文件名称
  230. param filePath: 沙盒文件相对路径
  231. param fileSize: 文件大小
  232. param progress: 上传进度回调
  233. param successBlock: 成功回调
  234. param failBlock: 失败回调
  235. */
  236. + (void)sendMsgFile:(NSString *)fileName
  237. filePath:(NSString *)filePath
  238. fileSize:(NSString *)fileSize
  239. progressHander:(void (^)(float))progress
  240. successBlock:(void (^)(void))success
  241. failBlock:(void (^)(NSString *))failure;
  242. /**
  243. 发送商品信息消息:
  244. 调用此接口、可以发送商品信息消息
  245. param message: 消息字典
  246. param successBlock: 成功回调
  247. param failBlock: 失败回调
  248. */
  249. + (void)sendMsgCardInfo:(NSDictionary *)message
  250. successBlock:(void (^)(void))success
  251. failBlock:(void (^)(NSString *))failure;
  252. /**
  253. 下载消息中的文件:
  254. param message: 消息实例
  255. param localFilePath: 沙盒文件相对路径
  256. param progress: 下载进度回调
  257. param successBlock: 成功回调
  258. param failBlock: 失败回调
  259. */
  260. + (void)downloadFileWithMessage:(CustomMessage *)message
  261. localFilePath:(NSString *)filePath
  262. progressHander:(void (^)(float))progress
  263. successBlock:(void (^)(void))success
  264. failBlock:(void (^)(NSString *))failure;
  265. /**
  266. 消息重发:
  267. 调用此接口、将未发送的消息重新发送
  268. @param message 消息内容
  269. @param success 成功回调
  270. @param failure 失败回调
  271. */
  272. + (void)resendMessage:(CustomMessage *)message
  273. successBlock:(void (^)(void))success
  274. failBlock:(void (^)(NSString *))failure;
  275. /**
  276. 封装消息模型:
  277. 目前只支持新增的评价类型消息(不支持文本、语音、图片等)
  278. */
  279. + (CustomMessage *)createMessageOfInvestigations;
  280. /**
  281. 获取数据库信息:
  282. 调用此接口、获取数据库信息
  283. param num : 单次获取消息数目(无默认值)
  284. param [CustomMessage]: 返回消息数组
  285. */
  286. + (NSArray<CustomMessage *> *)getDataFromDatabase:(int)number;
  287. /**
  288. 获取数据库接口、相同的accessId的数据库中的全部消息
  289. 调用此接口、获取数据库下同一个accessid下的全部信息
  290. param num : 单次获取消息数目(无默认值)
  291. param [CustomMessage]: 返回消息数组
  292. */
  293. + (NSArray<CustomMessage *> *)getAccessidAllDataFormDatabase:(int)number;
  294. /**
  295. 获取数据库接口、相同的userId的数据库中的全部消息
  296. 调用此接口、获取数据库下同一个userId下的全部信息
  297. param num : 单次获取消息数目(无默认值)
  298. param [CustomMessage]: 返回消息数组
  299. */
  300. + (NSArray<CustomMessage *> *)getUserIdDataFormDatabase:(int)number;
  301. /**
  302. 获取单条数据库信息:
  303. 调用此接口、获取数据库一条记录、用于消息重发
  304. param messageId: 消息ID
  305. param [CustomMessage]: 返回消息数组
  306. */
  307. + (NSArray<CustomMessage *> *)getOneDataFromDatabase:(NSString *)messageId;
  308. /**
  309. 删除单条数据库信息:
  310. 用此接口、删除数据路一条记录、只能删除本地消息
  311. param message: 消息
  312. */
  313. + (void)removeDataFromDataBase:(NSString *)messageId;
  314. /**
  315. 修改语音状态接口:
  316. 将语音由未读取状态变为已读取状态
  317. param messageId: 消息ID
  318. */
  319. + (void)changeAudioMessageStatus:(NSString *)messageId;
  320. /**
  321. 撤回消息接口:
  322. 将发送的消息撤回,该接口只用于客服撤回消息
  323. param messageId: 消息ID
  324. */
  325. + (void)changeDrawMessageStatus:(NSString *)messageId;
  326. /**
  327. 查询Mp3消息:
  328. 查询MP3类型文件的消息的大小
  329. param messageId: 消息ID
  330. */
  331. + (NSString *)queryMp3FileMessageSize:(NSString *)messageId;
  332. /**
  333. 修改Mp3消息:
  334. 修改MP3类型文件的消息的大小
  335. param messageId: 消息ID
  336. param fileSize: 文件大小
  337. */
  338. + (void)changeMp3FileMessageSize:(NSString *)messageId
  339. fileSize:(NSString *)fileSize;
  340. /**
  341. 插入商品信息展示数据
  342. param message: 消息字典
  343. */
  344. + (void)insertCardInfoData:(NSDictionary *)message type:(NSString *)type;
  345. /**!
  346. 提示: Use the (insertCardInfoData: type:) instead
  347. */
  348. + (void)insertCardInfoData:(NSDictionary *)message __attribute__((deprecated));
  349. /*
  350. 删除商品信息展示消息
  351. */
  352. + (void)deleteCardTypeMessage;
  353. + (void)deleteCardTypeMessage:(NSString *)type;
  354. /**
  355. 变更商品信息展示消息时间
  356. param time: 消息时间
  357. */
  358. + (void)changeCardTypeMessageTime:(NSString *)time;
  359. /**
  360. 语音转文本是否显示
  361. param status: 是否显示 @”0“不显示 @”1“显示
  362. param messageId: 消息id (messageId传@”all“时是隐藏所有已经转的语音----用于退出聊天页面再次进入的时候)
  363. */
  364. + (void)changeVoiceTextShowoOrNot:(NSString *)status message:(NSString *)messageId;
  365. /**
  366. 查询语音转文字的状态
  367. 0不展示 1展示 2正在翻译中…
  368. @param messageId 消息id
  369. */
  370. + (NSString *)queryVoiceTextStatusWithmessageId:(NSString *)messageId;
  371. /**
  372. 插入自定义类型消息 --- 目前只支持插入未定义的消息类型,已定义的消息类型不支持回显
  373. 该方法只插入本地消息,只用于自定义消息回显,不会发送给后端和坐席
  374. */
  375. + (void)insertOtherInfoData:(NSDictionary *)mateData type:(NSString *)type;
  376. /**
  377. 插入留言内容,用于会话页面展示
  378. */
  379. + (void)insertLeaveMsg:(NSString *)message;
  380. /**
  381. 请求人工服务:
  382. 调用此接口、请求人工服务(如后台开启智能机器人功能、默认为机器人服务器)
  383. param successBlock: 成功回调
  384. param failBlock: 失败回调
  385. */
  386. + (void)sdkConvertManual:(void (^)(void))success
  387. failBlock:(void (^)(void))failure;
  388. /**
  389. 请求人工服务:带技能组id
  390. 用于机器人问答自动调用转人工服务
  391. param peerId: 技能组id
  392. param successBlock: 成功回调
  393. param failBlock: 失败回调
  394. */
  395. + (void)sdkConvertManualWithPeerId:(NSString *)peerId
  396. successBlock:(void (^)(void))success
  397. failBlock:(void (^)(void))failure;
  398. /**
  399. 其他坐席服务授权
  400. 专属坐席未在线的情况下,是否接受其他坐席的服务
  401. param peer: 技能组ID, 详见beginSession接口
  402. param successBlock: 成功回调
  403. param failBlock: 失败回调
  404. */
  405. + (void)sdkAcceptOtherAgentWithPeer:(NSString *)peer
  406. successBlock:(void (^)(void))success
  407. failBlock:(void (^)(void))failure;
  408. /**
  409. 获取满意度评价信息:
  410. 用于满意度调查
  411. param investigateArray: 评价信息
  412. param successBlock: 成功回调
  413. param failureBlock : 失败回调
  414. */
  415. + (void)sdkGetInvestigate:(void (^)(NSArray<NSDictionary *> *))success
  416. failureBlock:(void (^)(void))failure;
  417. /**
  418. 获取满意度评价信息:
  419. 用于满意度调查 自定义标题和感谢语
  420. param investigateArray: 评价信息
  421. param successBlock: 成功回调
  422. param failureBlock : 失败回调
  423. */
  424. + (void)newSDKGetInvestigate:(void (^)(QMEvaluation *))success
  425. failureBlock:(void (^)(void))failure;
  426. /**
  427. 取消满意度评价:
  428. 获取服务器timestamp时间戳
  429. param successBlock: 成功回调
  430. param failureBlock : 失败回调
  431. */
  432. + (void)sdkGetServerTime:(void (^)(NSString *))success
  433. failureBlock:(void (^)(void))failure;
  434. /**
  435. 查询满意度评价是否超时:
  436. params 参数
  437. param successBlock: 成功回调
  438. param failureBlock : 失败回调
  439. */
  440. + (void)sdkCheckImCsrTimeoutParams:(NSDictionary *)params
  441. success:(void (^)(void))success
  442. failureBlock:(void (^)(void))failure;
  443. /**
  444. 获取技能组信息:
  445. 开始会话前选择技能组进入
  446. param investigateArray: 评价信息
  447. param successBlock: 成功回调
  448. param failureBlock: 失败回调
  449. */
  450. + (void)sdkGetPeers:(void (^)(NSArray<NSDictionary *> *))success
  451. failureBlock:(void (^)(void))failure;
  452. /**
  453. 获取未读消息数接口
  454. param accessId: 接入客服系统的密钥, 可在客服系统登录平台获取
  455. param userName: 用户名, 区分用户, 用户名可直接在后台显示
  456. param userId: 用户ID, 区分用户
  457. param successBlock: 成功回调
  458. param failureBlock : 失败回调
  459. */
  460. + (void)sdkGetUnReadMessage:(NSString *)accessId
  461. userName:(NSString *)userName
  462. userId:(NSString *)userId
  463. successBlock:(void (^)(NSInteger))success
  464. failBlock:(void (^)(void))failure;
  465. /**
  466. 提交满意度调查信息
  467. param name: 评价信息
  468. param value: 评价信息ID
  469. param successBlock: 成功回调
  470. param failBlock: 失败回调
  471. */
  472. + (void)sdkSubmitInvestigate:(NSString *)name
  473. value:(NSString *)value
  474. successBlock:(void (^)(void))success
  475. failBlock:(void (^)(void))failure;
  476. /**
  477. 提交满意度评价 包含二级n标题和备注
  478. param name: 评价信息
  479. param value: 评价信息ID
  480. param successBlock: 成功回调
  481. param failBlock: 失败回调
  482. */
  483. + (void)sdkNewSubmitInvestigate:(NSString *)name
  484. value:(NSString *)value
  485. radioValue:(NSArray *)radioValue
  486. remark:(NSString *)remark
  487. way:(NSString *)way
  488. operation:(NSString *)operation
  489. sessionId:(NSString *)sessionId
  490. successBlock:(void (^)(void))success
  491. failBlock:(void (^)(void))failure;
  492. /**
  493. 留言接口
  494. 客服离线状态下,未配置机器人客服或转人工客服时,可进行留言操作
  495. param peer: 技能组
  496. param phone: 联系电话
  497. param Email: 联系邮箱
  498. param message: 留言内容
  499. param successBlock: 成功回调
  500. param failBlock: 失败回调
  501. */
  502. + (void)sdkSubmitLeaveMessage:(NSString *)peer
  503. phone:(NSString *)phone
  504. Email:(NSString *)email
  505. message:(NSString *)message
  506. successBlock:(void (^)(void))success
  507. failBlock:(void (^)(void))failure;
  508. /**
  509. 留言接口
  510. 客服离线状态下,未配置机器人客服或转人工客服时,可进行留言操作
  511. param peer: 技能组
  512. param information: 联系信息
  513. param leavesgFields: 自定义联系字段
  514. param message: 留言内容
  515. param successBlock: 成功回调
  516. param failBlock: 失败回调
  517. */
  518. + (void)sdkSubmitLeaveMessageWithInformation:(NSString *)peer
  519. information:(NSDictionary *)information
  520. leavemsgFields:(NSArray<NSDictionary*> *)leavemsgFields
  521. message:(NSString *)message
  522. successBlock:(void (^)(void))success
  523. failBlock:(void (^)(void))failure;
  524. /**
  525. 机器人反馈
  526. param isUseful: 是否有帮助
  527. param questionId: 问题ID
  528. param messageId: 消息Id
  529. param robotType: 机器人类型
  530. parma robotId: 机器人ID
  531. param successBlock: 成功回调
  532. param failBlock: 失败回调
  533. */
  534. + (void)sdkSubmitRobotFeedback:(BOOL)isUseful
  535. questionId:(NSString *)questionId
  536. messageId:(NSString *)messageId
  537. robotType:(NSString *)robotType
  538. robotId:(NSString *)robotId
  539. robotMsgId:(NSString *)robotMsgId
  540. successBlock:(void (^)(void))success
  541. failBlock:(void (^)(void))failure;
  542. /**
  543. 智能机器人评价
  544. param robotId: 机器人id
  545. param satisfaction: 评价选项
  546. param successBlock: 成功回调
  547. param failBlock: 失败回调
  548. */
  549. + (void)sdkSubmitIntelligentRobotSatisfaction:(NSString *)satisfaction
  550. satisfaction:(NSString *)satisfaction
  551. successBlock:(void (^)(void))success
  552. failBlock:(void (^)(void))failure;
  553. /**
  554. xbot机器人反馈
  555. param isUseful: 是否有帮助
  556. param messageId: 消息Id
  557. parma robotId: 机器人ID
  558. param oriquestion: 访客问题
  559. param question: 标准问题
  560. param answer: 答案
  561. param confidence: 置信度
  562. param successBlock: 成功回调
  563. param failBlock: 失败回调
  564. */
  565. + (void)sdkSubmitXbotRobotFeedback:(BOOL)isUseful
  566. message:(CustomMessage *)message
  567. successBlock:(void (^)(void))success
  568. failBlock:(void (^)(void))failure;
  569. /**
  570. xbot机器人评价
  571. param satisfaction: 评价选项
  572. param successBlock: 成功回调
  573. param failBlock: 失败回调
  574. */
  575. + (void)sdkSubmitXbotRobotSatisfaction:(NSString *)satisfaction
  576. successBlock:(void (^)(void))success
  577. failBlock:(void (^)(void))failure;
  578. /**
  579. xbot联想功能
  580. param text 联想文本
  581. param cateIds xbot机器人cateIds
  582. param robotId 机器人id
  583. param robotType 机器人类型
  584. param successBlock: 成功回调
  585. param failBlock: 失败回调
  586. */
  587. + (void)sdkSubmitXbotRobotAssociationInput:(NSString *)text
  588. cateIds:(NSArray *)cateIds
  589. robotId:(NSString *)robotId
  590. robotType:(NSString *)robotType
  591. successBlock:(void (^)(NSArray *))success
  592. failBlock:(void (^)(void))failure;
  593. /**
  594. 客服是否说话
  595. 目前用于满意度评价按钮
  596. param successBlock: 成功回调
  597. param failBlock: 失败回调
  598. */
  599. + (void)customerServiceIsSpeek:(void (^)(void))success
  600. failBlock:(void (^)(void))failure;
  601. /**
  602. 是否启用留言功能
  603. 全局配置:
  604. 启用留言功能,坐席不在线跳转到留言面板进行留言
  605. 未启用留言功能,坐席不在线,不会跳转至留言面板
  606. */
  607. + (BOOL)allowedLeaveMessage;
  608. /**
  609. 留言提示窗口信息
  610. 全局配置:
  611. 未启用留言状态下,弹出的提示内容
  612. */
  613. + (NSString *)leaveMessageAlert;
  614. /**
  615. 留言标题
  616. 全局配置:
  617. 启用留言状态下,展示留言板标题
  618. */
  619. + (NSString *)leaveMessageTitle;
  620. /**
  621. 留言内容占位
  622. 全局配置:
  623. 启用留言状态下,展示在留言板输入框的占位提醒
  624. */
  625. + (NSString *)leaveMessagePlaceholder;
  626. /**
  627. 留言自定义配置
  628. 全局配置:
  629. 后台留言板联系方式自定义字段
  630. */
  631. + (NSArray *)leaveMessageContactInformation;
  632. /**
  633. 是否启用用户无响应会话自动关闭功能
  634. 全局配置:
  635. 用户长时间未给坐席发送消息,自动关闭当前会话 并退出聊天界面,需要后台正确配置 提示和断开时间
  636. */
  637. + (BOOL)allowedBreakSession;
  638. /**
  639. 自动关闭会话提示语
  640. 全局配置:
  641. 后台配置的提示语,在断开前进行提示
  642. */
  643. + (NSString *)breakSessionAlert;
  644. /**
  645. 自动关闭会话时间
  646. 全局配置:
  647. 从开始新的会话、或用户发送一条消息开始计时
  648. */
  649. + (int)breakSessionDuration;
  650. /**
  651. 自动关闭会话提示时间
  652. 全局配置:
  653. 关闭会话前进行的提示的时间,从开始新的会话、或用户发送一条消息开始计时
  654. */
  655. + (int)breakSessionAlertDuration;
  656. /**
  657. 判断是否启用机器人
  658. */
  659. + (BOOL)allowRobot;
  660. /**
  661. 机器人的类型
  662. 此方法必须是在启用机器人后使用
  663. 小七 7mbot
  664. 小陌 7mbot_ai
  665. xbot xbot
  666. 云秘 yunmi
  667. 智齿 sobot
  668. */
  669. + (NSString *)sdkRobotType;
  670. /**
  671. 转人工按钮是否显示
  672. */
  673. + (BOOL)manualButtonStatus;
  674. /**
  675. 排队数提示文案
  676. */
  677. + (NSArray *)sdkQueueMessage;
  678. /**
  679. 是否开启访客先说话才接入
  680. */
  681. + (BOOL)customerAccessAfterMessage;
  682. /**
  683. xbot底部推荐数据
  684. */
  685. + (NSArray *)xbotBottomList:(NSString *)type;
  686. /*
  687. 应用杀死时事件处理
  688. **/
  689. + (void)applicationWillTerminateHandle;
  690. /**
  691. 获取常见问题
  692. */
  693. + (void)sdkGetCommonQuestion:(void (^)(NSArray *))completion failure:(void(^)(NSString *))failure;
  694. /**
  695. 获取常见问题第二联
  696. */
  697. + (void)sdkGetSubCommonQuestionWithcid:(NSString *)cid completion:(void (^)(NSArray *))completion failure:(void(^)(NSString *))failure;
  698. + (void)sdkGetCommonDataWithParams:(NSDictionary *)params completion:(void (^)(id))completion failure:(void (^)(NSError *))failure;
  699. + (void)changeAllCardMessageHidden;
  700. + (void)changeCardMessageType:(QMMessageCardReadType)type messageId:(NSString *)messageId;
  701. /**
  702. 退出登录,取消推送
  703. */
  704. + (void)sdkLogoutAction:(void(^)(BOOL, NSString *))completion;
  705. + (CustomMessage *)createAndInsertMessageToDBWithMessageType: (NSString *)type filePath: (NSString *)filePath content: (NSString *)content metaData: (NSDictionary *)metaData;
  706. /**
  707. 定时断开会话消息提醒
  708. */
  709. + (void)sdkSendBreakTipMessage;
  710. /**
  711. 系统消息头像
  712. */
  713. + (NSString *)sdkSystemMessageIcon;
  714. /**
  715. 消费未读消息
  716. */
  717. + (void)sdkDealImMsgWithMessageID:(NSArray *)messageID;
  718. /**
  719. 自定义对方撤回消息的文案
  720. 默认文案:对方撤回一条消息
  721. 可用于国际化适配和自定义文案
  722. */
  723. + (void)WithdrawMessageText:(NSString *)text;
  724. /**
  725. 是否开启已读未读
  726. */
  727. + (BOOL)sdkWhetherToOpenReadAndUnread;
  728. /**
  729. 查询坐席的未消费的消息
  730. */
  731. + (NSArray *) sdkGetAgentMessageWithIsRead;
  732. /**
  733. 满意度评价消息 只写入本地数据库
  734. param text: 标题&评价内容
  735. param ID: 满意度id 即会话id
  736. param status: 满意度状态 0--未评价 1--已评价 2--评价内容
  737. */
  738. //+ (void)sdkSendEvaluateMessage:(NSString *)text
  739. // withID:(NSString *)ID
  740. // withStatus:(NSString *)status
  741. // withTimestamp:(NSString *)timestamp;
  742. + (void)sdkSendEvaluateMessage:(NSDictionary *)dic;
  743. /**
  744. 通过evaluateId更改满意度评价状态
  745. */
  746. + (void)sdkUpdateEvaluateStatusWithEvaluateId:(NSString *)evaluateId;
  747. /**
  748. 定时关闭会话时间到期后调用该接口
  749. */
  750. + (void)sdkClientChatClose:(NSString *)chatID;
  751. /*
  752. 修改常见问题index
  753. **/
  754. + (void)sdkChangeCommonProblemIndex:(NSString *)index withMessageID:(NSString *)messageId;
  755. /*
  756. 修改robotFlowList
  757. **/
  758. + (void)sdkUpdateRobotFlowList:(NSString *)flowList withMessageID:(NSString *)messageId;
  759. /*
  760. 修改robotFlowSend
  761. **/
  762. + (void)sdkUpdateRobotFlowSend:(NSString *)flowSend withMessageID:(NSString *)messageId;
  763. /*
  764. 用于机器人表单消息上传附件
  765. fileDic 附件消息体 必须包含fileName、fileSize、filePath
  766. progress 上传进度
  767. success 上传成功返回链接
  768. failBlock 上传失败
  769. **/
  770. + (void)sdkSendFile:(NSDictionary *)fileDic progress:(void (^)(float))progress success:(void (^)(NSString *))success failBlock:(void (^)(NSString *))failure;
  771. /*
  772. 提交表单消息
  773. **/
  774. + (void)sdkSubmitFormMessage:(NSDictionary *)dic;
  775. /*
  776. 更改表单消息
  777. 0 消息第一次插入数据库 用于弹出消息
  778. 1 已存在 不需要弹出
  779. 2 已提交 不能点击弹出
  780. **/
  781. + (void)sdkUpdateFormStatus:(NSString *)status withMessageID:(NSString *)messageId;
  782. /*
  783. 获取 SDK 版本号
  784. **/
  785. + (NSString *)QMSDKVersion;
  786. /*
  787. 用户输入监听
  788. **/
  789. + (void)sdkInputMonitor:(NSString *)content successBlock:(void (^)(void))success failBlock:(void (^)(void))failure;
  790. /**
  791. 是否进行输入监听
  792. */
  793. + (BOOL)sdkGetIsInputMonitor;
  794. #pragma mark - 视频接口
  795. /**
  796. 是否开启视频权限 yes为开启
  797. */
  798. + (BOOL)sdkVideoRights;
  799. /**
  800. 接受视频
  801. */
  802. + (void)sdkAcceptVideo:(void (^)(void))success failBlock:(void (^)(void))failure;
  803. /**
  804. 拒绝视频
  805. */
  806. + (void)sdkRefuseVideo:(void (^)(void))success failBlock:(void (^)(void))failure;
  807. /**
  808. 取消视频
  809. */
  810. + (void)sdkCannelVideo:(void (^)(void))success failBlock:(void (^)(void))failure;
  811. /**挂断*/
  812. + (void)sdkHangupVideo:(NSString *)originator successBlock:(void (^)(void))success failBlock:(void (^)(void))failure;
  813. + (void)sdkGetVideo:(NSString *)type Completion:(void (^)(id))completion failure:(void (^)(NSError *))failure;
  814. /**
  815. 消息文件下载
  816. */
  817. + (void)downloadFileWithUrl:(NSString *)url
  818. successBlock:(void (^)(void))success
  819. failBlock:(void (^)(NSString *))failure;
  820. + (NSString *)getBaseUrl;
  821. + (NSString *)getAccessid;
  822. @end