====== 回调异常缓存 ======
''本文档已不再维护,新版文档见:[[ccim:rest:callbackconfig|发送后事件回调过滤规则设置]]。''
-------
===== 功能说明 =====
环信支持发送后回调,即IM服务器会在事件发生之后,向客户的应用服务器发送请求,应用服务器可以据此进行必要的数据同步。
一般情况下,当环信服务器执行发出回调后,响应状态码非200,认为是指定服务器有网络或者其他因素导致失败。重试失败以及封禁期间的回调默认不会自动补录。
''但客户有特殊需求不能丢弃回调消息情况下,请联系商务经理开通该**回调异常缓存**功能。''
开通后,如果应用服务器接收消息回调的接口在一段时间内持续无法响应,环信IM服务器则支持将异常期间的消息缓存下来,待开发者应用服务器消息接收接口恢复正常后,可手动提交任务重新回调异常期间的消息内容。
**注意:回调异常缓存功能仅支持旗舰版及以上客户开通,如需开通,请联系商务经理开通。**
===== 功能限制说明 =====
* 异常存储过期时间默认3天,若有存储需及时补发。
* 补发重试次数建议控制在10次以内。
===== 查询回调存储详情 =====
==== 接口描述 ====
查询 AppKey 下由于异常或回调规则封禁所存储的消息集合,然后用户可以根据消息集合按需拉取。
==== 基本信息 ====
方法:**GET**
接入点: **/{orgName}/{appName}/callbacks/storage/info**
==== 路径参数 ====
| 参数 | 类型 | 是否必需 | 描述 |
| orgName | String | 必需 | 组织唯一标识 |
| appName | String | 必需 | APP 唯一标识 |
==== 请求头 ====
| 参数 | 类型 | 是否必需 | 描述 |
| Authorization | String | 必需 | 鉴权token,管理员TOKEN(含)以上权限 |
==== 响应体 ====
| 参数 | 类型 | 描述 |
| date | String | 代表本次可以发送的补发的时间段。 |
| size | Int | 本时段消息数量。 |
| retry | Int | 已经重试的次数。最开始是0。 |
==== 请求示例 ====
curl -X GET 'http://a1.easemob.com/easemob-demo/easeim/callbacks/storage/info' \
-H 'Authorization: Bearer {{token}}'
==== 响应示例 ====
{
"path": "/callbacks",
"uri": "http://a1.easemob.com/easemob-demo/easeim/callbacks",
"timestamp": 1631193031254,
"organization": "easemob-demo",
"application": "8dfb1641-b6d8-450b-bbe9-d8d45a3be39f",
"action": "post",
"data": [
{
"date": "202109091440",
"size": 15,
"retry": 0
},
{
"date": "202109091450",
"size": 103,
"retry": 1
}
],
"duration": 153,
"applicationName": "easeim"
}
===== 补发回调存储信息 =====
==== 接口描述 ====
调用接口根据存储集合进行回调补发。
==== 基本信息 ====
方法:**POST**
接入点: **/{orgName}/{appName}/callbacks/storage/retry**
==== 路径参数 ====
| 参数 | 类型 | 是否必需 | 描述 |
| orgName | String | 必需 | 组织唯一标识 |
| appName | String | 必需 | APP 唯一标识 |
==== 请求头 ====
| 参数 | 类型 | 是否必需 | 描述 |
| Content-Type | String | 必需 | application/json |
| Authorization | String | 必需 | 鉴权token,管理员TOKEN(含)以上权限 |
==== 请求体 ====
| 参数 | 类型 | 是否必需 | 描述 |
| date | String | 必须 | 补发的时间段 |
| retry | Int | 必须 | 已重试的次数 |
| targetUrl | String | 非必需 | 补发消息的回调地址,如果为空,则使用原回调规则的回调地址 |
==== 响应体 ====
无特别说明。
==== 请求示例 ====
curl -X POST 'http://a1.easemob.com/easemob-demo/easeim/callback/storage/retry' \
-H 'Authorization: Bearer {{token}}' \
-H 'Content-Type: application/json' \
--data-raw '{
"date": "202108272230",
"retry": 0,
"targetUrl": "http://localhost:8000/test"
}'
==== 响应示例 ====
{
"path": "/callbacks",
"uri": "http://a1.easemob.com/easemob-demo/easeim/callbacks",
"timestamp": 1631194031721,
"organization": "easemob-demo",
"application": "8dfb1641-b6d8-450b-bbe9-d8d45a3be39f",
"action": "post",
"data": "success",
"duration": 225,
"applicationName": "easeim"
}
===== 响应码说明 =====
| 状态码 | 描述 |
| 200 | 请求成功。 |
| 400 | 请求参数错误,请根据返回提示检查。 |
| 401 | 用户权限错误。 |
| 403 | 服务未开通或权限不足。 |
| 429 | 单位时间内请求过多。 |
| 500 | 服务器内部错误。 |