差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
im:web:draft:group [2019/03/22 04:55]
jk
im:web:draft:group [2019/03/22 12:52]
jk 移除
行 37: 行 37:
   * 退出群组   * 退出群组
  
 +所有处理操作的示例下面会一一说明。
 ==== 获取用户加入的群组列表 ==== ==== 获取用户加入的群组列表 ====
  
-调用getGroup函数获取当前登录用户加入的群组列表,示例如下:+调用''​getGroup''​函数获取当前登录用户加入的群组列表,示例如下:
  
 <code javascript>​ <code javascript>​
行 57: 行 58:
  
 ---- ----
 +
 +==== 分页获取公开群 ====
 +调用''​listGroups''​函数分页获取当前登录用户加入的群组列表,示例如下:
 +
 +<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>​
 +**注意:**
 +  * 如果数据还有下一页,API 返回值会包含此字段,传递此字段可获取下一页的数据,默认为''​null''​,为''​null''​时获取第一页数据
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​listGroups|listGroups]]
 +
 +----
 +
 +==== 创建群组 ====
 +
 +调用''​createGroupNew''​函数创建群组,示例代码如下
 +<code javascript>​
 +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);​
 +</​code>​
 +
 +**注意:**
 +  * 创建群组成功后会在回调函数里调用''​onCreateGroup''​函数
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​createGroupNew|createGroupNew]]
 +
 +----
 +
 +==== 获取群组信息 ====
 +
 +调用''​getGroupInfo''​根据群 id 获取群组详情,示例如下:
 +<code javascript>​
 +var options = {
 +    groupId: gid,                                //群组id
 +    success: function(resp){
 +        console.log("​Response:​ ", resp);
 +    },
 +    error: function(){}
 +};
 +conn.getGroupInfo(options);​
 +</​code>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​getGroupInfo|getGroupInfo]]
 +
 +----
 +
 +==== 修改群组信息 ====
 +
 +只有群组的管理员可以修改群组名称和群组简介,调用''​changeGroupSubject''​修改群组信息,示例如下:
 +
 +<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>​
 +
 +**注意:**
 +  * 在获取群组时候就可以获取群管理员的 ID ,从而前端可决定是否显示修改信息按钮。
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​changeGroupSubject|changeGroupSubject]]
 +
 +----
 +
 +==== 解散群组 ====
 +  * 只有群组的管理员有权限将成员踢出群组;
 +  ​
 +  * 群组解散后,所有群成员均退出该群。
 +示例如下:
 +<code javascript>​
 +// 解散一个群组
 +var dissolveGroup = function () {
 +    var option = {
 +        groupId: '​1480840256052',​
 +        success: function () {
 +            console.log('​Destroy group success!'​);​
 +        }
 +    };
 +    conn.dissolveGroup(option);​
 +};
 +</​code>​
 +**注意:**
 +  * 在获取群组时候就可以获取群管理员的ID,从而前端可决定是否显示解散按钮。
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​dissolveGroup|dissolveGroup]]
 +
 +----
 +
 +==== 退出群组 ====
 +群成员可以主动退出群组,调用''​leaveGroupBySelf''​退出群组,示例如下:
 +
 +<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>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​leaveGroupBySelf|leaveGroupBySelf]]
 +
 +----
 +
 +===== 群成员管理 =====
 +群成员管理包含以下处理操作:
 +  * 查询群组成员
 +  ​
 +  * 将成员设为管理员
 +  ​
 +  * 将管理员撤销
 +  ​
 +  * 获取群组下所有管理员
 +
 +所有处理操作的示例下面会一一说明。
 +
 +==== 查询群组成员 ====
 +调用''​listGroupMember''​函数分页获取当前群组的所有成员,示例如下:
 + 
 +<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>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​listGroupMember|listGroupMember]]
 +
 +----
 +
 +==== 将成员设为管理员 ====
 +
 +调用''​setAdmin''​将成员禁言,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        groupId: "​groupId", ​           // 群组id
 +        username: "​user", ​             // 用户名
 +        success: function(resp) {},
 +        error: function(e){}
 +    };
 +conn.setAdmin(options);​
 +</​code>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​setAdmin|setAdmin]]
 +
 +----
 +
 +==== 将管理员撤销 ====
 +
 +调用''​removeAdmin''​将成员禁言,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        groupId: "​groupId", ​            // 群组id
 +        username: "​user", ​              // 用户名
 +        success: function(resp) {},
 +        error: function (e) {}
 +     };
 +conn.removeAdmin(options);​
 +</​code>​
 +
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​removeAdmin|removeAdmin]]
 +
 +----
 +
 +==== 获取群组所有管理员 ====
 +
 +调用''​getGroupAdmin''​获取群组下所有管理员,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        groupId: "​groupId", ​                // 群组id
 +        success: function (resp) {},
 +        error: function(e){}
 +    };
 +conn.getGroupAdmin(options);​
 +</​code>​
 +
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​getGroupAdmin|getGroupAdmin]]
 +
 +----
 +
 +===== 加群处理 =====
 +加群包含以下处理操作:
 +  * 将好友加入群组
 +  ​
 +  * 向群组发出入群申请
 +  ​
 +  * 同意用户加入群
 +  ​
 +  * 拒绝用户加入群
 +
 +所有处理操作的示例下面会一一说明。
 +
 +==== 将好友加入群组 ====
 +管理员可以将好友加入群组。调用''​addGroupMembers''​将好友加入群组,示例如下:
 +
 +<code javascript>​
 +// 加好友入群
 +var addGroupMembers = function () {
 +    var option = {
 +        list: ['​asdfghj',​ '​wjy6'​],​
 +        roomId: '​1480841456167'​
 +    };
 +    conn.addGroupMembers(option);​
 +};
 +</​code>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​addGroupMembers|addGroupMembers]]
 +
 +----
 +
 +==== 向群组发出入群申请 ====
 +调用''​joinGroup''​向群组发出入群申请,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        groupId: "​groupId", ​                             // 群组ID
 +        success: function(resp) {
 +            console.log("​Response:​ ", resp);
 +        },
 +        error: function(e) {
 +            if(e.type == 17){
 +                console.log("​您已经在这个群组里了"​);​
 +            }
 +        }
 +    };
 +conn.joinGroup(options);​
 +</​code>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​joinGroup|joinGroup]]
 +
 +----
 +==== 同意用户加入群 ====
 +调用''​agreeJoinGroup''​同意用户加群请求,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        applicant: applicant, ​                         // 申请加群的用户名
 +        groupId: groupId, ​                             // 群组ID
 +        success: function(resp){
 +            console.log(resp);​
 +        },
 +        error: function(e){}
 +    };
 +conn.agreeJoinGroup(options);​
 +</​code>​
 +
 +
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​agreeJoinGroup|agreeJoinGroup]]
 +
 +----
 +
 +==== 同意用户加入群 ====
 +调用''​rejectJoinGroup''​拒绝用户加群请求,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        applicant: applicant, ​               // 申请加群的用户名
 +        groupId: groupId, ​                   // 群组ID
 +        success: function(resp){
 +            console.log(resp);​
 +        },
 +        error: function(e){}
 +    };
 +conn.rejectJoinGroup(options);​
 +</​code>​
 +
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​rejectJoinGroup|rejectJoinGroup]]
 +
 +----
 +
 +===== 禁言管理 =====
 +禁言管理包含以下处理操作:
 +  * 将成员禁言
 +  ​
 +  * 将成员解除禁言
 +  ​
 +  * 获取群组下禁言成员
 +
 +
 +所有处理操作的示例下面会一一说明。
 +
 +==== 将成员禁言 ====
 +调用''​mute''​将成员禁言,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        username: "​user", ​                     // 成员用户名
 +        muteDuration:​ 886400000, ​              // 禁言的时长,单位是毫秒
 +        groupId: "​groupId",​
 +        success: function (resp) {},
 +        error: function(e){}
 +    };
 +conn.mute(options);​
 +</​code>​
 +
 +
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​mute|mute]]
 +
 +----
 +
 +==== 将成员解除禁言 ====
 +调用''​removeMute''​将成员解除禁言,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        groupId: "​groupId", ​                 // 群组ID
 +        username: "​user", ​                   // 成员用户名
 +        success: function(resp){},​
 +        error: function (e) {}
 +    };
 +conn.removeMute(options);​
 +</​code>​
 +
 +
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​removeMute|removeMute]]
 +
 +----
 +
 +==== 获取群组下禁言成员 ====
 +调用''​getMuted''​将成员禁言,获取群组下所有被禁言的成员,示例如下:
 +
 +<code javascript>​
 +var options = {
 +            groupId: "​groupId", ​               // 群组ID
 +            success: function (resp) {},
 +            error: function(e){}
 +        };
 +conn.getMuted(options);​
 +</​code>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​getMuted|getMuted]]
 +
 +----
 +
 +===== 黑名单管理 =====
 +黑名单管理包含以下处理操作:
 +  * 将成员加入群黑名单(单个)
 +  ​
 +  * 将成员加入群黑名单(批量)
 +  ​
 +  * 将成员移除群组黑名单(单个)
 +  ​
 +  * 将成员移除群组黑名单(批量)
 + 
 +  * 获取群组黑名单
 +
 +
 +所有处理操作的示例下面会一一说明。
 +
 +==== 将成员加入群黑名单(单个) ====
 +调用''​groupBlockSingle''​将单个成员加入群组黑名单,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        groupId: Demo.selected, ​                    // 群组ID
 +        username: username, ​                        // 将要被加入黑名单的用户名
 +        success: function (resp) {
 +            console.log("​Response:​ ", resp);
 +        },
 +        error: function(e){}
 +    };
 +conn.groupBlockSingle(options);​
 +</​code>​
 +
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​groupBlockSingle|groupBlockSingle]]
 +
 +----
 +
 +==== 将成员加入群黑名单(批量) ====
 +调用''​groupBlockMulti''​将成员批量加入群组黑名单,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        groupId: 'Your groupId', ​                        // 群组ID
 +        username: ['​user1',​ '​user2',​ ...users], ​         // 将要被加入黑名单的用户名数组
 +        success: function (resp) {
 +            console.log("​Response:​ ", resp);
 +        },
 +        error: function(e){}
 +    };
 +conn.groupBlockMulti(options);​
 +</​code>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​groupBlockMulti|groupBlockMulti]]
 +
 +----
 +
 +==== 将成员移除群组黑名单(单个) ====
 +调用''​removeGroupBlockSingle''​将单个成员从群组黑名单中移除,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        groupId: "Your Group ID", ​                    // 群组ID ​             ​
 +        username: "​user", ​                            // 需要移除的用户名
 +        success: function(resp){
 +            console.log("​Response:​ ", resp);
 +        },
 +        error: function(e) {};
 +    }
 +conn.removeGroupBlockSingle(options);​
 +</​code>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​removeGroupBlockSingle|removeGroupBlockSingle]]
 +
 +----
 +
 +==== 将成员移除群组黑名单(批量) ====
 +调用''​removeGroupBlockMulti''​将成员批量从群组黑名单中移除,示例如下:
 +
 +<code javascript>​
 +var options = {
 +        groupId: "Your Group ID", ​                      // 群组ID
 +        username: ["​user1",​ "​user2"​], ​                  // 需要移除的用户名数组
 +        success: function(resp){
 +            console.log("​Response:​ ", resp);
 +        },
 +        error: function(e) {};
 +    }
 +conn.removeGroupBlockMulti(options);​
 +</​code>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​removeGroupBlockMulti|removeGroupBlockMulti]]
 +
 +----
 +
 +==== 获取群组黑名单 ====
 +调用''​getGroupBlacklist''​获取群组黑名单,示例如下:
 +
 +<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>​
 +
 +=== API ===
 +示例中使用到的 API
 +  * [[http://​webim-h5.easemob.com/​jsdoc/​out/​connection.html#​getGroupBlacklist|getGroupBlacklist]]
 +
 +----
 +
 +===== 群消息 =====
 +群消息包含以下处理操作:
 +  * 发送消息
 +
 +  * 接收及处理消息  ​
 +
 +所有处理操作下面会一一说明。
 +
 +==== 发送消息 ====
 +
 +见[[im:​web:​basics:​message#​发送消息|发送消息]]。
 +
 +==== 接收及处理消息 ====
 +  * 群聊接收及处理消息同单聊;​
 +  ​
 +  * 消息体与单聊消息根据 message 的 type 进行区分;​
 +  ​
 +  * 单聊为:chat,群聊为:groupchat,聊天室为:chatroom;​
 +  ​
 +  * 根据消息的类型进行不同处理即可。
 +
 +