差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
im:web:draft:group [2019/03/11 06:53] jk 创建 |
— (当前版本) | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== 群组管理 ====== | ||
- | <WRAP round tip> | ||
- | **注意:** | ||
- | 从Web SDK V1.4.11开始,群组管理的接口都已更新了Rest版本,V1.4.10 (包括V1.4.10)以下版本仍然保留XMPP版本,如果需要继续使用XMPP版本的接口,请参考[[im:400webimintegration:40groupchat|群组管理]] | ||
- | </WRAP> | ||
- | ---- | ||
- | |||
- | ===== 获取用户加入的群组列表 ===== | ||
- | |||
- | 调用getGroup函数获取当前登录用户加入的群组列表,示例如下: | ||
- | |||
- | <code javascript> | ||
- | // 列出当前登录用户加入的所有群组 | ||
- | var options = { | ||
- | success: function (resp) { | ||
- | console.log("Response: ", resp) | ||
- | }, | ||
- | error: function (e) {}; | ||
- | conn.getGroup(options); | ||
- | </code> | ||
- | |||
- | ===== 查询群组成员 ===== | ||
- | |||
- | 调用listGroupMember函数分页获取当前群组的所有成员,其中pageSize表示预期每页获取的记录数,pageNum表示页码,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var pageNum = 1, | ||
- | pageSize = 1000; | ||
- | var options = { | ||
- | pageNum: pageNum, | ||
- | pageSize: pageSize, | ||
- | groupId: 'yourGroupId', | ||
- | success: function (resp) { console.log("Response: ", resp)}, | ||
- | error: function(e){} | ||
- | }; | ||
- | conn.listGroupMember(options); | ||
- | </code> | ||
- | |||
- | ===== 获取群组黑名单 ===== | ||
- | |||
- | <code javascript> | ||
- | // 获取群组黑名单 | ||
- | var getGroupBlackList = function () { | ||
- | var option = { | ||
- | roomId: '1480758709661', | ||
- | success: function (list) { | ||
- | console.log('Get group black list: ', list); | ||
- | }, | ||
- | error: function () { | ||
- | console.log('Get group black list error.'); | ||
- | } | ||
- | }; | ||
- | conn.getGroupBlacklist(option); | ||
- | }; | ||
- | </code> | ||
- | |||
- | ===== 创建群组 ===== | ||
- | |||
- | 调用createGroupNew函数创建群组,groupname表示群组名,desc表示群组描述,members是用户名组成的数组,pub等于true时,创建为公开群,approval等于true时,加群需要审批,为false时加群无需审批。另外,创建群组成功后会在回调函数里调用onCreateGroup函数。 | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | data: { | ||
- | groupname: value, | ||
- | desc: info, | ||
- | members: friendsSelected, | ||
- | public: pub, | ||
- | approval: approval, | ||
- | allowinvites: allowInvites | ||
- | }, | ||
- | success: function (respData) {}, | ||
- | error: function () {} | ||
- | }; | ||
- | conn.createGroupNew(options); | ||
- | </code> | ||
- | ===== 获取群组信息 ===== | ||
- | 调用getGroupInfo根据群id获取群组详情,groupId为群id,示例如下: | ||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: gid, | ||
- | success: function(resp){ | ||
- | console.log("Response: ", resp); | ||
- | }, | ||
- | error: function(){} | ||
- | }; | ||
- | conn.getGroupInfo(options); | ||
- | </code> | ||
- | |||
- | ===== 修改群组信息 ===== | ||
- | |||
- | 只有群组的管理员可以修改群组名称和群组简介,示例如下。 | ||
- | |||
- | 注意:在获取群组时候就可以获取群管理员的ID,从而前端可决定是否显示修改信息按钮。 | ||
- | |||
- | <code javascript> | ||
- | // 修改群信息 | ||
- | var changeGroupInfo = function () { | ||
- | var option = { | ||
- | roomId: '1480756943693', | ||
- | subject: 'ChangeTest', // 群组名称 | ||
- | description: 'Change group information test', // 群组简介 | ||
- | success: function () { | ||
- | console.log('Change Group Names Success!'); | ||
- | } | ||
- | }; | ||
- | conn.changeGroupSubject(option); | ||
- | }; | ||
- | </code> | ||
- | |||
- | ===== 将好友加入群组 ===== | ||
- | |||
- | 管理员可以将好友加入群组。 | ||
- | |||
- | <code javascript> | ||
- | // 加好友入群 | ||
- | var addGroupMembers = function () { | ||
- | var option = { | ||
- | list: ['asdfghj', 'wjy6'], | ||
- | roomId: '1480841456167' | ||
- | }; | ||
- | conn.addGroupMembers(option); | ||
- | }; | ||
- | </code> | ||
- | |||
- | ===== 将成员禁言 ===== | ||
- | |||
- | 调用mute将成员禁言,username表示成员用户名,muteDuration表示将要被禁言的时长,单位是毫秒,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | username: "user", | ||
- | muteDuration: 886400000, | ||
- | groupId: "groupId", | ||
- | success: function (resp) {}, | ||
- | error: function(e){} | ||
- | }; | ||
- | conn.mute(options); | ||
- | </code> | ||
- | |||
- | ===== 将成员解除禁言 ===== | ||
- | |||
- | 调用removeMute将成员禁言,username表示成员用户名,groupId表示群组id,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: "groupId", | ||
- | username: "user", | ||
- | success: function(resp){}, | ||
- | error: function (e) {} | ||
- | }; | ||
- | conn.removeMute(options); | ||
- | </code> | ||
- | |||
- | ===== 获取群组下所有被禁言成员 ===== | ||
- | |||
- | 调用getMuted将成员禁言,groupId表示群组id,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: "groupId", | ||
- | success: function (resp) {}, | ||
- | error: function(e){} | ||
- | }; | ||
- | conn.getMuted(options); | ||
- | </code> | ||
- | |||
- | ===== 将成员设为群管理员 ===== | ||
- | |||
- | 调用setAdmin将成员禁言,groupId表示群组id,user表示用户名,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: "groupId", | ||
- | username: "user", | ||
- | success: function(resp) {}, | ||
- | error: function(e){} | ||
- | }; | ||
- | conn.setAdmin(options); | ||
- | </code> | ||
- | |||
- | ===== 将管理员撤销 ===== | ||
- | |||
- | 调用removeAdmin将成员禁言,groupId表示群组id,user表示用户名,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: "groupId", | ||
- | username: "user", | ||
- | success: function(resp) {}, | ||
- | error: function (e) {} | ||
- | }; | ||
- | conn.removeAdmin(options); | ||
- | </code> | ||
- | |||
- | ===== 获取群组下所有管理员 ===== | ||
- | |||
- | 调用getGroupAdmin获取群组下所有管理员,groupId表示群组id,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: "groupId", | ||
- | success: function (resp) {}, | ||
- | error: function(e){} | ||
- | }; | ||
- | conn.getGroupAdmin(options); | ||
- | </code> | ||
- | |||
- | ===== 将成员加入群黑名单(单个) ===== | ||
- | |||
- | 调用groupBlockSingle将单个成员加入群组黑名单,groupId表示群组id,username表示将要被加入黑名单的用户名,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: Demo.selected, | ||
- | username: username, | ||
- | success: function (resp) { | ||
- | console.log("Response: ", resp); | ||
- | }, | ||
- | error: function(e){} | ||
- | }; | ||
- | conn.groupBlockSingle(options); | ||
- | </code> | ||
- | |||
- | ===== 将成员加入群黑名单(批量) ===== | ||
- | |||
- | 调用groupBlockMulti将成员批量加入群组黑名单,groupId表示群组id,username表示将要被加入黑名单的用户名数组,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: 'Your groupId', | ||
- | username: ['user1', 'user2', ...users], | ||
- | success: function (resp) { | ||
- | console.log("Response: ", resp); | ||
- | }, | ||
- | error: function(e){} | ||
- | }; | ||
- | conn.groupBlockMulti(options); | ||
- | </code> | ||
- | |||
- | ===== 将成员移出群组黑名单(单个) ===== | ||
- | |||
- | 调用removeGroupBlockSingle将单个成员从群组黑名单中移除,groupId是群组id,username是需要移除的用户名。 | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: "Your Group ID", | ||
- | username: "user", | ||
- | success: function(resp){ | ||
- | console.log("Response: ", resp); | ||
- | }, | ||
- | error: function(e) {}; | ||
- | } | ||
- | conn.removeGroupBlockSingle(options); | ||
- | </code> | ||
- | |||
- | ===== 将成员移出群组黑名单(批量) ===== | ||
- | |||
- | 调用removeGroupBlockMulti将成员批量从群组黑名单中移除,groupId是群组id,username是需要移除的用户名数组。 | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: "Your Group ID", | ||
- | username: ["user1", "user2"], | ||
- | success: function(resp){ | ||
- | console.log("Response: ", resp); | ||
- | }, | ||
- | error: function(e) {}; | ||
- | } | ||
- | conn.removeGroupBlockMulti(options); | ||
- | </code> | ||
- | |||
- | ===== 解散群组 ===== | ||
- | |||
- | 只有群组的管理员有权限将成员踢出群组。群组解散后,所有群成员均退出该群。 | ||
- | |||
- | 注意:在获取群组时候就可以获取群管理员的ID,从而前端可决定是否显示解散按钮。 | ||
- | |||
- | <code javascript> | ||
- | // 解散一个群组 | ||
- | var dissolveGroup = function () { | ||
- | var option = { | ||
- | groupId: '1480840256052', | ||
- | success: function () { | ||
- | console.log('Destroy group success!'); | ||
- | } | ||
- | }; | ||
- | conn.dissolveGroup(option); | ||
- | }; | ||
- | </code> | ||
- | |||
- | ===== 退出群组 ===== | ||
- | |||
- | 群成员可以主动退出群组,示例如下。 | ||
- | |||
- | <code javascript> | ||
- | // 成员主动退出群 | ||
- | var leaveGroup = function () { | ||
- | var option = { | ||
- | to: 'asdfghj', | ||
- | roomId: '1480747027186', | ||
- | success: function () { | ||
- | console.log('You leave room succeed!'); | ||
- | }, | ||
- | error: function () { | ||
- | console.log('Leave room faild'); | ||
- | } | ||
- | }; | ||
- | conn.leaveGroupBySelf(option); | ||
- | }; | ||
- | </code> | ||
- | |||
- | ===== 分页获取公开群 ===== | ||
- | |||
- | 调用listGroups函数分页获取当前登录用户加入的群组列表,其中limit表示预期每页获取的记录数,cursor 游标,如果数据还有下一页,API 返回值会包含此字段,传递此字段可获取下一页的数据,默认为null,为null时获取第一页数据,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var limit = 20, | ||
- | cursor = globalCursor; | ||
- | var options = { | ||
- | limit: limit, | ||
- | cursor: cursor, | ||
- | success: function (resp) { | ||
- | console.log("Response: ", resp); | ||
- | globalCursor = resp.cursor; | ||
- | }, | ||
- | error: function (e) {} | ||
- | }; | ||
- | conn.listGroups(options); | ||
- | </code> | ||
- | |||
- | ===== 向群组发出入群申请 ===== | ||
- | |||
- | 调用joinGroup向群组发出入群申请,groupId表示群组的群id,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | groupId: "groupId", | ||
- | success: function(resp) { | ||
- | console.log("Response: ", resp); | ||
- | }, | ||
- | error: function(e) { | ||
- | if(e.type == 17){ | ||
- | console.log("您已经在这个群组里了"); | ||
- | } | ||
- | } | ||
- | }; | ||
- | conn.joinGroup(options); | ||
- | </code> | ||
- | |||
- | ===== 同意用户加入群 ===== | ||
- | |||
- | 调用agreeJoinGroup同意用户加群请求,groupId表示群组的群id,applicant为申请加群的用户名,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | applicant: applicant, | ||
- | groupId: groupId, | ||
- | success: function(resp){ | ||
- | console.log(resp); | ||
- | }, | ||
- | error: function(e){} | ||
- | }; | ||
- | conn.agreeJoinGroup(options); | ||
- | </code> | ||
- | |||
- | ===== 拒绝用户加入群 ===== | ||
- | |||
- | 调用rejectJoinGroup同意用户加群请求,groupId表示群组的群id,applicant为申请加群的用户名,示例如下: | ||
- | |||
- | <code javascript> | ||
- | var options = { | ||
- | applicant: applicant, | ||
- | groupId: groupId, | ||
- | success: function(resp){ | ||
- | console.log(resp); | ||
- | }, | ||
- | error: function(e){} | ||
- | }; | ||
- | conn.rejectJoinGroup(options); | ||
- | </code> | ||
- | ===== 发送消息 ===== | ||
- | |||
- | 见[[im:400webimintegration:30singlechat#发送消息|发送消息]]。 | ||
- | |||
- | ===== 接收及处理消息 ===== | ||
- | |||
- | 群聊接收及处理消息同单聊,消息体与单聊消息根据 message 的 type 进行区分,单聊为:chat,群聊为:groupchat,聊天室为:chatroom。根据消息的类型进行不同处理即可。 | ||
- | |||
- | |||
- | ---- | ||
- | <WRAP group> | ||
- | <WRAP half column> | ||
- | 上一页:[[im:web:basics:buddy|好友管理]] | ||
- | </WRAP> | ||
- | |||
- | <WRAP half column> | ||
- | 下一页:[[im:web:basics:chatroom|聊天室管理]] | ||
- | </WRAP> | ||
- | </WRAP> |