Skip to content

Commit 9a68cea

Browse files
authored
Merge pull request #1031 from haoxiuwen/doc-v2
Modify IM Docs
2 parents 1f64b42 + f07192b commit 9a68cea

File tree

9 files changed

+205
-163
lines changed

9 files changed

+205
-163
lines changed

docs/.vuepress/sidebar/document.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ const documentSidebar = [
343343
{ text: '撤回消息和单向删除会话', link: 'message_recall.html' },
344344
{ text: '单向删除漫游消息', link: 'message_delete.html' },
345345
{ text: '修改文本或自定义消息', link: 'message_modify_text_custom.html' },
346+
{ text: '获取离线消息数据', link: 'message_offline.html' },
346347
{ text: '导入消息', link: 'message_import.html' }
347348
]
348349
},

docs/document/server-side/account_system.md

Lines changed: 0 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -1796,161 +1796,6 @@ curl -L -X GET 'https://XXXX/XXXX/XXXX/mutes?pageNum=1&pageSize=10' \
17961796

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

1799-
## 获取用户离线消息数据
1800-
1801-
### 获取用户离线消息数量
1802-
1803-
获取环信 IM 用户的离线消息数量。
1804-
1805-
#### HTTP 请求
1806-
1807-
```http
1808-
GET https://{host}/{org_name}/{app_name}/users/{owner_username}/offline_msg_count
1809-
```
1810-
1811-
##### 路径参数
1812-
1813-
| 参数 | 类型 | 是否必需 | 描述 |
1814-
| :--------------- | :----- | :------- | :---------------------------- |
1815-
| `owner_username` | String || 要获取离线消息数量的用户 ID。 |
1816-
1817-
其他参数及说明详见 [公共参数](#公共参数)
1818-
1819-
##### 请求 header
1820-
1821-
| 参数 | 类型 | 是否必需 | 描述 |
1822-
| :-------------- | :----- | :------- | :-------------------------- |
1823-
| `Accept` | String || 内容类型。请填 `application/json`|
1824-
| `Authorization` | String || App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 |
1825-
1826-
#### HTTP 响应
1827-
1828-
##### 响应 body
1829-
1830-
如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段:
1831-
1832-
| 字段 | 类型 | 描述 |
1833-
| :----- | :--- | :------------------------------------------------------------------------------------ |
1834-
| `data` | JSON | 用户的离线消息数量。数据格式为:"用户 ID": "当前离线消息的数量",例如,"user1": "0"。 |
1835-
1836-
其他字段及说明详见 [公共参数](#公共参数)
1837-
1838-
如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。
1839-
1840-
#### 示例
1841-
1842-
##### 请求示例
1843-
1844-
```shell
1845-
# 将 <YourAppToken> 替换为你在服务端生成的 App Token
1846-
1847-
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' 'https://XXXX/XXXX/XXXX/users/user1/offline_msg_count'
1848-
```
1849-
1850-
##### 响应示例
1851-
1852-
```json
1853-
{
1854-
"action": "get",
1855-
"uri": "https://XXXX/XXXX/XXXX/users/user1/offline_msg_count",
1856-
"entities": [],
1857-
"data": {
1858-
"user1": 0
1859-
},
1860-
"timestamp": 1542601518137,
1861-
"duration": 3,
1862-
"count": 0
1863-
}
1864-
```
1865-
1866-
#### 错误码
1867-
1868-
如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码:
1869-
1870-
| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 |
1871-
| :------ | :--------- | :----------- | :--------- | :--------- |
1872-
| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 |
1873-
| 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#创建应用)|
1874-
1875-
关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。
1876-
1877-
### 获取指定离线消息的投递状态
1878-
1879-
获取用户的指定离线消息的投递状态,即查看该消息是否已投递。
1880-
1881-
#### HTTP 请求
1882-
1883-
```http
1884-
GET https://{host}/{org_name}/{app_name}/users/{username}/offline_msg_status/{msg_id}
1885-
```
1886-
1887-
##### 路径参数
1888-
1889-
| 参数 | 类型 | 是否必需 | 描述 |
1890-
| :--------- | :----- | :------- | :---------------------------- |
1891-
| `username` | String || 要获取离线消息状态的用户 ID。 |
1892-
| `msg_id` | String || 要查看状态的离线消息 ID。 |
1893-
1894-
其他参数及说明详见 [公共参数](#公共参数)
1895-
1896-
##### 请求 header
1897-
1898-
| 参数 | 类型 | 是否必需 | 描述 |
1899-
| :-------------- | :----- | :------- | :-------------------- |
1900-
| `Accept` | String || 内容类型。请填 `application/json`|
1901-
| `Authorization` | String || App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 |
1902-
1903-
#### HTTP 响应
1904-
1905-
##### 响应 body
1906-
1907-
如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中的字段如下:
1908-
1909-
| 字段 | 类型 | 描述 |
1910-
| :----- | :--- | :--------------- |
1911-
| `data` | JSON | 指定离线消息的投递状态。数据格式为 "消息 ID": "投递状态"。消息的投递状态有两种:<br/> - `delivered`:已投递;<br/> - `undelivered`:未投递。 |
1912-
1913-
其他字段及说明详见 [公共参数](#公共参数)
1914-
1915-
如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。
1916-
1917-
#### 示例
1918-
1919-
##### 请求示例
1920-
1921-
```shell
1922-
# 将 <YourAppToken> 替换为你在服务端生成的 App Token
1923-
1924-
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' 'https://XXXX/XXXX/XXXX/users/user1/offline_msg_status/123'
1925-
```
1926-
1927-
##### 响应示例
1928-
1929-
```json
1930-
{
1931-
"action": "get",
1932-
"uri": "https://XXXX/XXXX/XXXX/users/user1/offline_msg_status/123",
1933-
"entities": [],
1934-
"data": {
1935-
"123": "delivered"
1936-
},
1937-
"timestamp": 1542601830084,
1938-
"duration": 5,
1939-
"count": 0
1940-
}
1941-
```
1942-
1943-
#### 错误码
1944-
1945-
如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码:
1946-
1947-
| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 |
1948-
| :---------- | :------------ | :-------------- | :------------------| :----------- |
1949-
| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 |
1950-
| 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#创建应用)|
1951-
1952-
关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。
1953-
19541799

19551800

19561801

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
# 获取用户离线消息数据
2+
3+
你可以获取单个用户的离线消息数量,以及查看该用户单个离线消息的投递状态。
4+
5+
## 公共参数
6+
7+
以下表格列举了环信 IM 的 RESTful 接口的公共请求参数和响应参数:
8+
9+
### 请求参数
10+
11+
| 参数 | 类型 | 是否必需 | 描述 |
12+
| :--------- | :----- | :------- | :------------------------- |
13+
| `host` | String || 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)|
14+
| `org_name` | String || 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)|
15+
| `app_name` | String || 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 [获取环信即时通讯 IM 的信息](enable_and_configure_IM.html#获取环信即时通讯-im-的信息)|
16+
17+
### 响应参数
18+
19+
| 参数 | 类型 | 描述 |
20+
| :------------------- | :----- | :-------------------------------------------- |
21+
| `action` | String | 请求方法。 |
22+
| `uri` | String | 请求 URL。 |
23+
| `path` | String | 请求路径,属于请求 URL 的一部分,开发者无需关注。 |
24+
| `entities` | JSON Array | 响应实体。 |
25+
| `data` | JSON | 实际获取的数据详情。 |
26+
| `timestamp` | Long | HTTP 响应的 Unix 时间戳,单位为毫秒。 |
27+
| `duration` | Long | 从发送 HTTP 请求到响应的时长, 单位为毫秒。 |
28+
29+
## 前提条件
30+
31+
要调用环信即时通讯 RESTful API,请确保满足以下要求:
32+
33+
- 已在环信即时通讯云控制台 [开通配置环信即时通讯 IM 服务](enable_and_configure_IM.html)
34+
- 已从服务端获取 app token,详见 [使用 App Token 鉴权](easemob_app_token.html)
35+
- 了解环信 IM API 的调用频率限制,详见 [接口频率限制](limitationapi.html)
36+
37+
## 认证方式
38+
39+
环信即时通讯 REST API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,都必须在请求头部填入如下 `Authorization` 字段:
40+
41+
`Authorization: Bearer YourAppToken`
42+
43+
为提高项目的安全性,环信使用 Token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。本文介绍的即时通讯所有 REST API 均需使用 App Token 的鉴权方式,详见 [使用 App Token 鉴权](easemob_app_token.html)
44+
45+
## 获取用户离线消息数量
46+
47+
获取环信 IM 用户的离线消息数量。
48+
49+
#### HTTP 请求
50+
51+
```http
52+
GET https://{host}/{org_name}/{app_name}/users/{owner_username}/offline_msg_count
53+
```
54+
55+
##### 路径参数
56+
57+
| 参数 | 类型 | 是否必需 | 描述 |
58+
| :--------------- | :----- | :------- | :---------------------------- |
59+
| `owner_username` | String || 要获取离线消息数量的用户 ID。 |
60+
61+
其他参数及说明详见 [公共参数](#公共参数)
62+
63+
##### 请求 header
64+
65+
| 参数 | 类型 | 是否必需 | 描述 |
66+
| :-------------- | :----- | :------- | :-------------------------- |
67+
| `Accept` | String || 内容类型。请填 `application/json`|
68+
| `Authorization` | String || App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 |
69+
70+
#### HTTP 响应
71+
72+
##### 响应 body
73+
74+
如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段:
75+
76+
| 字段 | 类型 | 描述 |
77+
| :----- | :--- | :------------------------------------------------------------------------------------ |
78+
| `data` | JSON | 用户的离线消息数量。数据格式为:"用户 ID": "当前离线消息的数量",例如,"user1": "0"。 |
79+
80+
其他字段及说明详见 [公共参数](#公共参数)
81+
82+
如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。
83+
84+
#### 示例
85+
86+
##### 请求示例
87+
88+
```shell
89+
# 将 <YourAppToken> 替换为你在服务端生成的 App Token
90+
91+
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' 'https://XXXX/XXXX/XXXX/users/user1/offline_msg_count'
92+
```
93+
94+
##### 响应示例
95+
96+
```json
97+
{
98+
"action": "get",
99+
"uri": "https://XXXX/XXXX/XXXX/users/user1/offline_msg_count",
100+
"entities": [],
101+
"data": {
102+
"user1": 0
103+
},
104+
"timestamp": 1542601518137,
105+
"duration": 3,
106+
"count": 0
107+
}
108+
```
109+
110+
#### 错误码
111+
112+
如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码:
113+
114+
| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 |
115+
| :------ | :--------- | :----------- | :--------- | :--------- |
116+
| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 |
117+
| 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#创建应用)|
118+
119+
关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。
120+
121+
### 获取指定离线消息的投递状态
122+
123+
获取用户的指定离线消息的投递状态,即查看该消息是否已投递。
124+
125+
#### HTTP 请求
126+
127+
```http
128+
GET https://{host}/{org_name}/{app_name}/users/{username}/offline_msg_status/{msg_id}
129+
```
130+
131+
##### 路径参数
132+
133+
| 参数 | 类型 | 是否必需 | 描述 |
134+
| :--------- | :----- | :------- | :---------------------------- |
135+
| `username` | String || 要获取离线消息状态的用户 ID。 |
136+
| `msg_id` | String || 要查看状态的离线消息 ID。 |
137+
138+
其他参数及说明详见 [公共参数](#公共参数)
139+
140+
##### 请求 header
141+
142+
| 参数 | 类型 | 是否必需 | 描述 |
143+
| :-------------- | :----- | :------- | :-------------------- |
144+
| `Accept` | String || 内容类型。请填 `application/json`|
145+
| `Authorization` | String || App 管理员的鉴权 token,格式为 `Bearer YourAppToken`,其中 `Bearer` 为固定字符,后面为英文空格和获取到的 app token。 |
146+
147+
#### HTTP 响应
148+
149+
##### 响应 body
150+
151+
如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中的字段如下:
152+
153+
| 字段 | 类型 | 描述 |
154+
| :----- | :--- | :--------------- |
155+
| `data` | JSON | 指定离线消息的投递状态。数据格式为 "消息 ID": "投递状态"。消息的投递状态有两种:<br/> - `delivered`:已投递;<br/> - `undelivered`:未投递。 |
156+
157+
其他字段及说明详见 [公共参数](#公共参数)
158+
159+
如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](#错误码) 了解可能的原因。
160+
161+
#### 示例
162+
163+
##### 请求示例
164+
165+
```shell
166+
# 将 <YourAppToken> 替换为你在服务端生成的 App Token
167+
168+
curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' 'https://XXXX/XXXX/XXXX/users/user1/offline_msg_status/123'
169+
```
170+
171+
##### 响应示例
172+
173+
```json
174+
{
175+
"action": "get",
176+
"uri": "https://XXXX/XXXX/XXXX/users/user1/offline_msg_status/123",
177+
"entities": [],
178+
"data": {
179+
"123": "delivered"
180+
},
181+
"timestamp": 1542601830084,
182+
"duration": 5,
183+
"count": 0
184+
}
185+
```
186+
187+
#### 错误码
188+
189+
如果返回的 HTTP 状态码非 `200`,表示请求失败,可能提示以下错误码:
190+
191+
| HTTP 状态码 | 错误类型 | 错误提示 | 可能原因 | 处理建议 |
192+
| :---------- | :------------ | :-------------- | :------------------| :----------- |
193+
| 401 | unauthorized | Unable to authenticate (OAuth) | token 不合法,可能过期或 token 错误。 | 使用新的 token 访问。 |
194+
| 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#创建应用)|
195+
196+
关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。

docs/uikit/chatuikit/flutter/chatuikit_advancedusage.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ Widget build(BuildContext context) {
137137

138138
```dart
139139
ChatUIKitTimeFormatter.instance.formatterHandler = (context, type, time) {
140-
if (type == ChatUIKitTimeType.conversation) { // 会话列表使用的时间,需要根据 time 返回完整时间内容,如 ’xx月xx日 xx:xx‘
140+
if (type == ChatUIKitTimeType.conversation) { // 会话列表使用的时间,需要根据 time 返回时间,如 ’xx月xx日 xx:xx‘
141141
return '...';
142-
} else if (type == ChatUIKitTimeType.message) { // 消息使用的时间格式, 需要根据 time 返回完整时间内容,如 ’xx月xx日 xx:xx‘
142+
} else if (type == ChatUIKitTimeType.message) { // 消息使用的时间格式, 需要根据 time 返回时间,如 ’xx月xx日 xx:xx‘
143143
return '...';
144144
}
145145
return null; // 如果返回 null,则表示不做更改。
@@ -501,6 +501,6 @@ itemBuilder: (context, model) {
501501
);
502502
},
503503
);
504-
},
504+
}
505505
```
506506

docs/uikit/chatuikit/flutter/chatuikit_contactlist.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Widget build(BuildContext context) {
2929
| final ChatUIKitAppBar? appBar | 自定义消息页面 AppBar。如不设置会使用默认的。|
3030
| final bool enableAppBar | 是否开启 AppBar。默认开启,关闭后将不再显示 AppBar,传入的 AppBar 也不再生效。|
3131
| final String? title | 默认 AppBar 展示的标题信息。如果使用自定义了 AppBar 或者 `enableAppBar = false`, 则不生效。|
32-
| final void Function(List&lt;ContactItemModel&gt; data)? onSearchTap | 联系人列表搜索点击事件回调。点击后会把当前所有的恋人回调出来,如果不设置会有默认实现。|
32+
| final void Function(List&lt;ContactItemModel&gt; data)? onSearchTap | 联系人列表搜索点击事件回调。点击后会把当前所有的联系人回调出来,如果不设置会有默认实现。|
3333
| final bool enableSearchBar | 是否显示联系人搜索框,默认为 `true`|
3434
| final String? searchHideText | 搜索框中默认展示的文字内容。|
3535
| final List&lt;ChatUIKitListViewMoreItem&gt;? beforeItems | 展示在联系人列表前面的 widget,设置后将不再显示好友申请和群组列表的入口。|

0 commit comments

Comments
 (0)