diff --git a/docs/document/server-side/keyword_add.md b/docs/document/server-side/keyword_add.md new file mode 100644 index 00000000..fa3995ec --- /dev/null +++ b/docs/document/server-side/keyword_add.md @@ -0,0 +1,139 @@ +# 添加关键词 + +## 功能说明 + +- 添加关键词。 +- 每个应用最多可配置 10 个名单, 每个名单最多可添加 10,000 个关键词,即每个应用最多可配置 100,000 个词条。 + +**调用频率上限**:100 次/秒/App Key + +## HTTP 请求 + +```http +POST https://{host}/{org_name}/{app_name}/moderation/text/list/text/list/{list_id}/word/batch +``` + +### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------ | :----- | :------- | :---------------- | +| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `list_id` | String | 是 | 关键词名单 ID。将关键词添加到该名单中。 | + +### 请求 header + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization` | String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `wordContents` | Array | 是 | 要添加的关键词列表。 一次最多可添加 100 个关键词。 | +| `userId` | String | 是 | 添加关键词的用户 ID。 | + +## HTTP 响应 + +### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :----- | :---- | :------------------------ | +| `status` | String | 请求状态。若请求成功,返回 `OK`。 | +| `entity` | JSON | 关键词名单的详情。 | +| - `id` | String | 关键词名单 ID。 | +| - `name` | String | 关键词名单的名称。 | +| - `moderationId` | String | 审核 ID。开发者可忽略该参数。| +| - `appkey` | String | 应用的 App Key。 | +| - `scope` | String | 关键词名单的生效范围。 | +| - `tagId` | String | 标签 ID。 | +| - `fullMatch` | Boolean | 关键词与消息内容是否为精确匹配。 | +| - `disposition` | String | 对匹配关键词的消息内容的处理。 | +| - `quantity` | Int | 添加的关键词数量。 | +| - `status` | String | 关键词名单的状态。
- `ACTIVE`:开启
- `CLOSE`:关闭 | +| - `createDateTime` | Long | 关键词名单创建时间。| +| - `updateDateTime` | Long | 关键词名单修改时间。| +| - `textList` | JSON Array | 关键词列表。对于每个关键词,详情如下:
- `id`:关键词 ID;
- `word`:关键词名称;
- `userId`:添加关键词的用户 ID;
- `listId`:关键词名单 ID;
- `createDateTime`:关键词添加时间;
- `updateDateTime`:关键词修改时间。 | + +其他字段及描述详见 [公共参数](#公共参数)。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +## 示例 + +// TODO:请提供请求示例和响应示例 + +### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X POST 'https://XXXX/XXXX/XXXX/moderation/text/list/text/list/{list_id}/word/batch' \ +-H 'Content-Type: application/json' \ +-H 'Accept: application/json' \ +-H 'Authorization: Bearer ' \ +-d '{ + "wordContents": [ + "music" + ], + "userId": "user1" + }' +``` + +### 响应示例 + +```json +{ + "status": "OK", + "entity": { + "id": "string", + "name": "list_0", + "moderationId": "string", + "appkey": "XXXX#XXXX", + "scope": "ALL", + "tagId": "entertainment", + "fullMatch": true, + "disposition": "PASS", + "quantity": 0, + "status": "enabled", + "createDateTime": 0, + "updateDateTime": 0, + "textList": [ + { + "id": "1wOTD0XXXXduCtnnHJwWzyqzMye", + "word": "music", + "userId": "user1", + "listId": "list_0", + "createDateTime": 1594724293063, + "updateDateTime": 1696724294063 + } + ] + } +} +``` + +## 错误码 + +// TODO:请添加错误码,例如传入的关键词数量超限,或用户 ID 不存在等。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | + + + + + + + + + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 diff --git a/docs/document/server-side/keyword_delete.md b/docs/document/server-side/keyword_delete.md new file mode 100644 index 00000000..e768ff2e --- /dev/null +++ b/docs/document/server-side/keyword_delete.md @@ -0,0 +1,84 @@ +# 删除关键词 + +## 功能说明 + +删除关键词。 + +**调用频率上限**:100 次/秒/App Key + +## HTTP 请求 + +```http +DELETE https://{host}/{org_name}/{app_name}/moderation/text/list/(list_id)/word?wordId={wordId} +``` + +### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------ | :----- | :------- | :---------------- | +| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `list_id` | String | 是 | 关键词名单 ID。 | + +### 查询参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------- | :----- | :------- | :--------------- | +| `wordId` | String | 是 | 要删除的关键词的 ID。 | + +## HTTP 响应 + +### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :----- | :---- | :------------------------ | +| `status` | String | 请求状态。若请求成功,返回 `OK`。 | +| `entity` | Boolean | 是否删除成功:
- `true`:删除成功
- `false`:删除失败 | + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +## 示例 + +// TODO:请提供请求示例和响应示例 + +### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X DELETE 'https://XXXX/XXXX/XXXX/moderation/text/list/{list_id}/word?word=music' \ +-H 'Accept: application/json' \ +-H 'Authorization: Bearer ' \ +``` + +### 响应示例 + +```json +{ + "status": "OK", + "entity": true +} +``` + +## 错误码 + +// TODO:请添加错误码,例如,传入的名单 ID 或关键词 ID 不存在。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | + + + + + + + + + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 diff --git a/docs/document/server-side/keyword_delete_batch.md b/docs/document/server-side/keyword_delete_batch.md new file mode 100644 index 00000000..f22127ba --- /dev/null +++ b/docs/document/server-side/keyword_delete_batch.md @@ -0,0 +1,87 @@ +# 批量删除关键词 + +## 功能说明 + +批量删除关键词名单中的关键词。 + +**调用频率上限**:100 次/秒/App Key + +## HTTP 请求 + +```http +DELETE https://{host}/{org_name}/{app_name}/moderation/text/list/text/list/(list_id)/word/batch +``` + +### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------ | :----- | :------- | :---------------- | +| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `list_id` | String | 是 | 关键词名单 ID。 | + +### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :------- | :----- | :------- | :--------------- | +| `wordIds` | Array | 是 | 要删除的关键词的 ID。一次最多可删除 100 个关键词。 | + +## HTTP 响应 + +### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :----- | :---- | :------------------------ | +| `status` | String | 请求状态。若请求成功,返回 `OK`。 | +| `entity` | Int | 是否删除成功:
- `0`:删除成功
- `1`:删除失败 | + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +## 示例 + +// TODO:请提供请求示例和响应示例 + +### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X DELETE 'https://XXXX/XXXX/XXXX/moderation/text/list/text/list/{list_id}/word/batch' \ +-H 'Accept: application/json' \ +-H 'Authorization: Bearer ' \ +-d '{ + "wordIds": ["t1", "t2"] + }' +``` + +### 响应示例 + +```json +{ + "status": "OK", + "entity": 0 +} +``` + +## 错误码 + +// TODO:请添加错误码,例如传入的名单 ID 或关键词 ID 不存在。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | + + + + + + + + + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 diff --git a/docs/document/server-side/keyword_list_create.md b/docs/document/server-side/keyword_list_create.md new file mode 100644 index 00000000..97a56a2d --- /dev/null +++ b/docs/document/server-side/keyword_list_create.md @@ -0,0 +1,138 @@ +# 创建关键词名单 + +## 功能说明 + +- 创建关键词名单。 +- 关键词名单为增值服务,使用前需要在环信控制台开通,详见 [控制台文档](/product/moderation/keyword_review.html#使用关键词审核)。 +- 创建的名单会在环信控制台的 **关键词名单** 列表 (**即时通讯** > **内容审核** > **文本审核** > **关键词名单**)中展示。你可以在环信控制台编辑、删除名单或进行添加/删除关键词等操作。 +- 关键词名单在 [文本审核规则](/product/moderation/moderation_rule_config.html#设置审核规则) 中应用,详见 [环信控制台文档](/product/moderation/keyword_review.html#第四步-在文本审核规则中应用关键词名单)。 + +**调用频率上限**:100 次/秒/App Key + +## HTTP 请求 + +```http +POST https://{host}/{org_name}/{app_name}/moderation/text/list +``` + +### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------ | :----- | :------- | :---------------- | +| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | + +### 请求 header + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization` | String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `name` | String | 是 | 关键词名单的名称,不能超过 32 个字符。 | +| `scope` | String | 是 | 生效范围:
- `ALL`:对所有会话均生效;
- `CHAT`:仅对单聊会话生效;
- `GROUP`:仅对群组会话生效;
- `ROOM`:仅对聊天室会话生效; - `TAG`:仅对指定标签下的用户、群组或聊天室生效。| +| `tagId` | String | 否 | 标签 ID。该参数仅在 `scope` 为 `TAG` 时必须设置。 | +| `disposition` | String | 是 | 对匹配关键词的消息内容的审核处理:
- `PASS`:忽略,对匹配的关键词不处理。
- `REJECT`:拦截,对内容匹配关键词的消息进行拦截,不下发给接收方。
- `EXCHANGE`:替换为 `***`。| +| `fullMatch` | Boolean | 否 | 关键词与消息内容是否为精确匹配:
- `true`:是
- `false`:否 | +| `userId` | String | 否 | 创建关键词名单的用户 ID。 | +| `textContexts` | Array | 是 | 关键词。每次最多可包含 200 个关键词,每个关键词的不能超过 128 个字符。 | + +#### HTTP 响应 + +##### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :----- | :---- | :------------------------ | +| `status` | String | 请求状态。若请求成功,返回 `OK`。 | +| `entity` | JSON | 关键词名单的详情。 | +| - `id` | String | 关键词名单 ID。 | +| - `name` | String | 关键词名单的名称。 | +| - `moderationId` | String | 审核 ID。开发者可忽略该参数。| +| - `appkey` | String | 应用的 App Key。 | +| - `scope` | String | 关键词名单的生效范围。 | +| - `tagId` | String | 标签 ID。 | +| - `fullMatch` | Boolean | 关键词与消息内容是否为精确匹配。 | +| - `disposition` | String | 对匹配关键词的消息内容的处理。 | +| - `quantity` | Int | 关键词数量。 | +| - `status` | String | 关键词名单的状态:
- `ACTIVE`:开启
- `CLOSE`:关闭 | +| - `createDateTime` | Long | 关键词名单的创建时间。| +| - `updateDateTime` | Long | 关键词名单的修改时间。 | +| - `textList` | Array | 关键词列表。 | + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +#### 示例 + +// TODO:请提供请求示例和响应示例。 + +##### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X POST 'https://XXXX/XXXX/XXXX/moderation/text/list' \ +-H 'Content-Type: application/json' \ +-H 'Accept: application/json' \ +-H 'Authorization: Bearer ' \ +-d '{ + "name": "list_0", + "scope": "ALL", + "tagId": "entertainment", + "disposition": "PASS", + "fullMatch": true, + "userId": "user1", + "textContexts": ["music", "sport", "entertainment"] + }' +``` + +##### 响应示例 + +```json +{ + "status": "OK", + "entity": { + "id": "1giXXXXE7DMCqfxkiMcfciSHnoX", + "name": "list_0", + "moderationId": "c012f3d57c7XXXX63de8de2fcaed7cfe", + "appkey": "XXXX#XXXX", + "scope": "ALL", + "tagId": "entertainment", + "fullMatch": true, + "disposition": "PASS", + "quantity": 0, + "status": "enabled", + "createDateTime": 1594724293063, + "updateDateTime": 1696724294063, + "textList": ["music", "sport", "entertainment"] + } +} +``` + +#### 错误码 + +// TODO:请添加错误码 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | +| 400 | MODERATION 002 | | 请求参数错误 | | + + + + + + + + + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 diff --git a/docs/document/server-side/keyword_list_delete.md b/docs/document/server-side/keyword_list_delete.md new file mode 100644 index 00000000..c853c088 --- /dev/null +++ b/docs/document/server-side/keyword_list_delete.md @@ -0,0 +1,77 @@ +# 删除关键词名单 + +## 功能说明 + +删除关键词名单。 + +**调用频率上限**:100 次/秒/App Key + +## HTTP 请求 + +```http +DELETE https://{host}/{org_name}/{app_name}/moderation/text/list/(list_id) +``` + +### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------ | :----- | :------- | :---------------- | +| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `list_id` | String | 是 | 关键词名单 ID。 | + +## HTTP 响应 + +### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :----- | :---- | :------------------------ | +| `status` | String | 请求状态。若请求成功,返回 `OK`。 | + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +## 示例 + +// TODO:请提供请求示例和响应示例 + +### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X DELETE 'https://XXXX/XXXX/XXXX/moderation/text/list/{list_id}' \ +-H 'Content-Type: application/json' \ +-H 'Accept: application/json' \ +-H 'Authorization: Bearer ' \ +``` + +### 响应示例 + +```json +{ + "status": "OK", +} +``` + +## 错误码 + +// TODO:请添加错误码,例如传入的名单 ID 不存在。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | + + + + + + + + + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 diff --git a/docs/document/server-side/keyword_list_modify.md b/docs/document/server-side/keyword_list_modify.md new file mode 100644 index 00000000..f9d49e64 --- /dev/null +++ b/docs/document/server-side/keyword_list_modify.md @@ -0,0 +1,137 @@ +# 修改关键词名单 + +## 功能说明 + +修改关键词名单。 + +**调用频率上限**:100 次/秒/App Key + +### HTTP 请求 + +```http +PUT https://{host}/{org_name}/{app_name}/moderation/text/list/{list_id} +``` + +#### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------ | :----- | :------- | :---------------- | +| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `list_id` | String | 是 | 关键词名单 ID。 | + +#### 请求 header + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization` | String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +#### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `name` | String | 是 | 关键词名单的名称,不能超过 32 个字符。 | +| `scope` | String | 是 |生效范围:
- `ALL`:对所有会话均生效;
- `CHAT`:仅对单聊会话生效;
- `GROUP`:仅对群组会话生效;
- `ROOM`:仅对聊天室会话生效;
- `TAG`:仅对指定标签下的用户、群组或聊天室生效。| +| `tagId` | String | 否 | 标签 ID。该参数仅在 `scope` 为 `TAG` 时必须设置。 | +| `disposition` | String | 是 | 对匹配关键词的消息内容的审核处理:
- `PASS`:忽略,对匹配的关键词不处理。
- `REJECT`:拦截,对内容匹配关键词的消息进行拦截,不下发给接收方。
- `EXCHANGE`:替换为 `***`。 | +| `fullMatch` | Boolean | 否 | 关键词与消息内容是否为精确匹配:
- `true`:是
- `false`:否 | +| `userId` | String | 否 | 用户 ID。 | +| `textContexts` | Array | 是 | 关键词。一个名单中最多可包含 200 个关键词。每个关键词最多可包含 128 个字符。 | + +#### HTTP 响应 + +##### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :----- | :---- | :------------------------ | +| `status` | String | 请求状态。若请求成功,返回 `OK`。 | +| `entity` | JSON | 关键词名单的详情。 | +| - `id` | String | 关键词名单 ID。 | +| - `name` | String | 关键词名单的名称。 | +| - `moderationId` | String | 审核 ID。开发者可忽略该参数。 | +| - `appkey` | String | 应用的 App Key。 | +| - `scope` | String | 关键词名单的生效范围。 | +| - `tagId` | String | 用户标签 ID。 | +| - `fullMatch` | Boolean | 关键词与消息内容是否为精确匹配。 | +| - `disposition` | String | 对匹配关键词的消息内容的处理。 | +| - `quantity` | Int | 关键词数量。 | +| - `status` | String | 关键词名单的状态。
- `enabled`:开启
- `disabled`:关闭。 | +| - `createDateTime` | Long | 关键词名单的创建时间。 | +| - `updateDateTime` | Long | 关键词名单的修改时间。 | +| - `textList` | Array | 关键词列表。 | + +其他字段及描述详见 [公共参数](#公共参数)。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +#### 示例 + +// TODO:请提供请求示例和响应示例 + +##### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X POST 'https://XXXX/XXXX/XXXX/moderation/text/list/1giXXXXE7DMCqfxkiMcfciSHnoX' \ +-H 'Content-Type: application/json' \ +-H 'Accept: application/json' \ +-H 'Authorization: Bearer ' \ +-d '{ + "name": "list_0", + "scope": "ALL", + "tagId": "entertainment", + "disposition": "PASS", + "fullMatch": true, + "userId": "user1", + "textContexts": ["music"] + }' +``` + +##### 响应示例 + +```json +{ + "status": "OK", + "entity": { + "id": "1giXXXXE7DMCqfxkiMcfciSHnoX", + "name": "list_0", + "moderationId": "c012f3d57c7XXXX63de8de2fcaed7cfe", + "appkey": "XXXX#XXXX", + "scope": "ALL", + "tagId": "entertainment", + "fullMatch": true, + "disposition": "PASS", + "quantity": 0, + "status": "enabled", + "createDataTime": 1594724293063, + "updateDataTime": 1696724294063, + "textList": ["sport"] +} +} +``` + +#### 错误码 + +// TODO:请添加错误码 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | + + + + + + + + + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 diff --git a/docs/document/server-side/keyword_list_query.md b/docs/document/server-side/keyword_list_query.md new file mode 100644 index 00000000..0078870e --- /dev/null +++ b/docs/document/server-side/keyword_list_query.md @@ -0,0 +1,140 @@ +# 查询关键词名单 + +## 功能说明 + +查询关键词名单。 + +**调用频率上限**:100 次/秒/App Key + +### HTTP 请求 + +```http +POST https://{host}/{org_name}/{app_name}/moderation/text/list/search +``` + +#### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------ | :----- | :------- | :---------------- | +| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | + +#### 请求 header + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization` | String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +#### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `name` | String | 是 | 关键词名单的名称。 | +| `tagId` | String | 否 | 标签 ID。| +| `size` | Int | 否 | 每页返回的关键词数量,取值范围为 [1,200],默认值为 `10`。| +| `page` | Int | 否 | 当前页码,默认值为 `0`。| + +#### HTTP 响应 + +##### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :----- | :---- | :------------------------ | +| `status` | String | 请求状态。若请求成功,返回 `OK`。 | +| `entities` | JSON Array | 关键词名单的详情。 | +| - `id` | String | 关键词名单 ID。 | +| - `name` | String | 关键词名单的名称。 | +| - `moderationId` | String | 审核 ID。开发者可忽略该参数。 | +| - `appkey` | String | 应用的 App Key。 | +| - `scope` | String | 关键词名单的生效范围。 | +| - `tagId` | String | 标签 ID。 | +| - `fullMatch` | Boolean | 关键词与消息内容是否为精确匹配。 | +| - `disposition` | String | 对匹配关键词的消息内容的处理。 | +| - `quantity` | Int | 关键词数量。 | +| - `status` | | 关键词名单的状态:
- `ACTIVE`:开启
- `CLOSE`:关闭 | +| - `createDateTime` | Long | 关键词名单的创建时间。| +| - `updateDateTime` | Long | 关键词名单的修改时间。| +| `first` | Boolean | 当前页面是否为首页:
- `true`:是
- `false`:否| +| `last` | Boolean | 当前页面是否为最后一页:
- `true`:是
- `false`:否| +| `size` | Int | 当前页面返回的关键词数量。 | +| `number` | Int | 当前页码。 | +| `numberOfElements` | Int | 当前页面中获取的关键词数量。| +| `totalPages` | Int | 页面总数。| +| `totalElements` | Int | 关键词名单包含的关键词总数量。| + +其他字段及描述详见 [公共参数](#公共参数)。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +#### 示例 + +// TODO:请提供请求示例和响应示例。 + +##### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X POST 'https://XXXX/XXXX/XXXX/moderation/text/list/search' \ +-H 'Content-Type: application/json' \ +-H 'Accept: application/json' \ +-H 'Authorization: Bearer ' \ +-d '{ + "name": "list_0", + "tagId": "entertainment", + `size`:5, + `page`:0 + }' +``` + +##### 响应示例 + +```json +{ + "status": "OK", + "entities": [ + { + "id": "1giXXXXE7DMCqfxkiMcfciSHnoX", + "name": "list_0", + "moderationId": "c012f3d57c7XXXX63de8de2fcaed7cfe", + "appkey": "XXXX#XXXX", + "scope": "ALL", + "tagId": "entertainment", + "fullMatch": true, + "disposition": "PASS", + "quantity": 0, + "status": "string", + "createDateTime": 1594724293063, + "updateDateTime": 1696724294063, + } + ], + "first": "true", + "last": "false", + "size": "5", + "number": "1", + "numberOfElements": "1", + "totalPages": "1", + "totalElements": "100", +} +``` + +#### 错误码 + +// TODO:请添加错误码 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | + + + + + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 \ No newline at end of file diff --git a/docs/document/server-side/keyword_modify.md b/docs/document/server-side/keyword_modify.md new file mode 100644 index 00000000..2827243e --- /dev/null +++ b/docs/document/server-side/keyword_modify.md @@ -0,0 +1,115 @@ +# 修改关键词 + +## 功能说明 + +修改单个关键词。 + +**调用频率上限**:100 次/秒/App Key + +## HTTP 请求 + +```http +PUT https://{host}/{org_name}/{app_name}/moderation/text/list/{list_id}/word +``` + +### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------ | :----- | :------- | :---------------- | +| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `list_id` | String | 是 | 关键词名单 ID。要修改该名单中的关键词。 | + +### 请求 header + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization` | String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `id` | String | 是 | 要修改的关键词 ID。 | +| `word` | String | 是 | 修改后的关键词。| +| `userId` | String | 是 | 修改关键词的用户 ID。| + +## HTTP 响应 + +### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :----- | :---- | :------------------------ | +| `status` | String | 请求状态。若请求成功,返回 `OK`。 | +| `entity` | JSON | 关键词的详情。 | +| - `id` | String | 关键词 ID。 | +| - `word` | String | 修改后的关键词。 | +| - `userId` | String | 修改关键词的用户 ID。 | +| - `listId` | String | 关键词名单 ID。 | +| - `createDateTime` | Long | 关键词的创建时间。 | +| - `updateDateTime` | Long | 关键词的修改时间。| + +其他字段及描述详见 [公共参数](#公共参数)。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +## 示例 + +### 请求示例 + +// TODO:提供请求示例和响应示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X PUT 'https://XXXX/XXXX/XXXX/moderation/text/list/{list_id}/word' \ +-H 'Content-Type: application/json' \ +-H 'Accept: application/json' \ +-H 'Authorization: Bearer ' \ +-d '{ + "id": "1wOTD0XXXXduCtnnHJwWzyqzMye", + "word": "music", + "userId": "user1" +}' +``` + +### 响应示例 + +```json +{ + "status": "OK", + "entity": { + "id": "string", + "word": "string", + "userId": "string", + "listId": "string", + "createDateTime": 0, + "updateDateTime": 0 + } +} +``` + +## 错误码 + +// TODO:请添加错误码,例如传入的关键词数量超限,或用户 ID 不存在等。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | + + + + + + + + + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 diff --git a/docs/document/server-side/keyword_query.md b/docs/document/server-side/keyword_query.md new file mode 100644 index 00000000..18abbf80 --- /dev/null +++ b/docs/document/server-side/keyword_query.md @@ -0,0 +1,133 @@ +# 查询关键词 + +## 功能说明 + +- 在关键词名单中查询关键词。 +- 该接口为模糊查询。例如,若传入关键词 `message`,响应中会返回关键词名单中包含该关键词的词条,包括 `message``messageid`、`addmessage` 和 `deletemessage` 等词条。 + +**调用频率上限**:100 次/秒/App Key + +## HTTP 请求 + +```http +POST https://{host}/{org_name}/{app_name}/moderation/text/list/{list_id}/word +``` + +### 路径参数 + +| 参数 | 类型 | 是否必需 | 描述 | +| :------------ | :----- | :------- | :---------------- | +| `host` | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `org_name` | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `app_name` | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)。 | +| `list_id` | String | 是 | 关键词名单 ID。查询该名单中的关键词。 | + +### 请求 header + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization` | String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +### 请求 body + +| 参数 | 类型 | 是否必需 | 描述 | +| :-------------- | :----- | :------- | :----------------------- | +| `word` | String | 是 | 要查询的关键词名称。 | +| `page` | Int | 否 | 当前页码,默认值为 `0`。| +| `size` | Int | 否 | 每页返回的关键词数量,取值范围为 [1,200],默认值为 `10`。| + +#### HTTP 响应 + +##### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :----- | :---- | :------------------------ | +| `status` | String | 请求状态。若请求成功,返回 `OK`。 | +| `entities` | JSON Array | 查询详情。 | +| - `id` | String | 关键词 ID。 | +| - `word` | String | 关键词名称。 | +| - `userId` | String | 查询关键词的用户。 | +| - `listId` | String | 关键词名单 ID。 | +| - `createDateTime` | | 关键词添加时间。 | +| - `updateDateTime` | | 关键词修改时间。| +| `first` | Boolean | 当前页面是否为首页:
- `true`:是
- `false`:否 | +| `last` | Boolean | 当前页面是否为最后一页:
- `true`:是
- `false`:否 | +| `size` | Int | 当前页面返回的与查询关键词模糊匹配的词条。| +| `number` | Int | 当前页码。 | +| `numberOfElements` | Int | 当前页面中获取的词条数量。 | +| `totalPages` | Int | 页面总数。 | +| `totalElements` | Int | 与查询关键词匹配的词条总数量。 | + +其他字段及描述详见 [公共参数](#公共参数)。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +#### 示例 + +// TODO:请提供请求示例和响应示例 + +##### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X POST 'https://XXXX/XXXX/XXXX/moderation/text/list/{list_id}/word' \ +-H 'Content-Type: application/json' \ +-H 'Accept: application/json' \ +-H 'Authorization: Bearer ' \ +-d '{ + "word": "music", + "size": "1", + "page": "0", + }' +``` + +##### 响应示例 + +```json +{ + "status": "OK", + "entities": [ + { + "id": "string", + "word": "music", + "userId": "user1", + "listId": "list_0", + "createDateTime": 0, + "updateDateTime": 0 + } + ], + "first": true, + "last": true, + "size": 1, + "number": 1, + "numberOfElements": 1, + "totalPages": 1, + "totalElements": 1 +} +``` + + +## 错误码 + +// TODO:请添加错误码,例如传入的关键词数量超限,或用户 ID 不存在等。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 | + + + + + + + + + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 diff --git a/docs/document/server-side/user_relationship.md b/docs/document/server-side/user_relationship.md index 85ae7f16..4da94c77 100644 --- a/docs/document/server-side/user_relationship.md +++ b/docs/document/server-side/user_relationship.md @@ -253,6 +253,87 @@ curl -X DELETE -H 'Accept: application/json' -H 'Authorization: Bearer | 描述 | +| :-------------- | :----- | :----------- | :------------------------------------------------------ | +| `username` | String | 是 | 要删除该用户 ID 的所有好友。 | + +其他参数及描述详见 [公共参数](#公共参数)。 + +#### 请求 header + +| 参数 | 类型 | 是否必需
| 描述 | +| :-------------- | :----- | :----------- | :------------------------------------------------------ | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization` | String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +### HTTP 响应 + +#### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +其他字段及描述详见 [公共参数](#公共参数)。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +### 示例 + +#### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X DELETE -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'https://XXXX/XXXX/XXXX/contacts/users/XXXX' +``` + +#### 响应示例 + +```json +{ + "action": "delete", + "application": "8bXXXX402", + "path": "/contacts/users/XXXX", + "uri": "https://XXXX/XXXX/XXXX/contacts/users/XXXX", + "entities": [], + "timestamp": 1542598913819, + "duration": 63, + "organization": "XXXX", + "applicationName": "testapp" +} +``` + +#### 错误码 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| 401 | unauthorized | Unable to authenticate (OAuth) | Token 不合法,可能过期或 Token 错误。 | 使用新的 Token 访问。 | +| 429 | reach_limit | This request has reached api limit. | 接口调用超过频率限制。 | 联系商务调整限流或者控制调用速率。 | +| 403 | forbidden_service_operation | Service operation not allowed | app 或用户被封禁。 | 先解禁 app 或用户后再调用该接口。 | + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 + + + ## 设置好友备注 ### 功能说明 @@ -536,6 +617,112 @@ curl -X GET 'https://XXXX/XXXX/XXXX/users/user1/contacts/users' \ 关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 +## 批量校验好友 + +### 功能说明 + +- 批量校验是否在好友列表中。 + +**调用频率上限**:100 次/秒/App Key + +### HTTP 请求 + +```http +POST https://{host}/{org_name}/{app_name}/contacts/check +``` + +#### 路径参数 + +其他参数及描述详见 [公共参数](#公共参数)。 + +#### 请求 header + +| 参数 | 类型 | 是否必需
| 描述 | +| :-------------- | :----- | :----------- | :------------------------------------------------------ | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization` | String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +#### 请求体 body + +请求包体为 JSON Object 类型,包含以下字段: + +| 参数 | 类型 | 是否必需 | 描述 | +| :---- | :----- | :---------------------- | :------- | +| `username` | String | 是 | 当前用户 ID。批量校验该用户 ID 的好友。 | +| `check_list` | JSON Array | 是 | 需要校验的好友的用户 ID,一次最多可校验 100 个用户 ID。 | + +### HTTP 响应 + +#### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :------------------- | :--------- | :----------------------------------------- | +| `entities` | JSON Array | 校验结果的详情。 | +| - `username` | String | 系统内为用户生成的系统内唯一标识。 | +| - `relation` | String | 是否为好友:
- `friend`:是
- `not_friend`:否 | + +其他字段及描述详见 [公共参数](#公共参数)。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +### 示例 + +#### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'https://XXXX/XXXX/XXXX/contacts/check' -d '{ + "username": "user1", + "check_list": [ + "user2", + "user3" + ] + }' +``` + +#### 响应示例 + +```json +{ + "action": "post", + "application": "8bXXXX402", + "path": "/contacts/check", + "uri": "https://XXXX/XXXX/XXXX/contacts/check", + "entities": [ + { + "username":"user2", + "relation":"friend" + }, + { + "username":"user3", + "relation":"not_friend" + } + ], + "timestamp": 1542598913819, + "duration": 63, + "organization": "XXXX", + "applicationName": "testapp" +} +``` + +#### 错误码 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | Token 不合法,可能过期或 Token 错误。 | 使用新的 Token 访问。 | +| 429 | reach_limit | This request has reached api limit. | 接口调用超过频率限制。 | 联系商务调整限流或者控制调用速率。 | +| 403 | forbidden_service_operation | Service operation not allowed | app 或用户被封禁。 | 先解禁 app 或用户后再调用该接口。 | +| 400 | illegal_argument | username cannot be blank | 校验的用户 `username` 不能传空。 | 确认 `username` 参数是否正确填写。 | +| 400 | illegal_argument | check_list size must be between 1 and 100 | 被校验的用户列表只能包含 1 到 100 个用户。 | 确认 `check_list` 参数是否正确填写。 | + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 + ## 导入好友列表 ### 功能描述 @@ -943,3 +1130,106 @@ curl -X DELETE -H 'Accept: application/json' -H 'Authorization: Bearer | 描述 | +| :-------------- | :----- | :----------- | :------------------------------------------------------ | +| `Content-Type` | String | 是 | 内容类型。请填 `application/json`。 | +| `Accept` | String | 是 | 内容类型。请填 `application/json`。 | +| `Authorization` | String | 是 | App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 | + +#### 请求 body + +| 参数 | 类型 | 是否必需
| 描述 | +| :-------------- | :----- | :----------- | :------------------------------------------------------ | +| `username` | String | 是 | 要校验该用户 ID 的黑名单。 | +| `check_list` | JSON Array | 是 | 要校验的黑名单中用户 ID 列表,每次请求最多可传 100 个用户 ID。 | + +### HTTP 响应 + +#### 响应 body + +如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段: + +| 字段 | 类型 | 描述 | +| :------------------- | :--------- | :------------------ | +| `entities` | JSON Array | 校验结果的详情。 | +| - `username` | String | 校验的用户 ID。 | +| - `relation` | String | 对象类型,用户是否在黑名单中:
- `blacklist`:是;
- `not_blacklist`:否。| // TODO + +其他字段及描述详见 [公共参数](#公共参数)。 + +如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。 + +### 示例 + +#### 请求示例 + +```shell +# 将 替换为你在服务端生成的 App Token + +curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer ' 'https://XXXX/XXXX/XXXX/blocks/check' -d '{ + "username": "user1", + "check_list": [ + "user2", + "user3" + ] + }' +``` + +#### 响应示例 + +```json +{ + "action": "post", + "application": "8bXXXX402", + "path": "/contacts/check", + "uri": "https://XXXX/XXXX/XXXX/blocks/check", + "entities": [ + { + "username":"user2", + "relation":"blacklist" + }, + { + "username":"user3", + "relation":"not_blacklist" + } + ], + "timestamp": 1542598913819, + "duration": 63, + "organization": "XXXX", + "applicationName": "testapp" +} +``` + +#### 错误码 + +如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码: + +| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 | +| :----------- | :--- | :------------- | :----------- | :----------- | +| 401 | unauthorized | Unable to authenticate (OAuth) | Token 不合法,可能过期或 Token 错误。 | 使用新的 Token 访问。 | +| 429 | reach_limit | This request has reached api limit. | 接口调用超过频率限制。 | 调整限流或者控制调用速率。 | +| 403 | forbidden_service_operation | Service operation not allowed | Token 的对应对象被封禁。 | 解禁后再访问。 | + +关于其他错误,你可以参考 [响应状态码](error.html) 了解可能的原因。 +