创建群组

大约 5 分钟

创建群组

功能说明

  • 创建一个群组。
  • 支持设置群组名称、群组描述、公开群/私有群属性、群成员最大人数(包括群主)、加入公开群是否需要批准、群主、群成员和群组扩展信息。
  • 创建群组会触发发送后回调,详见 创建群组的回调事件
  • 关于 app 支持的群组数量、单个群的成员数和规模划分,详见 群组限制文档

调用频率上限

100 次/秒/App Key

请求 URL

POST https://{host}/{org_name}/{app_name}/chatgroups

关于请求 URL 中的其他参数说明,详见 请求 URL 参数介绍

请求示例

# 将 <YourAppToken> 替换为你在服务端生成的 App Token

curl -X POST 'https://XXXX/XXXX/XXXX/chatgroups'  \
-H 'Content-Type: application/json'  \
-H 'Accept: application/json'  \
-H 'Authorization: Bearer <YourAppToken>'  \
-d '{
   "groupname": "testgroup",
   "avatar": "https://www.XXXX.com/XXX/image",
   "description": "test",
   "public": true,
   "maxusers": 300,
   "owner": "testuser",
   "members": [
     "user2"
   ]
 }' 

请求 header

关于 Content-TypeAcceptAuthorization 字段的说明,详见 请求 header 参数说明

请求 body 参数

参数类型是否必需描述
groupnameString群组名称,最大长度为 128 字符。
avatarString群组头像的 URL,最大长度为 1024 字符。
descriptionString群组描述,最大长度为 512 字符。
publicBool是否是公开群。公开群可以被搜索到,用户可以申请加入公开群;私有群无法被搜索到,因此需要群主或群管理员添加,用户才可以加入。
- true:公开群;
- false:私有群。
maxusersInt群组最大成员数(包括群主)。该参数的默认值为 200,若设置的值超过 3000,将不再支持离线推送。对于超过 3000 人的群组,若希望提供离线推送功能,你必须在创建群组之前联系商务开通,否则群组创建后无法再开通该功能。
不同套餐的群组支持的最大人数的上限不同,详见 IM 套餐包功能详情
allowinvitesBool是否允许普通群成员邀请用户加入群组:
- true:普通群成员可拉人入群;
- (默认)false:只有群主和群管理员才能拉人入群。

提示


创建群组时,该参数仅对私有群有效,对公开群无效。也就是说,创建公有群(public 设置为 true)时,即使将 allowinvites 设置为 true,该设置也会自动修改为 false。如果要允许公开群的普通成员拉人入群,你在创建群后可调用修改群组信息接口将 allowinvites 的设置修改为 true

membersonlyBool用户申请入群是否需要群主或者群管理员审批。
- true:需要;
- (默认)false:不需要,用户直接进群。
该参数仅对公开群生效,因为对于私有群,用户无法申请加入群组,只能通过群成员邀请加入群。
invite_need_confirmBool邀请用户入群时是否需要被邀用户同意。
- (默认)true:是;
- false:否。
ownerString群主的用户 ID。
membersArray群成员的用户 ID 数组,不包含群主的用户 ID。该数组可包含的元素数量不超过 maxusers 的值。
customString群组扩展信息,例如可以给群组添加业务相关的标记,不要超过 8 KB。

响应示例

{
  "action": "post",
  "application": "8bXXXX02",
  "uri": "https://XXXX/XXXX/XXXX/chatgroups",
  "entities": [],
  "data": {
    "groupid": "6XXXX7"
  },
  "timestamp": 1542361730243,
  "duration": 0,
  "organization": "XXXX",
  "applicationName": "testapp"
}

响应 body 字段

如果返回的 HTTP 状态码为 200,表示请求成功。响应体中的 data 参数说明如下表所示:

参数类型描述
dataJSON实际获取的数据详情。
- groupidString群组 ID。

响应体中的其他参数说明如下表所示:

参数类型描述
actionString请求方法。
applicationString应用在系统内的唯一标识。该标识由系统生成,开发者无需关心。
uriString请求 URL。
entitiesJSON Array响应实体。
timestampLongUnix 时间戳,单位为毫秒。
durationInt从发送请求到响应的时长,单位为毫秒。
organizationString环信即时通讯 IM 为每个公司(组织)分配的唯一标识,与请求参数 org_name 相同。
applicationNameString你在环信即时通讯云控制台创建应用时填入的应用名称,与请求参数 app_name 相同。

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 错误码 了解可能的原因。

错误码

如果返回的 HTTP 状态码非 200,表示请求失败,可能提示以下错误码:

HTTP 状态码错误类型错误提示可能原因处理建议
400invalid_parameterXX must be providedXX 字段没有设置。请传入必传字段。
400invalid_parameteravatar length is too big头像字段长度达到上限修改头像字段在长度限制下。
400invalid_parametergroup must contain public field!创建群组必须设置 public 字段设置 public 字段。
400illegal_argumentgroup ID XX already exists!groupId 重复。使用新的群组 ID。
401unauthorizedUnable to authenticate (OAuth)token 不合法,可能过期或 token 错误。使用新的 token 访问。
403exceed_limitappKey:XX#XX has create too many groups!appKey 的群组数量达到上限。删除不用的群组或联系商务调整上限。关于该上限,详见 详见 IM 套餐包功能详情
403exceed_limituser XX has joined too many groups!用户加入的群组数量达到上限。退出不用的群组或联系商务调整上限。关于该上限,详见 详见 IM 套餐包功能详情
403exceed_limitmembers size is greater than max user size !创建群时加入的人数超过最大限制。调整创建群的加群人数。关于该上限,详见 详见 IM 套餐包功能详情
403group_name_violationXX is violation, please change it.群组名称不合法。使用合法的群组名称。
404resource_not_foundusername XXXX doesn't exist!创建群组时添加的用户不存在。

关于其他错误,你可以参考 响应状态码 了解可能的原因。

上次编辑于: