NIMSDK-AOS  9.19.10
SuperTeamService.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.superteam;
2 
3 import com.netease.nimlib.apt.annotation.NIMService;
18 import java.io.Serializable;
19 import java.util.ArrayList;
20 import java.util.List;
21 import java.util.Map;
22 
23 /**
24  * Created by hzsunyj on 2019-05-16.
25  */
26 @NIMService("超大群服务")
27 public interface SuperTeamService {
28 
29  /**
30  * 发送消息。<br>
31  * 如果需要更新发送进度,请调用{@link MsgServiceObserve#observeMsgStatus(com.netease.nimlib.sdk.Observer, boolean)}
32  *
33  * @param msg 带发送的消息体,由{@link MessageBuilder}构造
34  * @param resend 如果是发送失败后重发,标记为true,否则填false
35  * @return InvocationFuture 可以设置回调函数。消息发送完成后才会调用,如果出错,会有具体的错误代码。
36  */
37  InvocationFuture<Void> sendMessage(IMMessage msg, boolean resend);
38  /**
39  * 发送消息。
40  *
41  * 该方法为异步。如需更新发送进度,请调用 {@link MsgServiceObserve#observeMsgStatus}。
42  *
43  * @par 使用前提:
44  * 已调用 MessageBuilder#createXXMessage 创建一条消息。
45  *
46  * @param msg 待发送的 IMMessage 消息体,由 {@link MessageBuilder} 构造。
47  * @param resend true 表示消息发送失败后重发;false 表示消息发送失败后不重发。
48  * @param option 消息发送选项
49  * @return InvocationFuture<Void> 可设置回调函数:消息发送成功后返回通知;消息发送失败后返回具体错误码。
50  */
51  InvocationFuture<Void> sendMessage(IMMessage msg, boolean resend, MsgSendOption option);
52 
53  /**
54  * 回复消息。<br>
55  * 如果需要更新发送进度,请调用{@link MsgServiceObserve#observeMsgStatus(com.netease.nimlib.sdk.Observer, boolean)}
56  *
57  * @param msg 带发送的消息体,由{@link MessageBuilder}构造
58  * @param replyMsg 被回复的消息
59  * @param resend 如果是发送失败后重发,标记为true,否则填false
60  * @return InvocationFuture 可以设置回调函数。消息发送完成后才会调用,如果出错,会有具体的错误代码。
61  */
62  InvocationFuture<Void> replyMessage(IMMessage msg, IMMessage replyMsg, boolean resend);
63 
64  /**
65  * 回复消息。
66  *
67  * 该方法为异步。如需更新发送进度,请调用 {@link MsgServiceObserve#observeMsgStatus}。
68  *
69  * @par 使用前提:
70  * - 已收到一条消息。
71  * - 已调用 MessageBuilder#createXXMessage 构建一条消息。
72  *
73  * @param msg 待发送的 IMMessage 消息体,由 {@link MessageBuilder} 构造。
74  * @param replyMsg 被回复的 IMMessage 消息体,由 {@link MessageBuilder} 构造。
75  * @param resend true 表示消息回复失败后重发;false 表示消息回复失败后不重发。
76  * @param option 消息发送选项
77  * @return InvocationFuture<Void> 可设置回调函数:消息回复成功后返回通知;消息回复失败后返回具体错误码。
78  */
79  InvocationFuture<Void> replyMessage(IMMessage msg, IMMessage replyMsg, boolean resend,MsgSendOption option);
80 
81  /**
82  * 邀请成员
83  *
84  * @param teamId 群组ID
85  * @param accounts 待加入的群成员帐号列表
86  * @param postscript 附言,长度不得超过5000
87  * @return InvocationFuture 可以设置回调函数,监听操作结果
88  */
89  InvocationFuture<List<String>> addMembers(String teamId, List<String> accounts, String postscript);
90 
91  /**
92  * 移出群成员,只有群主有权限
93  *
94  * @param teamId 群ID
95  * @param member 被踢出的成员帐号
96  * @return InvocationFuture 可以设置回调函数,监听操作结果
97  */
98  InvocationFuture<Void> removeMember(String teamId, String member);
99 
100  /**
101  * 批量移出群成员,只有群主有权限
102  *
103  * @param teamId 群ID
104  * @param members 被踢出的成员帐号列表
105  * @return InvocationFuture 可以设置回调函数,监听操作结果
106  */
107  InvocationFuture<Void> removeMembers(String teamId, List<String> members);
108 
109  /**
110  * 退出群
111  *
112  * @param teamId 群ID
113  * @return InvocationFuture 可以设置回调函数,监听操作结果
114  */
115  InvocationFuture<Void> quitTeam(String teamId);
116 
117  /**
118  * 将指定最近联系人的未读数清零(标记已读)。<br>
119  * 调用该接口后,会触发{@link MsgServiceObserve#observeRecentContact(Observer, boolean)}
120  */
121  InvocationFuture<List<SessionAckInfo>> clearUnreadCount(List<String> teamIdList);
122 
123 
124  /**
125  * 更新群组资料
126  *
127  * @param teamId 群ID
128  * @param field 待更新的域
129  * @param value 待更新的域的新值
130  * 该值类型必须和field中定义的fieldType一致
131  * @return InvocationFuture 可以设置回调函数,监听操作结果
132  */
133  InvocationFuture<Void> updateTeam(String teamId, TeamFieldEnum field, Serializable value);
134 
135  /**
136  * 批量更新群组资料,可一次性更新多个字段的值。
137  *
138  * @param teamId 群ID
139  * @param fields 待更新的所有字段的新的资料,其中值类型必须和field中定义的fieldType一致
140  * @return InvocationFuture 可以设置回调函数,监听操作结果
141  */
142  InvocationFuture<Void> updateTeamFields(String teamId, Map<TeamFieldEnum, Serializable> fields);
143 
144  /**
145  * 批量更新群组资料,可一次性更新多个字段的值。
146  *
147  * @param teamId 群ID
148  * @param fields 待更新的所有字段的新的资料,其中值类型必须和field中定义的fieldType一致
149  * @param antiSpamConfig 反垃圾相关配置参数
150  * @return InvocationFuture 可以设置回调函数,监听操作结果
151  */
152  InvocationFuture<Void> updateTeamFields(String teamId, Map<TeamFieldEnum, Serializable> fields,
153  AntiSpamConfig antiSpamConfig);
154 
155  /**
156  * 获取自己加入的群的列表
157  *
158  * @return InvocationFuture 可以设置回调函数,如果成功,参数为自己加入的群的列表
159  */
160  InvocationFuture<List<SuperTeam>> queryTeamList();
161 
162  /**
163  * 获取自己加入的群的列表(同步版本)
164  *
165  * @return 自己加入的群的列表
166  */
167  List<SuperTeam> queryTeamListBlock();
168 
169  /**
170  * 根据群id列表批量查询群信息
171  *
172  * @param tidList 群id列表
173  * @return 可以设置回调函数,如果成功,参数为查询的群信息列表
174  */
175  InvocationFuture<List<SuperTeam>> queryTeamListById(List<String> tidList);
176 
177  /**
178  * 根据群id列表批量查询群信息(同步版本)
179  *
180  * @param tidList 群id列表
181  * @return 查询的群信息列表
182  */
183  List<SuperTeam> queryTeamListByIdBlock(List<String> tidList);
184 
185  /**
186  * 查询群资料,如果本地没有群组资料,则去服务器查询。<br>
187  * 如果自己不在这个群中,该接口返回的可能是过期资料,如需最新的,请调用{@link #searchTeam(String teamId)}接口
188  *
189  * @param teamId 群ID
190  * @return InvocationFuture 可以设置回调函数,如果成功,参数为群资料
191  */
192  InvocationFuture<SuperTeam> queryTeam(String teamId);
193 
194  /**
195  * 查询群资料(仅查询本地,不会去服务器请求)
196  * 如果自己不在这个群中,该接口返回的可能是过期资料,如需最新的,请调用{@link #searchTeam(String teamId)}接口
197  *
198  * @param teamId 群ID
199  * @return 群资料
200  */
201  SuperTeam queryTeamBlock(String teamId);
202 
203  /**
204  * 从服务器上查询群资料信息
205  *
206  * @param teamId
207  * @return
208  */
209  InvocationFuture<SuperTeam> searchTeam(String teamId);
210 
211  /**
212  * 获取指定群的成员信息列表. <br>
213  * 该操作有可能只是从本地数据库读取缓存数据,也有可能会从服务器同步新的数据, 因此耗时可能会比较长。
214  *
215  * @param teamId 群ID
216  * @return InvocationFuture 可以设置回调函数,如果成功,参数为群的成员信息列表
217  */
218  InvocationFuture<List<SuperTeamMember>> queryMemberList(String teamId);
219 
220 
221  /**
222  * 分页获取指定群的成员信息列表. <br>
223  * 该操作有可能只是从本地数据库读取缓存数据,也有可能会从服务器同步新的数据, 因此耗时可能会比较长。
224  *
225  * @param teamId 群ID
226  * @param offset 偏移位置
227  * @param limit 获取条数,每次最多200
228  * @return InvocationFuture 可以设置回调函数,如果成功,参数为群的成员信息列表
229  */
230  InvocationFuture<List<SuperTeamMember>> queryMemberListByPage(String teamId, int offset, int limit);
231 
232  /**
233  * 查询群成员资料。如果本地群成员资料已过期会去服务器获取最新的。
234  *
235  * @param teamId 群ID
236  * @param account 群成员帐号
237  * @return InvocationFuture 可以设置回调函数,如果成功,参数为该群成员信息
238  */
239  InvocationFuture<SuperTeamMember> queryTeamMember(String teamId, String account);
240 
241  /**
242  * 查询群成员资料。(同步版本)
243  *
244  * @param teamId 群ID
245  * @param account 群成员帐号
246  * @return 群成员信息
247  */
248  SuperTeamMember queryTeamMemberBlock(String teamId, String account);
249 
250  /**
251  * 查询被禁言群成员列表
252  * 该操作,只返回调用{@link SuperTeamService#muteTeamMembers(String, ArrayList, boolean)} 禁言的用户。
253  *
254  * @param teamId 群ID
255  * @return 群成员信息列表
256  */
257  List<SuperTeamMember> queryMutedTeamMembers(String teamId);
258 
259  /**
260  * 修改自己的群昵称
261  *
262  * @param teamId 所在群组ID
263  * @param nick 新的群昵称
264  * @return InvocationFuture 可以设置回调函数,监听操作结果
265  */
266  InvocationFuture<Void> updateMyTeamNick(String teamId, String nick);
267 
268 
269  /**
270  * 修改自己的群成员扩展字段(自定义属性,最长32个字符)
271  *
272  * @param teamId 所在群组ID
273  * @param extension 扩展字段(自定义属性)
274  * @return InvocationFuture 可以设置回调函数,监听操作结果
275  */
276  InvocationFuture<Void> updateMyMemberExtension(String teamId, String extension);
277 
278  /**
279  * 设置指定群消息通知类型,查看{@link com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum}
280  *
281  * @param teamId 群组ID
282  * @param notifyType 通知类型枚举
283  * @return InvocationFuture 可以设置回调函数,监听操作结果
284  */
285  InvocationFuture<Void> muteTeam(String teamId, TeamMessageNotifyTypeEnum notifyType);
286 
287 
288  /**
289  * 消息撤回 ,默认没有第三方推送(包括IOS平台的推送),参考{@link SuperTeamService#revokeMessage(IMMessage, String, Map)}
290  *
291  * @param message 待撤回的消息
292  * @return InvocationFuture 可设置回调函数,监听发送结果。
293  */
294  InvocationFuture<Void> revokeMessage(IMMessage message);
295 
296 
297  /**
298  * 消息撤回 , 并设置相应的第三方推送配置(包括IOS平台的推送),如果想要关闭App内的返回消息提醒,参考{@link NIMClient#toggleRevokeMessageNotification(boolean on)}
299  *
300  * @param message 待撤回的消息
301  * @param customApnsText 第三方透传消息推送文本,不填则不推送
302  * @param pushPayload 第三方自定义的推送属性,限制json,长度2048
303  * @return InvocationFuture 可设置回调函数,监听发送结果。
304  */
305  InvocationFuture<Void> revokeMessage(IMMessage message, String customApnsText, Map<String, Object> pushPayload);
306 
307 
308  /**
309  * 消息撤回 , 并设置相应的第三方推送配置(包括IOS平台的推送),如果想要关闭App内的返回消息提醒,参考{@link NIMClient#toggleRevokeMessageNotification(boolean on)}
310  *
311  * @param message 待撤回的消息
312  * @param customApnsText 第三方透传消息推送文本,不填则不推送
313  * @param pushPayload 第三方自定义的推送属性,限制json,长度2048
314  * @param shouldNotifyBeCount 撤回通知是否更新未读数
315  * @return InvocationFuture 可设置回调函数,监听发送结果。
316  */
317  InvocationFuture<Void> revokeMessage(IMMessage message, String customApnsText, Map<String, Object> pushPayload, boolean shouldNotifyBeCount);
318 
319  /**
320  * 消息撤回 , 并设置相应的第三方推送配置(包括IOS平台的推送),如果想要关闭App内的返回消息提醒,参考{@link NIMClient#toggleRevokeMessageNotification(boolean on)}
321  *
322  * @param message 待撤回的消息
323  * @param customApnsText 第三方透传消息推送文本,不填则不推送
324  * @param pushPayload 第三方自定义的推送属性,限制json,长度2048
325  * @param shouldNotifyBeCount 撤回通知是否更新未读数
326  * @param postscript 附言
327  * @return InvocationFuture 可设置回调函数,监听发送结果。
328  */
329  InvocationFuture<Void> revokeMessage(IMMessage message, String customApnsText,
330  Map<String, Object> pushPayload, boolean shouldNotifyBeCount,
331  String postscript);
332 
333  /**
334  * 搜索与关键字匹配的所有群
335  *
336  * @return 群集合
337  */
338  InvocationFuture<List<SuperTeam>> searchTeamsByKeyword(String keyword);
339 
340  /**
341  * 用户申请加入群。
342  *
343  * @param tid 申请加入的群ID
344  * @param postscript 附言,长度不得超过5000
345  * @return InvocationFuture 可以设置回调函数,如果成功,参数为群资料
346  */
347  InvocationFuture<SuperTeam> applyJoinTeam(String tid, String postscript);
348 
349  /**
350  * 通过用户的入群申请<br>
351  * 仅群主和管理员拥有者有此权限
352  *
353  * @param teamId 群ID
354  * @param account 申请入群的用户ID
355  * @return InvocationFuture 可以设置回调函数
356  */
357  InvocationFuture<Void> passApply(String teamId, String account);
358 
359  /**
360  * 拒绝用户的入群申请 <br>
361  * 仅管理员和拥有者有此权限
362  *
363  * @param teamId 群ID
364  * @param account 申请入群的用户ID
365  * @param reason 拒绝理由,长度不得超过5000
366  * @return InvocationFuture 可以设置回调函数
367  */
368  InvocationFuture<Void> rejectApply(String teamId, String account, String reason);
369 
370  /**
371  * 接受别人的入群邀请
372  *
373  * @param teamId 群ID
374  * @param inviter 邀请我的用户帐号
375  * @return InvocationFuture 可以设置回调函数
376  */
377  InvocationFuture<Void> acceptInvite(String teamId, String inviter);
378 
379  /**
380  * 拒绝别人的入群邀请通知
381  *
382  * @param teamId 群ID
383  * @param inviter 邀请我的用户帐号
384  * @param reason 拒绝理由,长度不得超过5000
385  * @return InvocationFuture 可以设置回调函数
386  */
387  InvocationFuture<Void> declineInvite(String teamId, String inviter, String reason);
388 
389  /**
390  * 标记会话ACK
391  *
392  * @param teamId 群ID
393  * @param timestamp 会话最后一条ACK消息的时间戳,单位毫秒
394  * @return InvocationFuture 可以设置回调函数
395  */
396  InvocationFuture<Void> sendAckSession(String teamId, long timestamp);
397 
398  /**
399  * 拥有者添加管理员 <br>
400  * 仅拥有者有此权限
401  *
402  * @param teamId 群ID
403  * @param accounts 待提升为管理员的用户帐号列表
404  * @return InvocationFuture 可以设置回调函数,如果成功,参数为新增的群管理员列表
405  */
406  InvocationFuture<List<SuperTeamMember>> addManagers(String teamId, List<String> accounts);
407 
408  /**
409  * 拥有者撤销管理员权限 <br>
410  * 仅拥有者有此权限
411  *
412  * @param teamId 群ID
413  * @param managers 待撤销的管理员的帐号列表
414  * @return InvocationFuture 可以设置回调函数,如果成功,参数为被撤销的群成员列表(权限已被降为Normal)。
415  */
416  InvocationFuture<List<SuperTeamMember>> removeManagers(String teamId, List<String> managers);
417 
418  /**
419  * 对整个群禁言、解除禁言,对普通成员生效,只有群组、管理员有权限
420  *
421  * @param teamId 群组 ID
422  * @param mute true表示禁言,false表示解除禁言
423  * @return InvocationFuture 可以设置回调函数,监听操作结果
424  */
425  InvocationFuture<Void> muteAllTeamMember(String teamId, boolean mute);
426 
427  /**
428  * 禁言、解除禁言
429  *
430  * @param teamId 群组ID
431  * @param accountList 被禁言、被解除禁言的账号列表
432  * @param mute true表示禁言,false表示解除禁言
433  * @return InvocationFuture 可以设置回调函数,监听操作结果
434  */
435  InvocationFuture<Void> muteTeamMembers(String teamId, ArrayList<String> accountList, boolean mute);
436 
437  /**
438  * 群组管理员修改群内其他成员的群昵称。<br>
439  * 仅群管理员和拥有者有此权限
440  *
441  * @param teamId 所在群组ID
442  * @param account 要修改的群成员帐号
443  * @param nick 新的群昵称
444  * @return InvocationFuture 可以设置回调函数,监听操作结果
445  */
446  InvocationFuture<Void> updateMemberNick(String teamId, String account, String nick);
447 
448  /**
449  * 拥有者将群的拥有者权限转给另外一个人,转移后,另外一个人成为拥有者。<br>
450  * 原拥有者变成普通成员。若参数quit为true,原拥有者直接退出该群。
451  *
452  * @param tid 群ID
453  * @param account 新任拥有者的用户帐号
454  * @param quit 转移时是否要同时退出该群
455  * @return InvocationFuture 可以设置回调函数,如果成功,视参数quit值:<br>
456  * quit为false:参数仅包含原拥有者和当前拥有者的(即操作者和account),权限已被更新。<br>
457  * quit为true: 参数为空。
458  */
459  InvocationFuture<List<SuperTeamMember>> transferTeam(String tid, String account, boolean quit);
460 
461 
462  /**
463  * 通过群名称反查群组ID
464  *
465  * @param name 群组名称
466  * @return 群ID列表
467  */
468  InvocationFuture<List<String>> searchTeamIdByName(String name);
469 
470  /**
471  * 搜索群成员
472  * @param option 搜索参数
473  * @return InvocationFuture 可以设置回调函数,监听操作结果
474  */
476 
477  /**
478  * 查询群成员列表
479  * @param teamId 群组ID
480  * @param option 查询选项
481  * @return InvocationFuture 可以设置回调函数,监听操作结果
482  */
484 
485  /**
486  * 添加特别关注群成员列表
487  * @param teamId 群组ID
488  * @param accountIds 账号列表
489  * @return InvocationFuture 可以设置回调函数
490  */
491  InvocationFuture<Void> addTeamMembersFollow(String teamId,List<String> accountIds);
492 
493  /**
494  * 移除特别关注群成员列表
495  * @param teamId 群组ID
496  * @param accountIds 账号列表
497  * @return InvocationFuture 可以设置回调函数
498  */
499  InvocationFuture<Void> removeTeamMembersFollow(String teamId,List<String> accountIds);
500 }
描述群成员资料的数据结构 对于讨论组,不能设置群昵称,也没有管理员,不用关心TeamMemberType ...
云信 IM 消息服务观察者接口类,提供消息、会话等服务的监听接口。
云信 IM 消息构造器,提供构建各类型消息的接口。
创建群、修改群资料时的域定义
NIM消息实体数据结构。 第三方APP不要调用设置类接口,调用之后不会被持久化
Definition: IMMessage.java:10
Created by hzsunyj on 2019-05-24.
Definition: SuperTeam.java:17
SDK 核心接口类,用于初始化 SDK,获取各个服务能力接口,获取当前状态等功能。
Definition: NIMClient.java:22