Skip to content

Commit

Permalink
Merge pull request #11 from haoxiuwen/doc-shengwang
Browse files Browse the repository at this point in the history
Modify Callback Docs
  • Loading branch information
haoxiuwen authored Jan 1, 2025
2 parents 887ce62 + 4704d88 commit c1203cd
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 2,101 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 2 additions & 4 deletions docs/.vuepress/sidebar/document.ts
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ const documentSidebar = [
{ text: '发送单聊消息已读回执', link: 'callback_single_read_ack.html' },
{ text: '发送会话已读回执', link: 'callback_single_conversation_ack.html' },
{ text: '撤回消息', link: 'callback_message_recall.html' },
{ text: '群组/聊天室操作(新)',
{ text: '群组/聊天室操作',
collapsible: true,
children: [
{ text: '创建群组/聊天室', link: 'callback_group_room_create.html' },
Expand All @@ -504,12 +504,10 @@ const documentSidebar = [
{ text: '添加/移除聊天室超级管理员', link: 'callback_room_superadmin.html' }
]
},
{ text: '群组/聊天室操作(旧)', link: 'callback_group_room_old.html' },
{ text: '用户关系操作', link: 'callback_contact.html' },
{ text: '离线推送', link: 'callback_offline_push.html' },
{ text: 'Reaction', link: 'callback_reaction.html' },
{ text: 'Thread', link: 'callback_thread.html' },
{ text: '敏感词监测', link: 'callback_sensitive_word.html' }
{ text: 'Thread', link: 'callback_thread.html' }
]
}
],
Expand Down
2,036 changes: 0 additions & 2,036 deletions docs/document/server-side/callback_group_room_old.md

This file was deleted.

32 changes: 21 additions & 11 deletions docs/document/server-side/callback_overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,30 @@

## 概述

环信即时通讯云支持回调功能,即会在事件发生之前或之后,环信 IM 服务器会以 HTTP POST 请求的形式向你的应用服务器发送通知。根据是否干预消息投递,回调分为两类:
即时通讯云支持回调功能,即会在事件发生之前或之后,声网服务器会以 HTTP POST 请求的形式向你的应用服务器发送通知。根据是否干预消息投递,回调分为两类:

- **发送前回调**:旨在让 app 后台干预该事件的处理逻辑,环信服务器会根据响应中的返回值确定后续处理流程**该类回调仅适用于从你的客户端应用发送的消息。**
- **发送前回调**:旨在让 app 后台干预该事件的处理逻辑,声网服务器会根据响应中的返回值确定后续处理流程**该类回调仅适用于从你的客户端应用发送的消息。**

该类回调一般是对用户发送的消息内容的处理,典型的应用场景为内容审核:当环信服务器收到来自客户端应用的消息时,会向你的应用服务器发送请求并等待响应,从而决定是否通过或拒绝消息投递。
该类回调一般是对用户发送的消息内容的处理,典型的应用场景为内容审核:当声网服务器收到来自客户端应用的消息时,会向你的应用服务器发送请求并等待响应,从而决定是否通过或拒绝消息投递。

- **发送后回调**:旨在让 app 后台实现必要的数据同步,环信服务器忽略回调返回码
- **发送后回调**:旨在让 app 后台实现必要的数据同步,声网服务器忽略回调返回码

发送后回调包括发送消息、发送消息已读回执、进行群组或聊天室操作、好友关系操作和用户状态变化等事件,详见[发送后回调过滤规则设置](/product/enable_and_configure_IM.html#配置回调规则)

使用回调功能前,请查看你的产品套餐是否支持,详见[增值服务说明](/product/pricing.html#增值服务费用)。若不支持,你需首先在[环信即时通讯云控制台](https://console.easemob.com/user/login)[开通该功能](/product/enable_and_configure_IM.html#开通消息回调),然后[配置发送前回调规则发送后回调规则](/product/enable_and_configure_IM.html#配置回调规则)
## 开通回调服务

使用回调功能前,请查看你的产品套餐是否支持,详见[增值服务说明](/product/pricing.html#增值服务费用)。若不支持,你需首先在[声网控制台](https://console.shengwang.cn/overview)开通该功能。// TODO:跟产品经理确认是不是这样?然后添加截图

展开控制台左上角下拉框,选择需要开通即时通讯 IM 服务的项目,然后按照以下步骤操作:

1. 点击左侧导航栏的**全部产品**
2. 在下拉列表中找到**即时通讯 IM** 并点击。
3.**即时通讯 IM** 页面,进入**功能配置**标签页.
4.**消息回调**页签中,点击**消息回调**后的开启按钮。
5. 在弹出窗口中选择**确定**。// TODO:确认默认是开启的还是关闭的?

:::tip
若使用了一段时间回调功能后需要将其关闭,请联系环信商务。关闭该功能会导致回调所有相关配置删除,请谨慎操作。
若使用了一段时间回调功能后需要将其关闭,请联系声网商务。关闭该功能会导致回调所有相关配置删除,请谨慎操作。
:::

## 两类回调的区别
Expand All @@ -26,31 +36,31 @@
| ---------- | ---------- | ---------------------- |
| 支持的消息发送方式 | 客户端 SDK | 客户端 SDK 和 RESTful API |
| 支持的范围 | 仅限消息 | 消息和其他事件 |
| 发生的时间 | 环信服务器收到用户发送的上行单聊和群聊消息之后、且将该消息下发给目标用户之前 | 发送消息后或进行单聊、群聊、聊天室、联系人等相关的操作后 |
| 发生的时间 | 声网服务器收到用户发送的上行单聊和群聊消息之后、且将该消息下发给目标用户之前 | 发送消息后或进行单聊、群聊、聊天室、联系人等相关的操作后 |
| 是否需要响应 |||
| 典型用例 | 内容审核 | 聊天记录同步 |

## 回调安全

对于发送前和发送后回调,环信服务器会向你的应用服务器发送带有 JSON 负载的 HTTP/HTTPS POST 请求。请求采用 UTF-8 编码,每个请求中的消息都使用 MD5 签名。在每个请求头中,`Content-Type` 字段为 `application/json`
对于发送前和发送后回调,声网服务器会向你的应用服务器发送带有 JSON 负载的 HTTP/HTTPS POST 请求。请求采用 UTF-8 编码,每个请求中的消息都使用 MD5 签名。在每个请求头中,`Content-Type` 字段为 `application/json`

对于发送后回调,请求中的消息使用通过 `org.apache.commons.codec.digest.DigestUtils#md5Hex` 计算的 MD5 签名。

你可以通过以下步骤验证签名检查回调是否从环信服务器发送
你可以通过以下步骤验证签名检查回调是否从声网服务器发送

1. 查找以下信息:

- 回调 ID:回调请求体中的 `callId` 参数。

- 环信服务器为回调规则生成的 secret:你可以在[环信即时通讯云控制台](https://console.easemob.com/user/login)**消息回调**页面的回调规则列表中查看。
- 声网服务器为回调规则生成的 secret:你可以在[声网控制台](https://console.shengwang.cn/overview)**消息回调**页面的回调规则列表中查看。

![img](/images/product/callback_secret.png)

- 回调时间戳:回调请求体中的时间戳参数。

2. 计算回调 ID、secret、回调时间戳拼接后的字符串的 MD5 值。

3. 检查计算的值是否与请求体中的 secret 参数相同。若相同,则表示该回调请求由环信服务器发送
3. 检查计算的值是否与请求体中的 secret 参数相同。若相同,则表示该回调请求由声网服务器发送



Expand Down
Loading

0 comments on commit c1203cd

Please sign in to comment.