跳到主要内容

事件订阅概述

通过 Webhook,您可以实时接收用户在 IM 中的操作事件,如消息发送、按钮点击等。

工作原理​

配置 Webhook​

  1. 在开发者后台进入应用设置
  2. 配置事件订阅 URL:https://your-server.com/webhook
  3. 选择需要订阅的事件类型
  4. 保存并验证

事件格式​

{
"event_type": "message.receive",
"event_id": "evt_xxxxxx",
"timestamp": 1703232000000,
"app_id": "cli_xxxxxx",
"data": {
"message_id": "msg_xxxxxx",
"sender_id": "user_001",
"content": "@Bot 查询库存",
"room_id": "room_001"
}
}

响应要求​

要求说明
状态码必须返回 200
超时时间3 秒内响应
重试机制失败后会重试 3 次

安全验证​

每个 Webhook 请求都会携带签名,您应该验证签名以确保请求来自 IM 平台:

@PostMapping("/webhook")
public ResponseEntity<String> handleWebhook(
@RequestHeader("X-Signature") String signature,
@RequestBody String body) {

// 验证签名
String expected = HmacUtils.hmacSha256(appSecret, body);
if (!expected.equals(signature)) {
return ResponseEntity.status(403).body("Invalid signature");
}

// 处理事件
// ...

return ResponseEntity.ok("success");
}