差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

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>​