====== 回调异常缓存 ====== ''本文档已不再维护,新版文档见:[[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 | 服务器内部错误。 |