功能说明
App 管理员可以通过该接口创建群组。以下视频将帮助您快速了解如何通过 REST API 创建群组:
接口调用说明
适用的群组类型
群组类型 ID | 是否支持此 REST API |
Private | 支持,同新版本中的 Work(好友工作群) |
Public | 支持 |
ChatRoom | 支持,同新版本中的 Meeting(临时会议群) |
AVChatRoom | 支持,用户(包括群主)使用 AVChatRoom(直播群)时必须操作 SDK 主动申请进群 |
Community(社群) | 支持 |
注意
如果指定群组类型为直播群(AVChatRoom):
创建此类型群时不能拉人入群,如果创建时指定了拉入的群成员会返回10007错误;用户加入此类型群的唯一方式是主动申请加群;如果指定了群主,群主每次使用 AVChatRoom(直播群)时都必须使用 SDK 接口执行进群操作。
如果指定群组类型为非直播群:
请求时如果没有指定群主也没有设置群成员列表,那么创建群数量没有限制。
请求时如果指定了群主或者设置了群成员列表,那么指定的群主或者群成员,会自动加入到该群中。
App 中同时存在的所有群组类型群数量加和超过10万,需要支付一定费用。详情请参考 价格说明。
因为用户账号可以同时加入的群组数量是有限制,用户已加入群数量达到上限时会造成加群/建群失败,详情请参考 价格说明。
请求 URL 示例
https://xxxxxx/v4/group_open_http_svc/create_group?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json
请求参数说明
参数 | 说明 |
xxxxxx | SDKAppID 所在国家/地区对应的专属域名: 中国: console.tim.qq.com 新加坡: adminapisgp.im.qcloud.com 首尔: adminapikr.im.qcloud.com 法兰克福: adminapiger.im.qcloud.com 硅谷: adminapiusa.im.qcloud.com 雅加达: adminapiidn.im.qcloud.com |
v4/group_open_http_svc/create_group | 请求接口 |
sdkappid | 创建应用时即时通信 IM 控制台分配的 SDKAppID |
identifier | |
usersig | |
random | 请输入随机的32位无符号整数,取值范围0 - 4294967295 |
contenttype | 请求格式固定值为 json |
请求频率限制
默认接口请求频率限制:200次/秒。
注意:
请求包示例
基础形式
创建群,Owner_Account 字段是选填的,如果需要指定群主,请确保 已经导入 群主 UserId 。不填则该群没有群主。
{"Owner_Account": "leckie", // 群主的 UserId(选填)"Type": "Public", // 群组类型:Private/Public/ChatRoom/AVChatRoom/Community"Name": "TestGroup" // 群名称(必填)}
仅包含群基础信息
创建群,并指定群简介、群公告等群基础信息。
{"Owner_Account": "leckie", // 群主的 UserId(选填)"Type": "Public", // 群组类型:Private/Public/ChatRoom/AVChatRoom/Community"Name": "TestGroup", // 群名称(必填)"Introduction": "This is group Introduction", // 群简介(选填)"Notification": "This is group Notification", // 群公告(选填)"FaceUrl": "http://this.is.face.url", // 群头像 URL(选填)"MaxMemberCount": 500, // 最大群成员数量(选填)"ApplyJoinOption": "FreeAccess", // 申请加群处理方式(选填)"InviteJoinOption": "FreeAccess"//邀请加群处理方式(选填)}
仅包含群成员信息
创建群,并指定初始化群成员列表,群成员列表在请求包说明表中有描述。初始化成员时仅支持设置 Member_Account 和 Role 字段。
{"Name": "TestGroup", // 群名称(必填)"Type": "Public", // 群组类型:Private/Public/ChatRoom/Community(不支持AVChatRoom)(必填)"MemberList": [ // 初始群成员列表,最多100个(选填){"Member_Account": "bob", // 成员(必填)"Role": "Admin" // 赋予该成员的身份,目前备选项只有 Admin(选填)},{"Member_Account": "peter"}]}
自定义群组 ID
为了使得群组 ID 更加简单,腾讯云支持 App 在通过 REST API 创建群组时自定义群组 ID。
{"Owner_Account": "leckie", // 群主的 UserId(选填)"Type": "Public", // 群组类型:Private/Public/ChatRoom/AVChatRoom/Community(必填)"GroupId": "MyFirstGroup", // 用户自定义群组 ID(选填)"Name": "TestGroup" // 群名称(必填)}
仅包含群维度自定义信息
创建群,并指定群维度的自定义字段。AppDefineData 默认是没有的,可以通过 即时通信 IM 控制台 进行配置,详见请求包字段说明表。
{"Name": "TestGroup", // 群名称(必填)"Type": "Public", // 群组类型:Private/Public/ChatRoom/AVChatRoom/Community(必填)"AppDefinedData": [ // 群组维度的自定义字段(选填){"Key": "GroupTestData1", // App 自定义的字段 Key"Value": "xxxxx" // 自定义字段的值},{"Key": " GroupTestData2","Value": "abc\\u0000\\u0001" // 自定义字段支持二进制数据}]}
仅包含群成员维度自定义信息
创建群,并指定群成员维度的自定义字段。AppMemberDefinedData 默认是没有的,可以通过 即时通信 IM 控制台 进行配置后使用,详见 请求包字段说明表。
{"Owner_Account": "leckie", // 群主的 UserId(选填)"Type": "Public", // 群组类型:Private/Public/ChatRoom/Community(不支持AVChatRoom)(必填)"Name": "TestGroup", // 群名称(必填)"MemberList": [{"Member_Account":"bob","AppMemberDefinedData":[ // 群成员维度自定义字段(选填){"Key": "MemberDefined1", // 群成员维度自定义的 Key"Value": "MemberData1" // 群成员维度自定义字段值},{"Key": "MemberDefined2","Value": "MemberData2"}]},{"Member_Account":"peter","AppMemberDefinedData":[{"Key": "MemberDefined1","Value": "MemberData1"},{"Key": "MemberDefined2","Value": "MemberData2"}]}]}
仅包含支持话题参数形式
创建群组,并指定其类型为社群且支持话题。
{"Type": "Community", //群组类型 (必填)"Name": "TestCommunityGroup", //群组名称 (必填)"SupportTopic": 1 //是否支持话题选项, 1代表支持,0代表不支持}
ALL IN ONE
{"Owner_Account": "leckie", // 群主的 UserId(选填)"Type": "Public", // 群组类型:Private/Public/ChatRoom/Community(不支持AVChatRoom)(必填)"GroupId":"MyFirstGroup", // 用户自定义群组 ID(选填)"Name": "TestGroup", // 群名称(必填)"Introduction": "This is group Introduction", // 群简介(选填)"Notification": "This is group Notification", // 群公告(选填)"FaceUrl": "http://this.is.face.url", // 群头像 URL(选填)"MaxMemberCount": 500, // 最大群成员数量(选填)"ApplyJoinOption": "FreeAccess", // 申请加群处理方式(选填)"AppDefinedData": [ // 群组维度的自定义字段(选填){"Key": "GroupTestData1", // App 自定义的字段 Key"Value": "xxxxx" // 自定义字段的值},{"Key": "GroupTestData2","Value": "abc\\u0000\\u0001" // 自定义字段支持二进制数据}],"MemberList": [ // 初始群成员列表,最多100个(选填){"Member_Account": "bob", // 成员(必填)"Role": "Admin", // 赋予该成员的身份,目前备选项只有 Admin(选填)"AppMemberDefinedData":[ // 群成员维度自定义字段(选填){"Key":"MemberDefined1", // 群成员维度自定义的 Key"Value":"MemberData1" // 群成员维度自定义字段值},{"Key":"MemberDefined2","Value":"MemberData2"}]},{"Member_Account": "peter","AppMemberDefinedData":[{"Key":"MemberDefined1","Value":"MemberData1"},{"Key":"MemberDefined2","Value":"MemberData2"}]}]}
请求包字段说明
字段 | 类型 | 属性 | 说明 |
Owner_Account | String | 选填 | |
Type | String | 必填 | 群组形态,包括 Public(陌生人社交群),Private(即 Work,好友工作群),ChatRoom(即 Meeting,会议群),AVChatRoom(直播群),Community(社群) |
GroupId | String | 选填 | 为了使得群组 ID 更加简单,便于记忆传播,腾讯云支持 App 在通过 REST API 创建群组时 自定义群组 ID |
Name | String | 必填 | 群名称,最长100字节,使用 UTF-8 编码,1个汉字占3个字节 |
Introduction | String | 选填 | 群简介,最长400字节,使用 UTF-8 编码,1个汉字占3个字节 |
Notification | String | 选填 | 群公告,最长400字节,使用 UTF-8 编码,1个汉字占3个字节 |
FaceUrl | String | 选填 | 群头像 URL,最长500字节 |
MaxMemberCount | Integer | 选填 | 最大群成员数量,缺省时的默认值:付费套餐包上限,例如体验版是20,如果升级套餐包,需按照修改群基础资料修改这个字段 |
ApplyJoinOption | String | 选填 | 仅当创建支持申请加群的 群组 时,该字段有效。 |
InviteJoinOption | String | 选填 | 邀请加群处理方式,包含 FreeAccess (直接邀请用户进群,不需要审批等操作), NeedPermission 需要群管理员或者群主审批, DisableInvite 不支持 SDK 邀请进群, 该选项 AVChatRoom 群类型不支持 |
AppDefinedData | Array | 选填 | |
MemberList | Array | 选填 | |
AppMemberDefinedData | Array | 选填 | |
SupportTopic | Integer | 选填 | 是否支持话题选项,此字段只针对社群有效 |
EnablePermission | Integer | 选填 | 仅支持话题的社群可以设置该字段
是否启用权限组作为权限判断依据 0:不启用 1:启用 |
DefaultPermission | Integer | 选填 | 仅启用权限组作为权限判断依据的群可以设置该字段 群成员在该群中的默认权限 |
应答包体示例
基础形式、仅包含群基础信息、仅包含群成员信息和仅包含自定义信息:
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0,"GroupId": "@TGS#2J4SZEAEL"}
仅包含支持话题参数形式:
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0,"GroupId": "@TGS#_@TGS#cRDH3HIM62CP","HugeGroupFlag": 0,"Type": "Community"}
自定义群组 ID 和 ALL IN ONE:
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0,"GroupId": "MyFirstGroup"}
应答包字段说明
字段 | 类型 | 说明 |
ActionStatus | String | 请求处理的结果: OK 表示处理成功 FAIL 表示失败 |
ErrorCode | Integer | 错误码: 0表示成功 非0表示失败 |
ErrorInfo | String | 错误信息 |
GroupId | String | 创建成功之后的群 ID,由即时通信 IM 后台分配 |
错误码说明
除非发生网络错误(例如502错误),否则该接口的 HTTP 返回码均为200。真正的错误码,错误信息是通过应答包体中的 ErrorCode、ErrorInfo 来表示的。
公共错误码(60000到79999)参见 错误码 文档。
本 API 私有错误码如下:
错误码 | 含义说明 |
10002 | 服务器内部错误,请重试 |
10003 | 请求命令字非法 |
10004 | 参数非法,请根据错误描述检查请求是否正确 |
10005 | 请求包中导入的成员数量超过100,请减少 MemberList 参数中导入的成员数量 |
10006 | 操作频率限制,请尝试降低调用的频率。常见于单日净增群量过多,获取 App 中所有群组操作过于频繁 |
10007 | 操作权限不足,请根据错误信息检查请求参数。例如,指定的群组类型不允许拉人入群,但在请求包中填写了 MemberList |
10008 | |
10016 | App 后台通过第三方回调拒绝本次操作,请检查您的回调服务“创建群组之前回调”的返回值 |
10021 | 群组 ID 已被其他人使用,请选择其他的群组 ID |
10025 | 该群组 ID 已经由您自己使用过,请您先解散该群组或者选择其他的群组 ID |
10036 | |
10037 | |
10038 | |
10058 | 表示体验版超过100个群的限制,需要购买套餐包提升建群数量限制。 |