Skip to content

Commit

Permalink
modify
Browse files Browse the repository at this point in the history
  • Loading branch information
haoxiuwen committed Nov 8, 2024
1 parent d5b9299 commit f07192b
Show file tree
Hide file tree
Showing 7 changed files with 202 additions and 160 deletions.
1 change: 1 addition & 0 deletions docs/.vuepress/sidebar/document.ts
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@ const documentSidebar = [
{ text: '撤回消息和单向删除会话', link: 'message_recall.html' },
{ text: '单向删除漫游消息', link: 'message_delete.html' },
{ text: '修改文本或自定义消息', link: 'message_modify_text_custom.html' },
{ text: '获取离线消息数据', link: 'message_offline.html' },
{ text: '导入消息', link: 'message_import.html' }
]
},
Expand Down
155 changes: 0 additions & 155 deletions docs/document/server-side/account_system.md
Original file line number Diff line number Diff line change
Expand Up @@ -1796,161 +1796,6 @@ curl -L -X GET 'https://XXXX/XXXX/XXXX/mutes?pageNum=1&pageSize=10' \

关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。

## 获取用户离线消息数据

### 获取用户离线消息数量

获取环信 IM 用户的离线消息数量。

#### HTTP 请求

```http
GET https://{host}/{org_name}/{app_name}/users/{owner_username}/offline_msg_count
```

##### 路径参数

| 参数 | 类型 | 是否必需 | 描述 |
| :--------------- | :----- | :------- | :---------------------------- |
| `owner_username` | String || 要获取离线消息数量的用户 ID。 |

