群组管理

注意:

从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);

调用listGroupMember函数分页获取当前群组的所有成员,其中pageSize表示预期每页获取的记录数,pageNum表示页码,示例如下:

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);
// 获取群组黑名单
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);
};

调用createGroupNew函数创建群组,groupname表示群组名,desc表示群组描述,members是用户名组成的数组,pub等于true时,创建为公开群,approval等于true时,加群需要审批,为false时加群无需审批。另外,创建群组成功后会在回调函数里调用onCreateGroup函数。

var options = {
            data: {
                groupname: value,
                desc: info,
                members: friendsSelected,
                public: pub,
                approval: approval,
                allowinvites: allowInvites
            },
            success: function (respData) {},
            error: function () {}
};
conn.createGroupNew(options);

调用getGroupInfo根据群id获取群组详情,groupId为群id,示例如下:

var options = {
    groupId: gid,
    success: function(resp){
        console.log("Response: ", resp);
    },
    error: function(){}
};
conn.getGroupInfo(options);

只有群组的管理员可以修改群组名称和群组简介,示例如下。

注意:在获取群组时候就可以获取群管理员的ID,从而前端可决定是否显示修改信息按钮。

// 修改群信息
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);
};

管理员可以将好友加入群组。

// 加好友入群
var addGroupMembers = function () {
    var option = {
        list: ['asdfghj', 'wjy6'],
        roomId: '1480841456167'
    };
    conn.addGroupMembers(option);
};

调用mute将成员禁言,username表示成员用户名,muteDuration表示将要被禁言的时长,单位是毫秒,示例如下:

var options = {
        username: "user",
        muteDuration: 886400000,
        groupId: "groupId",
        success: function (resp) {},
        error: function(e){}
    };
conn.mute(options);

调用removeMute将成员禁言,username表示成员用户名,groupId表示群组id,示例如下:

var options = {
        groupId: "groupId",
        username: "user",
        success: function(resp){},
        error: function (e) {}
    };
conn.removeMute(options);

调用getMuted将成员禁言,groupId表示群组id,示例如下:

var options = {
            groupId: "groupId",
            success: function (resp) {},
            error: function(e){}
        };
conn.getMuted(options);

调用setAdmin将成员禁言,groupId表示群组id,user表示用户名,示例如下:

var options = {
        groupId: "groupId",
        username: "user",
        success: function(resp) {},
        error: function(e){}
    };
conn.setAdmin(options);

调用removeAdmin将成员禁言,groupId表示群组id,user表示用户名,示例如下:

var options = {
        groupId: "groupId",
        username: "user",
        success: function(resp) {},
        error: function (e) {}
     };
conn.removeAdmin(options);

调用getGroupAdmin获取群组下所有管理员,groupId表示群组id,示例如下:

var options = {
        groupId: "groupId",
        success: function (resp) {},
        error: function(e){}
    };
conn.getGroupAdmin(options);

调用groupBlockSingle将单个成员加入群组黑名单,groupId表示群组id,username表示将要被加入黑名单的用户名,示例如下:

var options = {
        groupId: Demo.selected,
        username: username,
        success: function (resp) {
            console.log("Response: ", resp);
        },
        error: function(e){}
    };
conn.groupBlockSingle(options);

调用groupBlockMulti将成员批量加入群组黑名单,groupId表示群组id,username表示将要被加入黑名单的用户名数组,示例如下:

var options = {
        groupId: 'Your groupId',
        username: ['user1', 'user2', ...users],
        success: function (resp) {
            console.log("Response: ", resp);
        },
        error: function(e){}
    };
conn.groupBlockMulti(options);

调用removeGroupBlockSingle将单个成员从群组黑名单中移除,groupId是群组id,username是需要移除的用户名。

var options = {
        groupId: "Your Group ID",
        username: "user",
        success: function(resp){
            console.log("Response: ", resp);
        },
        error: function(e) {};
    }
conn.removeGroupBlockSingle(options);

调用removeGroupBlockMulti将成员批量从群组黑名单中移除,groupId是群组id,username是需要移除的用户名数组。

var options = {
        groupId: "Your Group ID",
        username: ["user1", "user2"],
        success: function(resp){
            console.log("Response: ", resp);
        },
        error: function(e) {};
    }
conn.removeGroupBlockMulti(options);

只有群组的管理员有权限将成员踢出群组。群组解散后,所有群成员均退出该群。

注意:在获取群组时候就可以获取群管理员的ID,从而前端可决定是否显示解散按钮。

// 解散一个群组
var dissolveGroup = function () {
    var option = {
        groupId: '1480840256052',
        success: function () {
            console.log('Destroy group success!');
        }
    };
    conn.dissolveGroup(option);
};

群成员可以主动退出群组,示例如下。

// 成员主动退出群
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);
};

调用listGroups函数分页获取当前登录用户加入的群组列表,其中limit表示预期每页获取的记录数,cursor 游标,如果数据还有下一页,API 返回值会包含此字段,传递此字段可获取下一页的数据,默认为null,为null时获取第一页数据,示例如下:

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);

调用joinGroup向群组发出入群申请,groupId表示群组的群id,示例如下:

var options = {
        groupId: "groupId",
        success: function(resp) {
            console.log("Response: ", resp);
        },
        error: function(e) {
            if(e.type == 17){
                console.log("您已经在这个群组里了");
            }
        }
    };
conn.joinGroup(options);

调用agreeJoinGroup同意用户加群请求,groupId表示群组的群id,applicant为申请加群的用户名,示例如下:

var options = {
        applicant: applicant,
        groupId: groupId,
        success: function(resp){
            console.log(resp);
        },
        error: function(e){}
    };
conn.agreeJoinGroup(options);

调用rejectJoinGroup同意用户加群请求,groupId表示群组的群id,applicant为申请加群的用户名,示例如下:

var options = {
        applicant: applicant,
        groupId: groupId,
        success: function(resp){
            console.log(resp);
        },
        error: function(e){}
    };
conn.rejectJoinGroup(options);

发送消息

群聊接收及处理消息同单聊,消息体与单聊消息根据 message 的 type 进行区分,单聊为:chat,群聊为:groupchat,聊天室为:chatroom。根据消息的类型进行不同处理即可。


上一页:好友管理

下一页:聊天室管理