====== 管理频道以及频道成员 ======
频道(Channel)是一个社区下不同子话题的讨论分区,因此一个社区下可以有多个频道。社区创建时会自动创建默认频道,该频道中添加了所有社区成员,用于承载各种系统通知。从可见性角度看,频道社区分为公开和私密频道;从功能角度看,频道分为文字频道和语聊频道。用户可以根据自己需求创建频道。
**超级社区中的频道基于即时通讯 IM 的群组或聊天室(频道 ID 为群组 ID 或聊天室 ID)创建,删除群组或聊天室时需注意以下几点:**
1. **在环信控制台或者调用 RESTful API 或者通过客户端删除群组或聊天室、群组或聊天室加人、踢人等操作时请谨慎操作,需确保操作的群组或者聊天室不是超级社区使用的。** \\ 2. **如果将超级社区使用的频道对应的群组或者聊天室删除,会出现数据不一致情况,导致用户加入不了社区、频道、在频道内发不了消息等情况发生。** \\ 3. **在清理群组或者聊天室数据时,需先确认要删除的群组 ID 或聊天室 ID 与超级社区的频道 ID 是否一致。你可以调用[[#查询指定频道详情|获取频道详情 API]] 确认要删除的群组或聊天室是否为超级社区的频道。如果是,请不要进行删除。** \\ 4. **如果需要清理超级社区数据,需调用[[https://docs-im.easemob.com/ccim/circle/rest/serverapi#删除社区|删除社区]]和[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#删除频道|删除频道]]等 API。**
===== 前提条件 =====
要调用环信即时通讯 RESTful API,请确保满足以下要求:
* 已在环信即时通讯控制台 [[https://docs-im-beta.easemob.com/product/enable_and_configure_IM.html|开通配置环信即时通讯 IM 服务]]。
* 了解环信 IM RESTful API 的调用频率限制,详见 [[http://docs-im-beta.easemob.com/product/limitationapi.html|接口频率限制]]。
===== 公共参数 =====
==== 请求参数 ====
^参数 ^类型 ^是否必需 ^描述 ^
|''%%host%%'' |String |是 |环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见[[http://docs-im-beta.easemob.com/product/enable_and_configure_IM.html#获取环信即时通讯-im-的信息|获取环信即时通讯 IM 的信息]]。 |
|''%%org_name%%'' |String |是 |环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见[[http://docs-im-beta.easemob.com/product/enable_and_configure_IM.html#获取环信即时通讯-im-的信息|获取环信即时通讯 IM 的信息]]。 |
|''%%app_name%%'' |String |是 |你在环信即时通讯云控制台创建应用时填入的应用名称。详见[[http://docs-im-beta.easemob.com/product/enable_and_configure_IM.html#获取环信即时通讯-im-的信息|获取环信即时通讯 IM 的信息]]。 |
|''%%server_id%%'' |String |是 |社区 ID。 |
|''%%channel_id%%'' |String |是 |频道 ID。 |
|''%%user_id%%'' |String |是 |用户 ID。 |
|''%%role%%'' |Int |是 |频道成员的角色:
- ''%%0%%'':频道所有者;
- ''%%1%%'':频道的普通成员。 |
对于分页获取数据列表,若查询参数中的 ''%%limit%%'' 和 ''%%cursor%%'' 均未设置,则服务器返回首页的数据列表。
==== 响应参数 ====
^参数 ^类型 ^描述 ^
|''%%owner%%'' |String |频道所有者。 |
|''%%name%%'' |String |频道名称。 |
|''%%type%%'' |Int |频道类型:
- ''%%0%%'':公开频道;
- ''%%1%%'':私密频道。 |
|''%%mode%%'' |Int |频道模式:
- ''%%0%%'':文字频道;
- ''%%1%%'':语聊频道。 |
|''%%description%%'' |String |频道描述。 |
|''%%custom%%'' |String |频道的扩展信息。 |
|''%%max_users%%'' |Long |频道最大成员数量。 |
|''%%rtc_name%%'' |String |RTC 频道名称。该名称在加入 RTC 频道时使用。若使用声网 RTC,该名称还用于[[https://docs.agora.io/cn/voice-call-4.x/token_server_android_ng?platform=Android|生成 RTC Token]]。
该参数仅在创建语聊频道时返回,若创建语聊房频道时未指定 ''%%rtc_name%%'',服务器将使用频道 ID 作为该参数的值返回。 |
|''%%current_users_count%%'' |Int |当前在频道中的成员数,仅在获取语聊房频道详情时返回。 |
|''%%default_channel%%'' |Int |是否为社区的默认频道:
- ''%%0%%'':否;
- ''%%1%%'':是。 |
|''%%user_id%%'' |String |环信用户 ID。 |
|''%%role%%'' |Int |频道成员的角色:
- ''%%0%%'':频道所有者;
- ''%%1%%'':频道的普通成员。 |
|''%%created%%'' |Long |频道的创建时间,Unix 时间戳,单位为毫秒。 |
|''%%server_id%%'' |String |社区 ID。 |
|''%%channel_category_id%%'' |String |频道分组 ID。 |
|''%%channel_id%%'' |String |频道 ID。 |
===== 认证方式 =====
环信即时通讯 RESTful API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,都必须在请求头部填入如下 ''%%Authorization%%'' 字段:
Authorization:''%%Bearer ${YourAppToken}%%''
为提高项目的安全性,环信使用 Token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 [[http://docs-im-beta.easemob.com/document/server-side/easemob_app_token.html|使用环信 App Token 鉴权]]。
===== 创建和管理频道 =====
==== 创建频道 ====
每个社区最多可以创建 100 个频道。一个频道只能加入一个频道分组。
=== HTTP 请求 ===
POST https://{host}/{org_name}/{app_name}/circle/channel
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Content-Type%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
== 请求 body ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%server_id%%'' |String |是 |社区 ID。 |
|''%%channel_category_id%%'' |String |否 |频道分组 ID。如果指定频道分组 ID,创建的频道将添加到该分组下;若不指定,则频道添加至社区默认频道分组中。 |
|''%%name%%'' |String |是 |频道名称,长度不能超过 50 个字符。 |
|''%%type%%'' |Int |否 |频道类型:
- (默认)''%%0%%'':公开频道;
- ''%%1%%'':私密频道。 |
|''%%mode%%'' |Int |否 |频道模式:
- (默认)''%%0%%'':文字频道;
- ''%%1%%'':语聊频道。 |
|''%%maxUsers%%'' |Long |否 |频道最大成员数量。
- 对于语聊频道(即 ''%%mode%%'' 为 ''%%1%%''),该参数的取值范围为 [1,20],默认值为 ''%%8%%''。
- 对于文字频道,该参数的取值范围为 [1,2000],默认值为 ''%%2000%%''。如需要提高上限请联系商务。 |
|''%%description%%'' |String |否 |频道描述,长度不能超过 500 个字符。 |
|''%%custom%%'' |String |否 |频道扩展信息,例如可以给社区添加业务相关的标记,长度不能超过 500 个字符。 |
|''%%rtc_name%%'' |String |否 |RTC 频道名称,长度不能超过 50 个字符。该名称在加入 RTC 频道时使用,仅在创建语聊频道时返回。若使用声网 RTC,该名称还用于[[https://docs.agora.io/cn/voice-call-4.x/token_server_android_ng?platform=Android|生成 RTC Token]]。
若创建语聊频道时未指定 ''%%rtc_name%%'',服务器将使用频道 ID 作为该参数的值返回。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%channel%%'' |JSON |频道详情。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
创建 IM 频道:
将 替换为你在服务端生成的 App Token
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel'
-d '{
"server_id" : "19VM9oPBasxxxxxx0tvWViEsdM",
"name" : "chat channel",
"type" : 0,
"mode":0,
"max_users" : 200,
"description" : "chat Channel",
"custom" : "custom"
}'
创建语聊房频道:
将 替换为你在服务端生成的 App Token
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel'
-d '{
"server_id" : "19KM9oPBasxxxxxx0tvWViVhgk",
"name" : "voice chatroom channel",
"type" : 0,
"mode":1,
"max_users" : 10,
"description" : "voice chatroom Channel",
"custom" : "custom",
"rtc_name" : "150986"
}'
== 响应示例 ==
创建 IM 频道的响应:
{
"code": 200,
"channel": {
"owner": "user1",
"name": "chat channel",
"type": 0,
"mode": 0,
"description": "chat channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2059xxxxxx1542",
"max_users": 200,
"default_channel": 0
},
"channel_id": "2059xxxxxx1542"
}
创建语聊房频道的响应:
{
"code": 200,
"channel": {
"owner": "user1",
"name": "voice chatroom Channel",
"type": 0,
"mode": 1,
"description": "voice chatroom Channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2059xxxxxx1590",
"max_users": 10,
"rtc_name" : "150986",
"default_channel": 0
},
"channel_id": "2059xxxxxx1590"
}
==== 修改频道信息 ====
修改指定频道的信息。
=== HTTP 请求 ===
PUT https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}?serverId={server_id}
== 路径参数 ==
参数及描述详见 [[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需^描述 ^
|''%%Content-Type%%'' |String|是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Accept%%'' |String|是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%''|String|是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。|
== 请求 body ==
^参数 ^类型 ^是否必需^描述 ^
|''%%name%%'' |String|否 |频道名称,长度不能超过 50 个字符。 |
|''%%type%%'' |Int |否 |频道类型:
- ''%%0%%'':公开频道;
- ''%%1%%'':私密频道。 |
|''%%maxUsers%%'' |Long |否 |频道最大成员数量。
- 对于语聊房频道,该参数的取值范围为 [1,20]。
- 对于其他模式的频道,该参数的取值范围为 [1,2000],如需要提高上限请联系商务。 |
|''%%description%%''|String|否 |频道描述,长度不能超过 500 个字符。 |
|''%%custom%%'' |String|否 |频道的扩展信息,例如可以给社区添加业务相关的标记,长度不能超过 500 个字符。 |
|''%%rtc_name%%'' |String|否 |目前该名称用于使用声网 RTC 时,生成 Token 以及端上加入声网 RTC 频道时使用,长度不能超过 50 个字符。该字段目前仅在修改语聊房频道时才有效。若创建语聊房频道时未指定 ''%%rtc_name%%'',服务器将使用频道 ID 作为 ''%%rtc_name%%'' 的值返回。|
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%channel%%'' |Json |频道详情。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX' -d '{
"name" : "chat channel",
"max_users" : 200,
"description" : "chat Channel",
"custom" : "custom"
}'
=== 响应示例 ===
{
"code": 200,
"channel": {
"owner": "user1",
"name": "chat channel",
"type": 0,
"mode": 0,
"description": "chat channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2059xxxxxx1542",
"max_users": 200,
"default_channel": 0
}
}
==== 查询指定频道详情 ====
查询指定的频道详情。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}?serverId={server_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%channel%%'' |JSON |频道详情。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel?serverId=XXX'
== 响应示例 ==
查询 IM 频道的响应:
{
"code": 200,
"channel": {
"owner": "user1",
"name": "chat channel",
"type": 0,
"mode": 0,
"description": "chat channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2059xxxxxx1542",
"max_users": 200,
"default_channel": 0
}
}
查询语聊房频道的响应:
{
"code": 200,
"channel": {
"owner": "user1",
"name": "voice chatroom channel",
"type": 0,
"mode": 1,
"description": "voice chatroom channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2059xxxxxx1542",
"rtc_name" : "150986",
"max_users": 10,
"current_users_count" : 2,
"default_channel": 0
}
}
==== 获取单个社区下的所有公开频道 ====
分页获取单个社区下的所有公开频道。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/channel/public?serverId={server_id}&limit={limit}&cursor={cursor}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否所需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
|''%%limit%%'' |Int |否 |每页获取的频道数量。取值范围为 [1,20],默认值为 ''%%20%%''。该参数仅在分页查询时设置。 |
|''%%cursor%%'' |String |否 |游标,指定查询的开始位置。该参数仅在分页查询时设置。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%count%%'' |Int |获取到的频道数量。 |
|''%%channels%%'' |List |获取到的频道详情列表。 |
|''%%cursor%%'' |String |游标,指定下次查询的起始位置。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/public?serverId=XXX&limit=1&cursor=XXX'
== 响应示例 ==
{
"code": 200,
"count": 1,
"channels": [
{
"owner": "user1",
"name": "chat channel",
"type": 0,
"mode": 0,
"description": "chat channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2059xxxxxx1542",
"max_users": 200,
"default_channel": 0
}
],
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aXXXXXXXXXXXXXX"
}
==== 获取用户在社区创建的频道列表 ====
查询用户在社区创建的频道列表。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/channel/user/{user_id}/created/channels?serverId={server_id}&limit={limit}&cursor={cursor}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
|''%%limit%%'' |Int |否 |每页获取的频道数量。取值范围为 [1,20],默认值为 ''%%20%%''。该参数仅在分页查询时设置。 |
|''%%cursor%%'' |String |否 |游标,指定数据查询的开始位置。该参数仅在分页查询时设置。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${YourAppToken}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%count%%'' |Int |获取到的频道数量。 |
|''%%channels%%'' |List |获取到的频道详情列表。 |
|''%%cursor%%'' |String |游标,指定下次查询的开始位置。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/user/XXX/created/channels?serverId=XXX&limit=1&cursor=XXX'
== 响应示例 ==
{
"code": 200,
"count": 1,
"channels": [
{
"owner": "user1",
"name": "chat channel",
"type": 0,
"mode": 0,
"description": "chat channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2059xxxxxx1542",
"max_users": 200,
"default_channel": 0
}
],
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aXXXXXXXXXXXXXX"
}
==== 获取单个用户已加入的频道列表 ====
分页获取单个用户已加入的频道列表,包括公开和私密频道。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/channel/user/joined/list?userId={user_id}&serverId={server_id}&limit={limit}&cursor={cursor}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否所需 ^描述 ^
|''%%user_Id%%'' |String |是 |用户 ID。 |
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
|''%%limit%%'' |Int |否 |每页获取的频道数量。取值范围为 [1,20],默认值为 ''%%20%%''。该参数仅在分页查询时设置。 |
|''%%cursor%%'' |String |否 |游标,指定数据查询的开始位置。该参数仅在分页查询时设置。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%channels%%'' |List |获取到的频道详情列表。 |
|''%%count%%'' |Int |获取到的频道数量。 |
|''%%cursor%%'' |String |游标,指定下次查询的开始位置。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/user/joined/list?userId=XXX&serverId=XXX&limit=1&cursor=XXX'
== 响应示例 ==
{
"code": 200,
"count": 1,
"channels": [
{
"owner": "user1",
"name": "chat channel",
"type": 0,
"mode": 0,
"description": "chat channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2059xxxxxx1542",
"max_users": 200,
"default_channel": 0
}
],
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aXXXXXXXXXXXXXX"
}
==== 获取单个社区下的所有私密频道 ====
分页获取单个社区下的所有私密频道。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/channel/private?serverId={server_id}&limit={limit}&cursor={cursor}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否所需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
|''%%limit%%'' |Int |否 |每页获取的私密频道数量。取值范围为 [1,20],默认值为 ''%%20%%''。该参数仅在分页查询时设置。 |
|''%%cursor%%'' |String |否 |游标,指定查询的开始位置。该参数仅在分页查询时设置。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%count%%'' |Int |获取到的频道数量。 |
|''%%channels%%'' |List |获取到的私密频道详情列表。 |
|''%%cursor%%'' |String |游标,指定下次查询的开始位置。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/private?serverId=XXX&limit=1&cursor=XXX'
== 响应示例 ==
{
"code": 200,
"count": 1,
"channels": [
{
"owner": "user1",
"name": "private chat channel",
"type": 1,
"mode": 0,
"description": "private chat channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2065xxxxxx1590",
"max_users": 100,
"default_channel": 0
}
],
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aXXXXXXXXXXXXXX"
}
==== 删除频道 ====
删除指定的频道。
=== HTTP 请求 ===
DELETE https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}?serverId={server_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否所需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X DELETE -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX?serverId=XXX'
== 响应示例 ==
{
"code": 200
}
===== 发送消息 =====
通过 RESTful API 在频道中发送消息与在群组中发送消息的方式类似,唯一的区别在于请求体中的 ''%%to%%'' 参数需要设置为频道 ID,并且发送的消息不会写入会话列表。详见 [[http://docs-im-beta.easemob.com/document/server-side/message.html#发送群聊消息|发送群聊消息]]。
===== 管理消息 Reaction =====
==== 添加消息 Reaction ====
添加消息 Reaction。
=== HTTP 请求 ===
POST https://{host}/{org_name}/{app_name}/circle/reaction/user/{user_id}
== 路径参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%user_id%%'' |String |是 |用户 ID。 |
其他参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Content-Type%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
== 请求 body ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%user_id%%'' |String |是 |用户 ID。 |
|''%%message_id%%'' |String |是 |消息 ID。 |
|''%%message%%'' |String |是 |表情 ID,与客户端一致。长度不可超过 128 个字符。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%reaction_id%%'' |String |Reaction ID。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/reaction'
-d '{
"user_id" : "user1",
"message_id" : "131345390",
"message" : "message123456"
}'
== 响应示例 ==
{
"code" : 200,
"reaction_id" : "15890012560"
}
==== 获取指定消息的 Reaction ====
获取指定消息的 Reaction。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/reaction/user/{user_id}?msgIdList={message_id}&channelId={channel_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%msgIdList%%'' |String |是 |Reaction 所属消息的 ID。 |
|''%%channelId%%'' |String |是 |消息所属频道的 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%count%%'' |Int |Reaction 数量。 |
|''%%reactions.msgId%%'' |String |Reaction 所属消息的 ID。 |
|''%%reactionList%%'' |List |Reaction 列表及其详细信息。 |
|''%%reactionList.reactionId%%'' |String |Reaction ID。 |
|''%%reactionList.message%%'' |String |Reaction 名称。 |
|''%%reactionList.state%%'' |Bool |发送该请求的用户是否向消息添加了 Reaction:
- ''%%true%%'':是;
- ''%%false%%'':否。 |
|''%%reactionList.count%%'' |Int |向消息添加了该 Reaction 的用户数量。 |
|''%%reactionList.userList%%'' |List |添加了该 Reaction 的用户 ID 列表。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X DELETE -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/reaction/user/XXX?msgIdList=XXX&channelId=XXX'
== 响应示例 ==
{
"code":200,
"count" : 1,
"reactions":[
{
"msgId":"131345390",
"reactionList":[
{
"reactionId":"944330310986837168",
"message":"message123456",
"count":2,
"state":"该用户是否追加了此 reaction",
"userList":[
"user1",
"user2"
]
}
]
}
]
}
==== 删除指定消息的 Reaction ====
删除指定消息的 Reaction。
=== HTTP 请求 ===
DELETE https://{host}/{org_name}/{app_name}/circle/reaction/user/{user_id}?messageId={message_id}&message={message}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%message_id%%'' |String |是 |Reaction 所属消息的 ID。 |
|''%%message%%'' |String |是 |要移除的表情的 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X DELETE -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/reaction/user/XXX?messageId=XXX&message=XXX'
== 响应示例 ==
{
"code" : 200
}
===== 管理频道成员 =====
==== 将用户加入频道 ====
将用户加入频道。
=== HTTP 请求 ===
POST https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}/join?userId={user_id}&serverId={server_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%user_id%%'' |String |是 |用户 ID。 |
|''%%server_id%%'' |String |是 |社区 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%channel%%'' |JSON |频道详情。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X POST -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX/join?userId=XXX&serverId=XXX'
== 响应示例 ==
{
"code": 200,
"channel": {
"owner": "user1",
"name": "chat channel",
"type": 0,
"mode": 0,
"description": "chat channel",
"custom": "custom",
"created": 1675845650856,
"server_id": "19VM9oPBasxxxxxx0tvWViEsdM",
"channel_category_id": "77a9860xxxxxx2b54881025861c",
"channel_id": "2059xxxxxx1542",
"max_users": 200,
"default_channel": 0
}
}
==== 将成员移出频道 ====
将指定成员移出频道。
=== HTTP 请求 ===
POST https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}/user/remove?userId={user_id}&serverId={server_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%user_id%%'' |String |是 |用户 ID。 |
|''%%server_id%%'' |String |是 |社区 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X POST -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX/user/remove?userId=XXX&serverId=XXX'
== 响应示例 ==
{
"code": 200
}
==== 批量移除频道成员 ====
一次移除多名频道成员。如果所有被移除用户均不是频道成员,则移除失败,并返回错误。移除后,这些成员也会被移除其在该频道中加入的子区。
单个请求最多可移除 20 个频道成员。
=== HTTP 请求 ===
POST https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}/users/remove
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Content-Type%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
== 请求 body ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%server_id%%'' |String |是 |社区 ID。 |
|''%%usernames%%'' |List |是 |被移除频道成员的用户 ID 列表,不能超过 20 个。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%data%%'' |List |批量移除频道成员的信息,包含被移除的频道成员的用户 ID 和移除结果。 |
|''%%data.user%%'' |String |被移除的频道成员的用户 ID。 |
|''%%data.result%%'' |Bool |频道成员是否被成功移除:
- ''%%true%%'':移除成功;
- ''%%false%%'':移除失败。失败的原因可能是用户不在频道所属的社区中、用户不在频道中、用户为频道所有者等。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
// 将 替换为你在服务端生成的 App Token
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX/users/remove'
-d '{
"server_id" : "19VM9oPBasxxxxxx0tvWViEsdM",
"usernames" : [
"u1",
"u3",
"u5"
]
}'
== 响应示例 ==
{
"code": 200,
"data": [
{
"user": "u1",
"result": true
},
{
"user": "u5",
"result": true
},
{
"user": "u3",
"result": true
}
]
}
==== 查询用户是否在频道 ====
查询用户是否在频道中。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}/user/{user_id}?serverId={server_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否所需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%result%%'' |Boolean |查询结果:
- ''%%true%%'':用户在频道中;
- ''%%false%%'':用户不在频道中。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX/user/XXX?serverId=XXX'
== 响应示例 ==
{
"code": 200,
"result": true
}
==== 查询频道中指定成员的社区角色 ====
查询频道中指定成员的社区角色。社区角色包社区所有者、管理员和普通成员。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}/user/role?serverId={server_id}&userId={user_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
|''%%user_id%%'' |Int |是 |需要查询角色的用户 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%role%%'' |Int |用户在社区中的角色:
- ''%%0%%'': 所有者;
- ''%%1%%'':管理员;
- ''%%2%%'':普通成员。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
// 将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX/user/role?serverId=XXX&userId=XXX'
== 响应示例 ==
{
"code": 200,
"role": 2
}
==== 获取频道的成员列表 ====
获取指定频道的成员列表:
* 创建语聊频道时,创建者不加入频道。因此,频道创建者不算入频道成员数量,查询频道成员列表时不返回频道创建者。
* 创建文字频道时,创建者直接加入频道。因此,频道创建者算入频道成员数量,查询频道成员列表返回频道创建者。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}/users?serverId={server_id}&limit={limit}&cursor={cursor}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否所需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
|''%%limit%%'' |Int |否 |每页获取的成员数量。取值范围为 [1,20],默认值为 ''%%20%%''。该参数仅在分页查询时设置。 |
|''%%cursor%%'' |String |否 |游标,指定查询的开始位置。该参数仅在分页查询时设置。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%count%%'' |Int |获取到的成员数量。 |
|''%%users%%'' |List |获取到的成员详情列表。 |
|''%%users.user_id%%'' |String |用户 ID |
|''%%users.role%%'' |Int |用户在频道中的角色:
- ''%%0%%'': 所有者;
- ''%%1%%'':普通成员。 |
|''%%cursor%%'' |String |游标,指定下次数据查询的起始位置。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX/users?serverId=XXX&limit=1&cursor=XXX'
== 响应示例 ==
{
"code": 200,
"count": 1,
"users": [
{
"user_id" : "user1",
"role" : 0
}
],
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aXXXXXXXXXXXXXX"
}
==== 获取频道的禁言列表 ====
获取频道的禁言列表。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}/user/mute/list?serverId={server_id}&limit={limit}&cursor={cursor}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
^参数 ^类型 ^是否所需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
其他参数及描述,详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
|''%%limit%%'' |Int |否 |每页获取频道内被禁言的用户数量。取值范围为 [1,20],默认值为 20。该参数仅在分页查询时设置。 |
|''%%cursor%%'' |String |否 |查询游标,指定下次查询的开始位置。该参数仅在分页查询时设置。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%mute_users%%'' |List |被禁言用户的详情列表。 |
|''%%mute_users.expire%%'' |Long |禁言的到期时间,Unix 时间戳,单位为毫秒。 |
|''%%mute_users.user%%'' |String |被禁言的成员的用户 ID。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX/user/mute/list?serverId=XXX&limit=1&cursor=XXX'
== 响应示例 ==
{
"code" : 200,
"count" : 2,
"mute_users" : [
{
"expire" : 86400000,
"user" : "u1"
},
{
"expire" : 86400000,
"user" : "u2"
}
]
}
==== 将成员加入频道禁言列表 ====
将成员加入频道禁言列表。成员被禁言后,将无法在频道中发送消息。
=== HTTP 请求 ===
POST https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}/user/mute
== 路径参数 ==
其它参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Content-Type%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
== 请求 body ==
^参数 ^类型 ^是否必需 ^备注 ^
|''%%server_id%%'' |String |是 |社区 ID。 |
|''%%user_id%%'' |String |是 |被禁言的成员的用户 ID。 |
|''%%duration%%'' |Long |是 |禁言时长,单位为毫秒。若不传该参数为永久禁言。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX/user/mute' -d '{
"server_id" : "19UyPIsiwxxxxxxxgLrfI9Z",
"user_id" : "u1",
"duration" : 86400
}'
== 响应示例 ==
{
"code": 200
}
==== 将成员移出频道禁言列表 ====
将成员移出频道禁言列表。成员被解除禁言后,可以在频道中发送消息。
=== HTTP 请求 ===
DELETE https://{host}/{org_name}/{app_name}/circle/channel/{channel_id}/user/mute?serverId={server_id}&userId={user_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%server_id%%'' |String |是 |频道所属社区的 ID。 |
|''%%user_id%%'' |String |是 |要禁言的用户 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
其他字段及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X DELETE -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/channel/XXX/user/mute?serverId=XXX&userId=XXX'
== 响应示例 ==
{
"code": 200
}
===== 管理子区 =====
==== 创建子区 ====
创建子区。
=== HTTP 请求 ===
POST https://{host}/{org_name}/{app_name}/circle/thread
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Content-Type%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
== 请求 body ==
^参数 ^类型 ^是否必需 ^备注 ^
|''%%channel_id%%'' |String |是 |频道 ID。 |
|''%%user_id%%'' |String |是 |用户 ID。 |
|''%%name%%'' |String |是 |子区名称。 |
|''%%message_id%%'' |String |是 |消息 ID。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%thread_id%%'' |String |子区 ID。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/thread' -d '{
"channel_id" : "156900086",
"user_id" : "user1",
"message_id" : 0,
"name" : "thread-name"
}'
== 响应示例 ==
{
"code" : 200,
"thread_id" : "15890012560"
}
==== 修改子区信息 ====
修改指定子区的信息。
=== HTTP 请求 ===
PUT https://{host}/{org_name}/{app_name}/circle/thread/{thread_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Content-Type%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
== 请求 body ==
^参数 ^类型 ^是否必需 ^备注 ^
|''%%name%%'' |String |是 |子区名称。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/thread/XXX' -d '{
"name" :"thread-name"
}'
== 响应示例 ==
{
"code" : 200
}
==== 查询子区的详情 ====
查询指定子区的详情。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/thread/{thread_id}
== 路径参数 ==
其它参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%id%%'' |String |子区 ID。 |
|''%%msgId%%'' |String |子区的父消息 ID。 |
|''%%channelId%%'' |String |子区所属频道的 ID。 |
|''%%owner%%'' |String |子区创建者的用户 ID。 |
|''%%created%%'' |Long |子区创建时间,Unix 时间戳,单位为毫秒。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[https://docs-im.easemob.com/ccim/rest/errorcode|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/thread/XXX'
== 响应示例 ==
{
"code": 200,
"id" : "1895600",
"msgId" : "198008034121000",
"channelId" : "156009089",
"owner" : "user1",
"created" : 1650856033420
}
==== 删除子区 ====
删除指定的子区。
=== HTTP 请求 ===
DELETE https://{host}/{org_name}/{app_name}/circle/thread/{thread_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|code |Int |环信超级社区的服务状态码。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X DELETE -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/thread/XXX'
== 响应示例 ==
{
"code": 200
}
==== 加入子区 ====
加入指定的子区。
=== HTTP 请求 ===
POST https://{host}/{org_name}/{app_name}/circle/thread/{thread_id}/user/join?userId={user_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X POST -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/thread/XXX/user/join?userId=XXX'
== 响应示例 ==
{
"code" : 200
}
==== 将成员移出子区 ====
将成员移出指定的子区。
=== HTTP 请求 ===
POST https://{host}/{org_name}/{app_name}/circle/thread/{thread_id}/user/remove?userId={user_id}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%user_id%%'' |String |是 |要移出子区的用户 ID。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[https://docs-im.easemob.com/ccim/rest/errorcode|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X POST -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/thread/XXX/user/remove?userId=XXX'
== 响应示例 ==
{
"code" : 200
}
==== 用户获取自己创建的子区 ====
用户获取自己创建的子区。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/thread/created?userId={user_id}&channelId={channel_id}&limit={limit}&cursor={cursor}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否所需 ^描述 ^
|''%%user_id%%'' |String |是 |用户 ID。 |
|''%%channel_id%%'' |String |是 |子区所属频道的 ID。 |
|''%%limit%%'' |Int |否 |每页获取的频道数量。取值范围为 [1,20],默认值为 ''%%20%%''。该参数仅在分页查询时设置。 |
|''%%cursor%%'' |String |否 |游标,指定查询的开始位置。该参数仅在分页查询时设置。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%threads%%'' |List |获取到的子区详情列表。 |
|''%%count%%'' |Int |获取到的子区数量。 |
|''%%threads.id%%'' |String |子区 ID。 |
|''%%threads.msgId%%'' |String |子区的父消息 ID。 |
|''%%threads.channelId%%'' |String |子区所属频道的 ID。 |
|''%%threads.owner%%'' |String |子区创建者的用户 ID。 |
|''%%threads.created%%'' |Long |子区创建时间,Unix 时间戳,单位为毫秒。 |
|''%%cursor%%'' |String |游标,指定下次查询的开始位置。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[https://docs-im.easemob.com/ccim/rest/errorcode|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/thread/created?userId=XXX&channelId=XXX&limit=1&cursor=XXX'
== 响应示例 ==
{
"code" : 200,
"threads" : [
{
"id" : "1895600",
"msgId" : "198008034121000",
"channelId" : "156009089",
"owner" : "user1",
"created" : 1650856033420
}
],
"cursor" : "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06ZGlzY29yZDo2MjI0MjEwMiM5MDoy"
}
==== 用户获取频道中的子区 ====
分页获取频道中的子区。
=== HTTP 请求 ===
curl -X GET https://{host}/{org_name}/{app_name}/circle/thread/list?channelId={channel_id}&limit={limit}&cursor={cursor}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否所需 ^描述 ^
|''%%channel_id%%'' |String |是 |子区所属频道的 ID。 |
|''%%limit%%'' |Int |否 |每页获取的子区数量。取值范围为 [1,20],默认值为 ''%%20%%''。该参数仅在分页查询时设置。 |
|''%%cursor%%'' |String |否 |游标,指定查询的开始位置。该参数仅在分页查询时设置。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%threads%%'' |List |获取到的子区详情列表。 |
|''%%threads.id%%'' |String |子区 ID。 |
|''%%threads.msgId%%'' |String |子区的父消息 ID。 |
|''%%threads.channelId%%'' |String |子区所属频道的 ID。 |
|''%%threads.owner%%'' |String |子区创建者的用户 ID。 |
|''%%threads.created%%'' |Long |子区创建时间,Unix 时间戳,单位为毫秒。 |
|''%%cursor%%'' |String |游标,指定下次查询的开始位置。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/thread/list?channelId=XXX&limit=1&cursor=XXX'
== 响应示例 ==
{
"code" : 200,
"threads" : [
{
"id" : "1895600",
"msgId" : "198008034121000",
"channelId" : "156009089",
"owner" : "user1",
"created" : 1650856033420
}
],
"cursor" : "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06ZGlzY29yZDo2MjI0MjEwMiM5MDoy"
}
==== 用户获取频道中加入的子区 ====
用户获取频道中加入的子区。
=== HTTP 请求 ===
GET https://{host}/{org_name}/{app_name}/circle/thread/joined?userId={user_id}&channelId={channel_id}&limit={limit}&cursor={cursor}
== 路径参数 ==
参数及描述详见[[https://docs-im.easemob.com/ccim/circle/rest/channelapi#公共参数|公共参数]]。
== 查询参数 ==
^参数 ^类型 ^是否所需 ^描述 ^
|''%%user_id%%'' |String |是 |用户 ID。 |
|''%%channel_id%%'' |String |是 |子区所属频道的 ID。 |
|''%%limit%%'' |Int |否 |每页获取的子区数量。取值范围为 [1,20],默认值为 ''%%20%%''。该参数仅在分页查询时设置。 |
|''%%cursor%%'' |String |否 |游标,指定查询的开始位置。该参数仅在分页查询时设置。 |
== 请求 header ==
^参数 ^类型 ^是否必需 ^描述 ^
|''%%Accept%%'' |String |是 |内容类型。请填 ''%%application/json%%''。 |
|''%%Authorization%%'' |String |是 |该管理员的鉴权 token,格式为 ''%%Bearer ${token}%%'',其中 ''%%Bearer%%'' 是固定字符,后面加英文空格,再加获取到的 token 值。 |
=== HTTP 响应 ===
== 响应 body ==
如果返回的 HTTP 状态码为 ''%%200%%'',表示请求成功,响应包体中包含以下字段:
^字段 ^类型 ^描述 ^
|''%%code%%'' |Int |环信超级社区的服务状态码。 |
|''%%threads%%'' |List |获取到的子区详情列表。 |
|''%%threads.id%%'' |String |子区 ID。 |
|''%%threads.msgId%%'' |String |子区的父消息 ID。 |
|''%%threads.channelId%%'' |String |子区所属频道的 ID。 |
|''%%threads.owner%%'' |String |子区创建者的用户 ID。 |
|''%%threads.created%%'' |Long |子区创建时间,Unix 时间戳,单位为毫秒。 |
|''%%cursor%%'' |String |游标,指定下次查询的开始位置。 |
如果返回的 HTTP 状态码非 ''%%200%%'',表示请求失败。你可以参考[[http://docs-im-beta.easemob.com/document/server-side/error.html|响应状态码]]了解可能的原因。
=== 示例 ===
== 请求示例 ==
将 替换为你在服务端生成的 App Token
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer ' 'http://XXX/XXX/XXX/circle/thread/joined?userId={user_id}&channelId=XXX&limit=1&cursor=XXX'
== 响应示例 ==
{
"code" : 200,
"threads" : [
{
"id" : "1895600",
"msgId" : "198008034121000",
"channelId" : "156009089",
"owner" : "user1",
"created" : 1650856033420
}
],
"cursor" : "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06ZGlzY29yZDo2MjI0MjEwMiM5MDoy"
}