其他参数及说明详见 [公共参数](#公共参数)

##### 请求 header

| 参数 | 类型 | 是否必需 | 描述 |
| :-------------- | :----- | :------- | :-------------------------- |
| `Accept` | String || 内容类型。请填 `application/json`|
| `Authorization` | String || App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 |

#### HTTP 响应

##### 响应 body

如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段:

| 字段 | 类型 | 描述 |
| :----- | :--- | :------------------------------------------------------------------------------------ |
| `data` | JSON | 用户的离线消息数量。数据格式为:"用户 ID": "当前离线消息的数量",例如,"user1": "0"。 |

其他字段及说明详见 [公共参数](#公共参数)

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

#### 示例

##### 请求示例

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

curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' 'https://XXXX/XXXX/XXXX/users/user1/offline_msg_count'
```

##### 响应示例

```json
{
"action": "get",
"uri": "https://XXXX/XXXX/XXXX/users/user1/offline_msg_count",
"entities": [],
"data": {
"user1": 0
},
"timestamp": 1542601518137,
"duration": 3,
"count": 0
}
```

#### 错误码

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

| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 |
| :------ | :--------- | :----------- | :--------- | :--------- |
| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 |
| 404 | organization_application_not_found | Could not find application for XXX/XXX from URI: XXX/XXX/users | App key 不存在。 | 检查 `orgName``appName` 是否正确或[创建应用](/product/enable_and_configure_IM.html#创建应用)|

关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。

### 获取指定离线消息的投递状态

获取用户的指定离线消息的投递状态,即查看该消息是否已投递。

#### HTTP 请求

```http
GET https://{host}/{org_name}/{app_name}/users/{username}/offline_msg_status/{msg_id}
```

##### 路径参数

| 参数 | 类型 | 是否必需 | 描述 |
| :--------- | :----- | :------- | :---------------------------- |
| `username` | String || 要获取离线消息状态的用户 ID。 |
| `msg_id` | String || 要查看状态的离线消息 ID。 |

其他参数及说明详见 [公共参数](#公共参数)

##### 请求 header

| 参数 | 类型 | 是否必需 | 描述 |
| :-------------- | :----- | :------- | :-------------------- |
| `Accept` | String || 内容类型。请填 `application/json`|
| `Authorization` | String || App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 |

#### HTTP 响应

##### 响应 body

如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中的字段如下:

| 字段 | 类型 | 描述 |
| :----- | :--- | :--------------- |
| `data` | JSON | 指定离线消息的投递状态。数据格式为 "消息 ID": "投递状态"。消息的投递状态有两种:<br/> - `delivered`:已投递;<br/> - `undelivered`:未投递。 |

其他字段及说明详见 [公共参数](#公共参数)

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

#### 示例

##### 请求示例

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

curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' 'https://XXXX/XXXX/XXXX/users/user1/offline_msg_status/123'
```

##### 响应示例

```json
{
"action": "get",
"uri": "https://XXXX/XXXX/XXXX/users/user1/offline_msg_status/123",
"entities": [],
"data": {
"123": "delivered"
},
"timestamp": 1542601830084,
"duration": 5,
"count": 0
}
```

#### 错误码

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

| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 |
| :---------- | :------------ | :-------------- | :------------------| :----------- |
| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 |
| 404 | organization_application_not_found | Could not find application for XXX/XXX from URI: XXX/XXX/users | App key 不存在。 | 检查 `orgName``appName` 是否正确或[创建应用](/product/enable_and_configure_IM.html#创建应用)|

关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。




Expand Down
196 changes: 196 additions & 0 deletions docs/document/server-side/message_offline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
# 获取用户离线消息数据

你可以获取单个用户的离线消息数量,以及查看该用户单个离线消息的投递状态。

## 公共参数

以下表格列举了环信 IM 的 RESTful 接口的公共请求参数和响应参数:

### 请求参数

| 参数 | 类型 | 是否必需 | 描述 |
| :--------- | :----- | :------- | :------------------------- |
| `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-的信息)|

### 响应参数

| 参数 | 类型 | 描述 |
| :------------------- | :----- | :-------------------------------------------- |
| `action` | String | 请求方法。 |
| `uri` | String | 请求 URL。 |
| `path` | String | 请求路径,属于请求 URL 的一部分,开发者无需关注。 |
| `entities` | JSON Array | 响应实体。 |
| `data` | JSON | 实际获取的数据详情。 |
| `timestamp` | Long | HTTP 响应的 Unix 时间戳,单位为毫秒。 |
| `duration` | Long | 从发送 HTTP 请求到响应的时长, 单位为毫秒。 |

## 前提条件

要调用环信即时通讯 RESTful API,请确保满足以下要求:

- 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)
- 已从服务端获取 app token,详见 [使用 App Token 鉴权](easemob_app_token.html)
- 了解环信 IM API 的调用频率限制,详见 [接口频率限制](limitationapi.html)

## 认证方式

环信即时通讯 REST API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,都必须在请求头部填入如下 `Authorization` 字段:

`Authorization: Bearer YourAppToken`

为提高项目的安全性,环信使用 Token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。本文介绍的即时通讯所有 REST API 均需使用 App Token 的鉴权方式,详见 [使用 App Token 鉴权](easemob_app_token.html)

## 获取用户离线消息数量

获取环信 IM 用户的离线消息数量。

#### HTTP 请求

```http
GET https://{host}/{org_name}/{app_name}/users/{owner_username}/offline_msg_count
```

##### 路径参数

| 参数 | 类型 | 是否必需 | 描述 |
| :--------------- | :----- | :------- | :---------------------------- |
| `owner_username` | String || 要获取离线消息数量的用户 ID。 |

其他参数及说明详见 [公共参数](#公共参数)

##### 请求 header

| 参数 | 类型 | 是否必需 | 描述 |
| :-------------- | :----- | :------- | :-------------------------- |
| `Accept` | String || 内容类型。请填 `application/json`|
| `Authorization` | String || App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 |

#### HTTP 响应

##### 响应 body

如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段:

| 字段 | 类型 | 描述 |
| :----- | :--- | :------------------------------------------------------------------------------------ |
| `data` | JSON | 用户的离线消息数量。数据格式为:"用户 ID": "当前离线消息的数量",例如,"user1": "0"。 |

其他字段及说明详见 [公共参数](#公共参数)

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

#### 示例

##### 请求示例

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

curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' 'https://XXXX/XXXX/XXXX/users/user1/offline_msg_count'
```

##### 响应示例

```json
{
"action": "get",
"uri": "https://XXXX/XXXX/XXXX/users/user1/offline_msg_count",
"entities": [],
"data": {
"user1": 0
},
"timestamp": 1542601518137,
"duration": 3,
"count": 0
}
```

#### 错误码

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

| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 |
| :------ | :--------- | :----------- | :--------- | :--------- |
| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 |
| 404 | organization_application_not_found | Could not find application for XXX/XXX from URI: XXX/XXX/users | App key 不存在。 | 检查 `orgName``appName` 是否正确或[创建应用](/product/enable_and_configure_IM.html#创建应用)|

关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。

### 获取指定离线消息的投递状态

获取用户的指定离线消息的投递状态,即查看该消息是否已投递。

#### HTTP 请求

```http
GET https://{host}/{org_name}/{app_name}/users/{username}/offline_msg_status/{msg_id}
```

##### 路径参数

| 参数 | 类型 | 是否必需 | 描述 |
| :--------- | :----- | :------- | :---------------------------- |
| `username` | String || 要获取离线消息状态的用户 ID。 |
| `msg_id` | String || 要查看状态的离线消息 ID。 |

其他参数及说明详见 [公共参数](#公共参数)

##### 请求 header

| 参数 | 类型 | 是否必需 | 描述 |
| :-------------- | :----- | :------- | :-------------------- |
| `Accept` | String || 内容类型。请填 `application/json`|
| `Authorization` | String || App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 |

#### HTTP 响应

##### 响应 body

如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中的字段如下:

| 字段 | 类型 | 描述 |
| :----- | :--- | :--------------- |
| `data` | JSON | 指定离线消息的投递状态。数据格式为 "消息 ID": "投递状态"。消息的投递状态有两种:<br/> - `delivered`:已投递;<br/> - `undelivered`:未投递。 |

其他字段及说明详见 [公共参数](#公共参数)

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

#### 示例

##### 请求示例

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

curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' 'https://XXXX/XXXX/XXXX/users/user1/offline_msg_status/123'
```

##### 响应示例

```json
{
"action": "get",
"uri": "https://XXXX/XXXX/XXXX/users/user1/offline_msg_status/123",
"entities": [],
"data": {
"123": "delivered"
},
"timestamp": 1542601830084,
"duration": 5,
"count": 0
}
```

#### 错误码

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

| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 |
| :---------- | :------------ | :-------------- | :------------------| :----------- |
| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 |
| 404 | organization_application_not_found | Could not find application for XXX/XXX from URI: XXX/XXX/users | App key 不存在。 | 检查 `orgName``appName` 是否正确或[创建应用](/product/enable_and_configure_IM.html#创建应用)|

关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。
4 changes: 2 additions & 2 deletions docs/uikit/chatuikit/flutter/chatuikit_advancedusage.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,9 @@ Widget build(BuildContext context) {

```dart
ChatUIKitTimeFormatter.instance.formatterHandler = (context, type, time) {
if (type == ChatUIKitTimeType.conversation) { // 会话列表使用的时间,需要根据 time 返回完整时间内容,如 ’xx月xx日 xx:xx‘
if (type == ChatUIKitTimeType.conversation) { // 会话列表使用的时间,需要根据 time 返回时间,如 ’xx月xx日 xx:xx‘
return '...';
} else if (type == ChatUIKitTimeType.message) { // 消息使用的时间格式, 需要根据 time 返回完整时间内容,如 ’xx月xx日 xx:xx‘
} else if (type == ChatUIKitTimeType.message) { // 消息使用的时间格式, 需要根据 time 返回时间,如 ’xx月xx日 xx:xx‘
return '...';
}
return null; // 如果返回 null,则表示不做更改。
Expand Down
2 changes: 1 addition & 1 deletion docs/uikit/chatuikit/web/chatuikit_chat.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ import { Chat, Icon, MessageInput } from 'easemob-chat-uikit';
import 'easemob-chat-uikit/style.css';

const ChatContainer = () => {
// 在消息输入框中添加图标
// 自定义要添加的图标
const CustomIcon = {
visible: true,
name: 'CUSTOM',
Expand Down
2 changes: 1 addition & 1 deletion docs/uikit/chatuikit/web/chatuikit_conversation.md
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ $cvs-item-time-margin-bottom: 9px;
<tr>
<td style=font-size:15px>onSearch</td>
<td style=font-size:15px>(e: React.ChangeEvent&lt;HTMLInputElement&gt;) => boolean</td>
<td style=font-size:15px> 搜索输入框的 change 事件,当函数返回 false 时,会组织默认的搜索行为,你可以使用自己的搜索条件来搜索</td>
<td style=font-size:15px> 搜索输入框的 change 事件,当函数返回 false 时,会阻止默认的搜索行为,你可以使用自己的搜索条件来搜索</td>
</tr>
</tr>
</table>
Loading

0 comments on commit f07192b

Please sign in to comment.