-
Notifications
You must be signed in to change notification settings - Fork 66
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
202 additions
and
160 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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#创建应用)。 | | ||
|
||
关于其他错误,你可以参考 [错误码](#错误码) 了解可能的原因。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.