在线状态下消息推送前的回调
功能说明
在消息发送至客户端前,App 业务服务端可以通过该回调接收到发送消息的请求。业务服务端可以根据需要对消息进行拦截、修改或添加额外的推送信息。
注意事项
- 为启用回调,必须配置回调 URL,并开启本条回调协议对应的开关。配置方法详见 回调说明 文档。
- 回调的方向是 OpenIMServer 向 App 后台发起 HTTP/HTTPS POST 请求。
- App 业务服务端在收到回调请求后,需在超时时间内做出响应。
可能触发该回调的场景
- 群成员退出群组。
- 群成员被踢出群组。
- 群组解散。
回调发生时机
- OpenIMServer 准备向客户端推送消息前。
接口说明
请求 URL 示例
此处CallbackCommand
为:callbackBeforeOnlinePushCommand
{WEBHOOK_ADDRESS}/callbackBeforeOnlinePushCommand?contenttype=json
请求包示例
{
"callbackCommand": "callbackBeforeOnlinePushCommand",
"platformID": 1,
"platform": "iOS",
"userIDList": ["user123", "user456"],
"title": "New Message",
"desc": "You have a new message",
"ex": "Extra push info",
"iOSPushSound": "default",
"iOSBadgeCount": true,
"signalInfo": "Signal data",
"clientMsgID": "msg123",
"sendID": "user789",
"groupID": "group123",
"contentType": 1,
"sessionType": 2,
"atUserIDList": ["user101", "user102"],
"content": "Hello, this is a test message"
}
请求包字段说明
字段 | 类型 | 描述 |
---|---|---|
callbackCommand | string | 回调命令,这里是消息推送前的回调 |
platformID | int | 平台 ID(如 1 代表 iOS,2 代表 Android) |
platform | string | 平台名称(如 iOS、Android) |
userIDList | array | 用户 ID 列表,表示哪些用户将接收此消息 |
title | string | 推送消息的标题 |
desc | string | 推送消息的描述或正文内容 |
ex | string | 额外的推送信息 |
iOSPushSound | string | iOS 设备上推送消息时使用的声音 |
iOSBadgeCount | boolean | 是否在 iOS 应用图标上显示未读消息数 |
signalInfo | string | 附加信号数据,用于传递额外信息 |
clientMsgID | string | 客户端消息 ID |
sendID | string | 发送者 ID |
groupID | string | 群组 ID(如果消息是发送到群组的) |
contentType | int | 消息内容类型的 ID |
sessionType | int | 会话类型的 ID |
atUserIDList | array | 被@用户的 ID 列表 |
content | string | 发送的消息内容 |
应答包示例
允许推送
允许消息被推送到客户端。
{
"actionCode": 0,
"errCode": 0,
"errMsg": "",
"errDlt": "",
"nextCode": "",
"userIDList": ["user123", "user456"],
"offlinePushInfo": {
"title": "New Message",
"desc": "You have a new message",
"ex": "Extra push info",
"iOSPushSound": "default",
"iOSBadgeCount": true,
"signalInfo": "Signal data"
}
}
应答包字段说明
字段 | 类型 | 描述 |
---|---|---|
actionCode | 0 | 表示业务系统的回调是否正确执行。0 表示操作成功。 |
errCode | 5001 | 表示自定义错误码,范围在 5000-9999 之间。在 actionCode 不等于 0 时设置;在 nextCode 等于 1 时设置。 |
errMsg | "An error message" | 自定义错误码对应的简单错误信息。 |
errDlt | "Detailed error information" | 自定义错误码对应的详细错误信息。 |
nextCode | 1 | 下一步执行指令,1 表示拒绝继续执行,actionCode 等于0 时设置。 |
userIDList | array | 用户 ID 列表,表示允许接收消息的用户。 |
offlinePushInfo | object | 离线推送信息对象。 |