TIMGroupManager+Ext.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. //
  2. // TIMGroupManager+Ext.h
  3. // IMGroupExt
  4. //
  5. // Created by tomzhu on 2017/2/9.
  6. //
  7. //
  8. #ifndef TIMGroupManager_Ext_h
  9. #define TIMGroupManager_Ext_h
  10. #import <ImSDK/ImSDK.h>
  11. #import "TIMComm+Group.h"
  12. @interface TIMGroupManager (Ext)
  13. /**
  14. * 创建私有群
  15. *
  16. * @param members 群成员,NSString* 数组
  17. * @param groupName 群名
  18. * @param succ 成功回调
  19. * @param fail 失败回调
  20. *
  21. * @return 0 成功
  22. */
  23. - (int)createPrivateGroup:(NSArray*)members groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;
  24. /**
  25. * 创建公开群
  26. *
  27. * @param members 群成员,NSString* 数组
  28. * @param groupName 群名
  29. * @param succ 成功回调
  30. * @param fail 失败回调
  31. *
  32. * @return 0 成功
  33. */
  34. - (int)createPublicGroup:(NSArray*)members groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;
  35. /**
  36. * 创建聊天室
  37. *
  38. * @param members 群成员,NSString* 数组
  39. * @param groupName 群名
  40. * @param succ 成功回调
  41. * @param fail 失败回调
  42. *
  43. * @return 0 成功
  44. */
  45. - (int)createChatRoomGroup:(NSArray*)members groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;
  46. /**
  47. * 创建音视频聊天室(可支持超大群,详情可参考wiki文档)
  48. *
  49. * @param groupName 群名
  50. * @param succ 成功回调
  51. * @param fail 失败回调
  52. *
  53. * @return 0 成功
  54. */
  55. - (int)createAVChatRoomGroup:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;
  56. /**
  57. * 创建群组
  58. *
  59. * @param groupInfo 群组信息
  60. * @param succ 成功回调
  61. * @param fail 失败回调
  62. *
  63. * @return 0 成功
  64. */
  65. - (int)createGroup:(TIMCreateGroupInfo*)groupInfo succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;
  66. /**
  67. * 邀请好友入群
  68. *
  69. * @param group 群组Id
  70. * @param members 要加入的成员列表(NSString* 类型数组)
  71. * @param succ 成功回调
  72. * @param fail 失败回调
  73. *
  74. * @return 0 成功
  75. */
  76. - (int)inviteGroupMember:(NSString*)group members:(NSArray*)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;
  77. /**
  78. * 删除群成员
  79. *
  80. * @param group 群组Id
  81. * @param reason 删除原因
  82. * @param members 要删除的成员列表
  83. * @param succ 成功回调
  84. * @param fail 失败回调
  85. *
  86. * @return 0 成功
  87. */
  88. - (int)deleteGroupMemberWithReason:(NSString*)group reason:(NSString*)reason members:(NSArray*)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;
  89. /**
  90. * 获取群公开信息
  91. * @param groups 群组Id
  92. * @param succ 成功回调
  93. * @param fail 失败回调
  94. *
  95. * @return 0 成功
  96. */
  97. - (int)getGroupPublicInfo:(NSArray*)groups succ:(TIMGroupListSucc)succ fail:(TIMFail)fail;
  98. /**
  99. * 获取群列表
  100. *
  101. * @param succ 成功回调,NSArray列表为 TIMGroupInfo,结构体只包含 group\groupName\groupType\faceUrl\selfInfo 信息
  102. * @param fail 失败回调
  103. *
  104. * @return 0 成功
  105. */
  106. - (int)getGroupList:(TIMGroupListSucc)succ fail:(TIMFail)fail;
  107. /**
  108. * 获取群信息
  109. *
  110. * @param succ 成功回调,不包含 selfInfo信息
  111. * @param fail 失败回调
  112. *
  113. * @return 0 成功
  114. */
  115. - (int)getGroupInfo:(NSArray*)groups succ:(TIMGroupListSucc)succ fail:(TIMFail)fail;
  116. /**
  117. * 获取本人在群组内的成员信息
  118. *
  119. * @param group 群组Id
  120. * @param succ 成功回调,返回信息
  121. * @param fail 失败回调
  122. *
  123. * @return 0 成功
  124. */
  125. - (int)getGroupSelfInfo:(NSString*)group succ:(TIMGroupSelfSucc)succ fail:(TIMFail)fail;
  126. /**
  127. * 获取接受消息选项
  128. *
  129. * @param group 群组Id
  130. * @param succ 成功回调
  131. * @param fail 失败回调
  132. *
  133. * @return 0 成功
  134. */
  135. - (int)getReciveMessageOpt:(NSString*)group succ:(TIMGroupReciveMessageOptSucc)succ fail:(TIMFail)fail;
  136. /**
  137. * 获取群成员列表
  138. *
  139. * @param group 群组Id
  140. * @param succ 成功回调(TIMGroupMemberInfo列表)
  141. * @param fail 失败回调
  142. *
  143. * @return 0 成功
  144. */
  145. - (int)getGroupMembers:(NSString*)group succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;
  146. /**
  147. * 获取群组指定成员的信息
  148. *
  149. * @param group 群组Id
  150. * @param members 成员Id(NSString*)列表
  151. * @param succ 成功回调(TIMGroupMemberInfo列表)
  152. * @param fail 失败回调
  153. *
  154. * @return 0 成功
  155. */
  156. - (int)getGroupMembersInfo:(NSString*)group members:(NSArray*)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;
  157. /**
  158. * 获取指定类型的成员列表(支持按字段拉取,分页)
  159. *
  160. * @param group 群组Id:(NSString*) 列表
  161. * @param filter 群成员角色过滤方式
  162. * @param flags 拉取资料标志
  163. * @param custom 要获取的自定义key(NSString*)列表
  164. * @param nextSeq 分页拉取标志,第一次拉取填0,回调成功如果不为零,需要分页,传入再次拉取,直至为0
  165. * @param succ 成功回调
  166. * @param fail 失败回调
  167. */
  168. - (int)getGroupMembers:(NSString*)group ByFilter:(TIMGroupMemberFilter)filter flags:(TIMGetGroupMemInfoFlag)flags custom:(NSArray*)custom nextSeq:(uint64_t)nextSeq succ:(TIMGroupMemberSuccV2)succ fail:(TIMFail)fail;
  169. /**
  170. * 修改群名
  171. *
  172. * @param group 群组Id
  173. * @param groupName 新群名
  174. * @param succ 成功回调
  175. * @param fail 失败回调
  176. *
  177. * @return 0 成功
  178. */
  179. - (int)modifyGroupName:(NSString*)group groupName:(NSString*)groupName succ:(TIMSucc)succ fail:(TIMFail)fail;
  180. /**
  181. * 修改群简介
  182. *
  183. * @param group 群组Id
  184. * @param introduction 群简介(最长120字节)
  185. * @param succ 成功回调
  186. * @param fail 失败回调
  187. *
  188. * @return 0 成功
  189. */
  190. - (int)modifyGroupIntroduction:(NSString*)group introduction:(NSString*)introduction succ:(TIMSucc)succ fail:(TIMFail)fail;
  191. /**
  192. * 修改群公告
  193. *
  194. * @param group 群组Id
  195. * @param notification 群公告(最长150字节)
  196. * @param succ 成功回调
  197. * @param fail 失败回调
  198. *
  199. * @return 0 成功
  200. */
  201. - (int)modifyGroupNotification:(NSString*)group notification:(NSString*)notification succ:(TIMSucc)succ fail:(TIMFail)fail;
  202. /**
  203. * 修改群头像
  204. *
  205. * @param group 群组Id
  206. * @param url 群头像地址(最长100字节)
  207. * @param succ 成功回调
  208. * @param fail 失败回调
  209. *
  210. * @return 0 成功
  211. */
  212. - (int)modifyGroupFaceUrl:(NSString*)group url:(NSString*)url succ:(TIMSucc)succ fail:(TIMFail)fail;
  213. /**
  214. * 修改加群选项
  215. *
  216. * @param group 群组Id
  217. * @param opt 加群选项,详见 TIMGroupAddOpt
  218. * @param succ 成功回调
  219. * @param fail 失败回调
  220. *
  221. * @return 0 成功
  222. */
  223. - (int)modifyGroupAddOpt:(NSString*)group opt:(TIMGroupAddOpt)opt succ:(TIMSucc)succ fail:(TIMFail)fail;
  224. /**
  225. * 修改群自定义字段集合
  226. *
  227. * @param group 群组Id
  228. * @param customInfo 自定义字段集合,key是NSString*类型,value是NSData*类型
  229. * @param succ 成功回调
  230. * @param fail 失败回调
  231. *
  232. * @return 0 成功
  233. */
  234. - (int)modifyGroupCustomInfo:(NSString*)group customInfo:(NSDictionary*)customInfo succ:(TIMSucc)succ fail:(TIMFail)fail;
  235. /**
  236. * 转让群给新群主
  237. *
  238. * @param group 群组Id
  239. * @param identifier 新的群主Id
  240. * @param succ 成功回调
  241. * @param fail 失败回调
  242. *
  243. * @return 0 成功
  244. */
  245. - (int)modifyGroupOwner:(NSString*)group user:(NSString*)identifier succ:(TIMSucc)succ fail:(TIMFail)fail;
  246. /**
  247. * 修改接受消息选项
  248. *
  249. * @param group 群组Id
  250. * @param opt 接受消息选项,详见 TIMGroupReceiveMessageOpt
  251. * @param succ 成功回调
  252. * @param fail 失败回调
  253. *
  254. * @return 0 成功
  255. */
  256. - (int)modifyReciveMessageOpt:(NSString*)group opt:(TIMGroupReceiveMessageOpt)opt succ:(TIMSucc)succ fail:(TIMFail)fail;
  257. /**
  258. * 修改群成员角色
  259. *
  260. * @param group 群组Id
  261. * @param identifier 被修改角色的用户identifier
  262. * @param role 角色(注意:不能修改为群主),详见 TIMGroupMemberRole
  263. * @param succ 成功回调
  264. * @param fail 失败回调
  265. *
  266. * @return 0 成功
  267. */
  268. - (int)modifyGroupMemberInfoSetRole:(NSString*)group user:(NSString*)identifier role:(TIMGroupMemberRole)role succ:(TIMSucc)succ fail:(TIMFail)fail;
  269. /**
  270. * 禁言用户(只有管理员或群主能够调用)
  271. *
  272. * @param group 群组Id
  273. * @param identifier 被禁言的用户identifier
  274. * @param stime 禁言时间
  275. * @param succ 成功回调
  276. * @param fail 失败回调
  277. *
  278. * @return 0 成功
  279. */
  280. - (int)modifyGroupMemberInfoSetSilence:(NSString*)group user:(NSString*)identifier stime:(uint32_t)stime succ:(TIMSucc)succ fail:(TIMFail)fail;
  281. /**
  282. * 修改群名片(只有本人、管理员或群主能够调用)
  283. *
  284. * @param group 群组Id
  285. * @param identifier 被操作用户identifier
  286. * @param nameCard 群名片
  287. * @param succ 成功回调
  288. * @param fail 失败回调
  289. *
  290. * @return 0 成功
  291. */
  292. - (int)modifyGroupMemberInfoSetNameCard:(NSString*)group user:(NSString*)identifier nameCard:(NSString*)nameCard succ:(TIMSucc)succ fail:(TIMFail)fail;
  293. /**
  294. * 修改群成员自定义字段集合
  295. *
  296. * @param group 群组Id
  297. * @param identifier 被操作用户identifier
  298. * @param customInfo 自定义字段集合,key是NSString*类型,value是NSData*类型
  299. * @param succ 成功回调
  300. * @param fail 失败回调
  301. *
  302. * @return 0 成功
  303. */
  304. - (int)modifyGroupMemberInfoSetCustomInfo:(NSString*)group user:(NSString*)identifier customInfo:(NSDictionary*)customInfo succ:(TIMSucc)succ fail:(TIMFail)fail;
  305. /**
  306. * 修改群组是否可被搜索属性
  307. *
  308. * @param group 群组Id
  309. * @param searchable 是否能被搜索
  310. * @param succ 成功回调
  311. * @param fail 失败回调
  312. *
  313. * @return 0 成功
  314. */
  315. - (int)modifyGroupSearchable:(NSString*)group searchable:(BOOL)searchable succ:(TIMSucc)succ fail:(TIMFail)fail;
  316. /**
  317. * 修改群组成员是否可见属性
  318. *
  319. * @param group 群组Id
  320. * @param visible 是否可见
  321. * @param succ 成功回调
  322. * @param fail 失败回调
  323. *
  324. * @return 0 成功
  325. */
  326. - (int)modifyGroupMemberVisible:(NSString*)group visible:(BOOL)visible succ:(TIMSucc)succ fail:(TIMFail)fail;
  327. /**
  328. * 通过名称信息获取群资料(可指定字段拉取)
  329. *
  330. * @param groupName 群组名称
  331. * @param flags 拉取资料标志
  332. * @param custom 要获取的自定义key(NSString*)列表
  333. * @param pageIndex 分页号
  334. * @param pageSize 每页群组数目
  335. * @param succ 成功回调
  336. * @param fail 失败回调
  337. */
  338. - (int)searchGroup:(NSString*)groupName flags:(TIMGetGroupBaseInfoFlag)flags custom:(NSArray*)custom pageIndex:(uint32_t)pageIndex pageSize:(uint32_t)pageSize succ:(TIMGroupSearchSucc)succ fail:(TIMFail)fail;
  339. /**
  340. * 获取群组未决列表
  341. *
  342. * @param option 未决参数配置
  343. * @param succ 成功回调,返回未决列表
  344. * @param fail 失败回调
  345. *
  346. * @return 0 成功
  347. */
  348. - (int)getPendencyFromServer:(TIMGroupPendencyOption*)option succ:(TIMGetGroupPendencyListSucc)succ fail:(TIMFail)fail;
  349. /**
  350. * 群未决已读上报
  351. *
  352. * @param timestamp 上报已读时间戳
  353. * @param succ 成功回调
  354. * @param fail 失败回调
  355. *
  356. * @return 0 成功
  357. */
  358. - (int)pendencyReport:(uint64_t)timestamp succ:(TIMSucc)succ fail:(TIMFail)fail;
  359. #pragma mark - 开启本地缓存后有效
  360. /**
  361. * 获取用户所在群组信息
  362. *
  363. * @param groups 群组id(NSString*)列表,nil时返回群组列表
  364. *
  365. * @return 群组信息(TIMGroupInfo*)列表,assistant未同步时返回nil
  366. */
  367. - (NSArray*)getGroupInfo:(NSArray*)groups;
  368. @end
  369. #endif /* TIMGroupManager_Ext_h */