群组管理
云通讯平台为开发者提供了一套完整的群组管理接口,便于开发者集成群组相关功能。群组管理相关接口包括创建群组,查询、修改群组属性,删除群组,按条件搜索公共群组,用户申请加入群组,管理员邀请用户加入群组,管理员删除成员,成员主动退出群组,设置群组成员角色接口。
创建群组
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/CreateGroup
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
name | String | 必选 | 群组名字,最长为50个字符 |
type | String | 必选 | 群组类型 0:临时组(上限100人) 1:付费普通组(上限300人) 2:付费普通组(上限500人) 3:付费普通组 (上限1000人) 4:付费VIP组(上限2000人) 注意:讨论组取值范围0、1、2,如果大于2则默认2 |
permission | String | 可选 | 申请加入模式 0:默认直接加入 1:需要身份验证 2:私有群组 缺省0 |
declared | String | 可选 | 群组公告,最长为200个字符 |
target | String | 可选 | 0:讨论组 1:群组 缺省1 |
groupDomain | String | 可选 | 用户扩展字段 |
4. 请求示例
- POST /2013-12-26/Application/20150314000000110000000000000010/IM/Group/CreateGroup?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "userName": "123",
- "name": "云通讯技术交流",
- "type": "0",
- "declared":"云通讯技术交流",
- "permission":"0"
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功)。 |
groupId | String | 必选 | 群组ID |
6. 响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- {"statusCode": "000000", "groupId": "g80000049837291"}
修改群组属性
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/ModifyGroup
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
groupId | String | 必选 | 群组ID |
permission | String | 可选 | 申请加入模式 0:默认直接加入 1:需要身份验证 2:私有群组 缺省0 |
name | String | 必选 | 群组名字,最长50个字符 |
declared | String | 可选 | 群组公告,最长为200个字符 |
groupDomain | String | 可选 | 用户扩展字段 |
4. 请求示例
- POST /2013-12-26/Application/20150314000000110000000000000010/IM/Group/ModifyGroup?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "userName":"123",
- "groupId":"g12345678",
- "name":"云通讯",
- "declared":"技术交流",
- "permission":"1"
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功)。 |
6. 响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- {"statusCode":"000000"}
删除群组
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/DeleteGroup
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
groupId | String | 必选 | 群组ID |
4. 请求示例
- POST /2013-12-26/Application/20150314000000110000000000000010/IM/Group/DeleteGroup?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "userName":"123",
- "groupId":"g80000049837291"
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功)。 |
6. 响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- {"statusCode":"000000"}
按条件搜索公共群组
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/SearchPublicGroups
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
groupId | String | 可选 | 根据群组ID查找(同时具备两个条件,查询以此为先) |
name | String | 可选 | 根据群组名查找(模糊查询,群组名称为纯数字或纯字母时需要输入完整的群名称,结果中不包含私有群组) |
4. 请求示例
- POST /2013-12-26/Application/20150314000000110000000000000010/IM/Group/SearchPublicGroup?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "userName":"123",
- "groupId":"g80019283765",
- "name":"云通讯技术交流"
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功)。 |
groupId | String | 必选 | 群组ID |
name | String | 必选 | 群组名字,最长50个字符 |
type | String | 必选 | 群组类型 0:临时组(上限100人) 1:付费普通组(上限300人) 2:付费普通组(上限500人) 3:付费普通组 (上限1000人) 4:付费VIP组(上限2000人) |
count | String | 必选 | 群组的成员人数 |
permission | String | 必选 | 申请加入模式 0:默认直接加入 1:需要身份验证 |
6. 响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- {
- "statusCode": "000000",
- "groups": {
- "group": {
- "groupId": "g80000049837921",
- "name": "云通讯",
- "count": "100",
- "type": "1",
- " permission":"0"
- }
- }
- }
查询群组属性
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/QueryGroupDetail
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
groupId | String | 必选 | 群组ID |
4. 请求示例
- POST /2013-12-26/Application/20150314000000110000000000000010/IM/Group/QueryGroupDetail?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "userName":"123",
- "groupId":"g80000049837291"
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功)。 |
name | String | 必选 | 群组名字,最长为50个字符 |
owner | String | 必选 | 群组所有者(默认为管理员) |
declared | String | 必选 | 群组公告,最长为200个字符 |
count | String | 必选 | 群组成员人数 |
dateCreated | String | 必选 | 群组创建时间,格式为时间戳 |
permission | String | 必选 | 申请加入模式 0:默认直接加入 1:需要身份验证 |
target | String | 必选 | 群组类型 0:讨论组 1:群组 |
groupDomain | String | 可选 | 用户扩展字段 |
6. 响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- {
- "statusCode": "000000",
- "name": "云通讯技术交流",
- "owner": "8002837363838",
- "type": "0",
- "declared": "云通讯技术交流",
- "permission": "0",
- "count": "100",
- "dateCreated": "2013-7-25 15:23:30"
- }
用户申请加入群组
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/JoinGroup
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
groupId | String | 必选 | 群组ID |
declared | String | 可选 | 申请理由,最长为50个字符 |
4. 请求示例
- POST /2013-12-26/Application/20150314000000110000000000000010/IM/Group/JoinGroup?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "userName": "123",
- "groupId": "g80000049837291",
- "declared": "hello"
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功)。 |
6.响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- { "statusCode": "000000" }
群组管理员邀请用户加入群组
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/InviteJoinGroup
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
groupId | String | 必选 | 群组ID |
members | list | 必选 | 被邀请成员,默认一次最多可以邀请5人,且邀请的成员必须是已经在客户端登陆过的用户。 |
confirm | String | 可选 | 是否需要被邀请人确认 0 :需要 1:不需要(自动加入群组)缺省1 |
declared | String | 可选 | 邀请理由,最长为50个字符 |
4. 请求示例
- POST /2013-03-22/Application/20150314000000110000000000000010/IM/Group/InviteJoinGroup?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "groupId": "g80000049837291",
- "members": [
- "8000000123456789",
- "8000000123456789"
- ],
- "declared": "hello",
- "confirm": "0"
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功) |
fails | List | 可选 | 加入失败详情节点 |
member | String | 可选 | 账号 |
reason | String | 可选 | 原因 |
6. 响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- {
- "statusCode": "000000",
- "fails":[
- {"member":"12332","reason":"***"},
- {"member":"45631","reason":"***"}]
- }
群组管理员删除成员
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/DeleteGroupMember
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
groupId | String | 必选 | 群组ID |
members | String | 必选 | 待删除成员 |
4. 请求示例
- POST /2013-12-26/Application/20150314000000110000000000000010/IM/Group/DeleteGroupMember?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "groupId": "g80000049837291",
- "members": ["8000000123456789","8000000123456785"]
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功)。 |
6. 响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- { "statusCode": "000000"}
成员主动退出群组
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/LogoutGroup
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
groupId | String | 必选 | 群组ID |
4. 请求示例
- POST /2013-12-26/Application/20150314000000110000000000000010/IM/Group/LogoutGroup?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "userName": "123",
- "groupId": "g80000049837291"
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功)。 |
6. 响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- {"statusCode": "000000"}
设置群组成员角色
1. 请求地址
- POST /{SoftVersion}/Application/{appId}/IM/Group/SetMemberRole
2. 请求包头
请参阅《鉴权说明》
3. 请求包体
属性 | 类型 | 约束 | 说明 |
userName | String | 必选 | 自定义账号或通讯账号 |
groupId | String | 必选 | 群组ID |
member | String | 必选 | 成员帐号 |
role | String | 必选 | 角色 0创建者 1 管理员 2 普通成员 |
4. 请求示例
- POST /2013-12-26/Application/20150314000000110000000000000010/IM/Group/SetMemberRole?sig=C1F20E7A97
- HTTP/1.1
- Accept:application/json;
- Content-Type:application/json;
- charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyM=
- {
- "userName": "123",
- "groupId": "g80000049837291",
- "member": "14128829087",
- "role": "1"
- }
5. 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功)。 |
6. 响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- {" statusCode":"000000"}