群组
环信 Web IM SDK 支持群组功能的集成,集成后可以进行如下操作:
- 群组管理
- 群成员管理
- 加群处理
- 禁言管理
- 黑名单管理
- 群消息管理
通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。
注意:
从 Web SDK V1.4.11 开始,群组管理的接口都已更新了 Rest 版本,V1.4.10 (包括V1.4.10)以下版本仍然保留 XMPP 版本,如果需要继续使用XMPP 版本的接口,请参考群组管理
群组管理
群组管理包含以下处理操作:
- 获取用户加入的群组列表
- 分页获取公开群
- 创建群组
- 获取群组信息
- 修改群组信息
- 解散群组
- 退出群组
所有处理操作的示例下面会一一说明。
获取用户加入的群组列表
调用getGroup
函数获取当前登录用户加入的群组列表,示例如下:
// 列出当前登录用户加入的所有群组
var options = {
success: function (resp) {
console.log("Response: ", resp)
},
error: function (e) {};
conn.getGroup(options);
API
分页获取公开群
调用listGroups
函数分页获取当前登录用户加入的群组列表,示例如下:
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);
注意:
- 如果数据还有下一页,API 返回值会包含此字段,传递此字段可获取下一页的数据,默认为
null
,为null
时获取第一页数据
API
创建群组
调用createGroupNew
函数创建群组,示例代码如下
var options = {
data: {
groupname: value, // 群组名
desc: info, // 群组描述
members: friendsSelected, // 用户名组成的数组
public: pub, // pub等于true时,创建为公开群
approval: approval, // approval为true,加群需审批,为false时加群无需审批
allowinvites: allowInvites
},
success: function (respData) {},
error: function () {}
};
conn.createGroupNew(options);
注意:
- 创建群组成功后会在回调函数里调用
onCreateGroup
函数
API
获取群组信息
调用getGroupInfo
根据群 id 获取群组详情,示例如下:
var options = {
groupId: gid, //群组id
success: function(resp){
console.log("Response: ", resp);
},
error: function(){}
};
conn.getGroupInfo(options);
API
修改群组信息
只有群组的管理员可以修改群组名称和群组简介,调用modifyGroup
修改群组信息,示例如下:
// 修改群信息
var changeGroupInfo = function () {
var option = {
roomId: '1480756943693',
subject: 'ChangeTest', // 群组名称
description: 'Change group information test', // 群组简介
success: function () {
console.log('Change Group Names Success!');
}
};
conn.modifyGroup(option);
};
注意:
- 在获取群组时候就可以获取群管理员的 ID ,从而前端可决定是否显示修改信息按钮。
API
解散群组
- 只有群组的管理员有权限将成员踢出群组;
- 群组解散后,所有群成员均退出该群。
调用dissolveGroup
解散群组,示例如下:
// 解散一个群组
var dissolveGroup = function () {
var option = {
groupId: '1480840256052',
success: function () {
console.log('Destroy group success!');
}
};
conn.dissolveGroup(option);
};
注意:
- 在获取群组时候就可以获取群管理员的ID,从而前端可决定是否显示解散按钮。
API
退出群组
群成员可以主动退出群组,调用quitGroup
退出群组,示例如下:
// 成员主动退出群
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.quitGroup(option);
};
API
群成员管理
群成员管理包含以下处理操作:
- 查询群组成员
- 将成员设为管理员
- 将管理员撤销
- 获取群组下所有管理员
所有处理操作的示例下面会一一说明。
查询群组成员
调用listGroupMember
函数分页获取当前群组的所有成员,示例如下:
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);
API
将成员设为管理员
调用setAdmin
将成员设为管理员,示例如下:
var options = {
groupId: "groupId", // 群组id
username: "user", // 用户名
success: function(resp) {},
error: function(e){}
};
conn.setAdmin(options);
API
将管理员撤销
调用removeAdmin
将管理员撤销,示例如下:
var options = {
groupId: "groupId", // 群组id
username: "user", // 用户名
success: function(resp) {},
error: function (e) {}
};
conn.removeAdmin(options);
API
获取群组所有管理员
调用getGroupAdmin
获取群组下所有管理员,示例如下:
var options = {
groupId: "groupId", // 群组id
success: function (resp) {},
error: function(e){}
};
conn.getGroupAdmin(options);
API
加群处理
加群包含以下处理操作:
- 将好友加入群组
- 向群组发出入群申请
- 同意用户加入群
- 拒绝用户加入群
所有处理操作的示例下面会一一说明。
将好友加入群组
管理员可以将好友加入群组。调用inviteToGroup
将好友加入群组,示例如下:
// 加好友入群
var addGroupMembers = function () {
var option = {
list: ['asdfghj', 'wjy6'],
roomId: '1480841456167'
};
conn.inviteToGroup(option);
};
API
向群组发出入群申请
调用joinGroup
向群组发出入群申请,示例如下:
var options = {
groupId: "groupId", // 群组ID
success: function(resp) {
console.log("Response: ", resp);
},
error: function(e) {
if(e.type == 17){
console.log("您已经在这个群组里了");
}
}
};
conn.joinGroup(options);
API
同意用户加入群
只有管理员才有权限同意用户加入群组的请求。
调用agreeJoinGroup
同意用户加群请求,示例如下:
var options = {
applicant: applicant, // 申请加群的用户名
groupId: groupId, // 群组ID
success: function(resp){
console.log(resp);
},
error: function(e){}
};
conn.agreeJoinGroup(options);
API
拒绝用户加入群
只有管理员才有权限拒绝用户加入群组的请求。
调用rejectJoinGroup
拒绝用户加群请求,示例如下:
var options = {
applicant: applicant, // 申请加群的用户名
groupId: groupId, // 群组ID
success: function(resp){
console.log(resp);
},
error: function(e){}
};
conn.rejectJoinGroup(options);
API
禁言管理
禁言管理包含以下处理操作:
- 将成员禁言
- 将成员解除禁言
- 获取群组下禁言成员
所有处理操作的示例下面会一一说明。
将成员禁言
调用mute
将成员禁言,示例如下:
var options = {
username: "user", // 成员用户名
muteDuration: 886400000, // 禁言的时长,单位是毫秒
groupId: "groupId",
success: function (resp) {},
error: function(e){}
};
conn.mute(options);
API
将成员解除禁言
调用removeMute
将成员解除禁言,示例如下:
var options = {
groupId: "groupId", // 群组ID
username: "user", // 成员用户名
success: function(resp){},
error: function (e) {}
};
conn.removeMute(options);
API
获取群组下禁言成员
调用getMuted
获取群组下所有被禁言的成员,示例如下:
var options = {
groupId: "groupId", // 群组ID
success: function (resp) {},
error: function(e){}
};
conn.getMuted(options);
API
开启和关闭全员禁言
owner和管理员可以开启和关闭全员禁言。
//群组中禁言所有成员
var options = {
groupId: "groupId", //群组id
success: function (resp) {},
error: function(e){}
};
conn.disableSendGroupMsg(options);
//群组中解除所有成员禁言
conn.enableSendGroupMsg(options)
API
白名单管理
可以将用户添加到白名单中,用户白名单在管理员开启了全员禁言时生效,可以运行白名单用户发出消息。 另外可以将用户移出白名单,检查自己是否在白名单中以及获取白名单列表。
//添加用户到白名单
var options = {
groupId: "groupId", //群组id
users: ["user1", "user2"], //成员id列表
success: function (resp) {},
error: function(e){}
};
conn.addUsersToGroupWhitelist(options);
//将用户从白名单移除
var options = {
groupId: "groupId", //群组id
userName: "user", //要移除的成员
success: function (resp) {},
error: function(e){}
}
conn.rmUsersFromGroupWhitelist(options)
//从服务器获取白名单成员列表
var options = {
groupId: "groupId", //群组id
success: function (resp) {},
error: function(e){}
}
conn.getGroupWhitelist(options)
//查询群成员是否是白名单用户,操作权限:app admin可查询所有用户;app user可查询自己
var options = {
groupId: "groupId", //群组id
userName: "user", //要查询的成员
success: function (resp) {},
error: function(e){}
}
conn.isGroupWhiteUser(options)
API
黑名单管理
黑名单管理包含以下处理操作:
- 将成员加入群黑名单(单个)
- 将成员加入群黑名单(批量)
- 将成员移除群组黑名单(单个)
- 将成员移除群组黑名单(批量)
- 获取群组黑名单
所有处理操作的示例下面会一一说明。
将成员加入群黑名单(单个)
调用groupBlockSingle
将单个成员加入群组黑名单,示例如下:
var options = {
groupId: Demo.selected, // 群组ID
username: username, // 将要被加入黑名单的用户名
success: function (resp) {
console.log("Response: ", resp);
},
error: function(e){}
};
conn.groupBlockSingle(options);
API
将成员加入群黑名单(批量)
调用groupBlockMulti
将成员批量加入群组黑名单,示例如下:
var options = {
groupId: 'Your groupId', // 群组ID
username: ['user1', 'user2', ...users], // 将要被加入黑名单的用户名数组
success: function (resp) {
console.log("Response: ", resp);
},
error: function(e){}
};
conn.groupBlockMulti(options);
API
将成员移除群组黑名单(单个)
调用removeGroupBlockSingle
将单个成员从群组黑名单中移除,示例如下:
var options = {
groupId: "Your Group ID", // 群组ID
username: "user", // 需要移除的用户名
success: function(resp){
console.log("Response: ", resp);
},
error: function(e) {};
}
conn.removeGroupBlockSingle(options);
API
将成员移除群组黑名单(批量)
调用removeGroupBlockMulti
将成员批量从群组黑名单中移除,示例如下:
var options = {
groupId: "Your Group ID", // 群组ID
username: ["user1", "user2"], // 需要移除的用户名数组
success: function(resp){
console.log("Response: ", resp);
},
error: function(e) {};
}
conn.removeGroupBlockMulti(options);
API
获取群组黑名单
调用getGroupBlacklistNew
获取群组黑名单,示例如下:
// 获取群组黑名单
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.getGroupBlacklistNew(option);
};
API
群消息
群消息包含以下处理操作:
- 发送消息
- 接收及处理消息
所有处理操作下面会一一说明。
发送消息
见发送消息。