From 9bf74d484d49f2583f333e57e868c3d468eaaaf1 Mon Sep 17 00:00:00 2001 From: rianli Date: Tue, 27 Aug 2024 18:10:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BA=8B=E4=BB=B6=E9=93=BE=E8=B7=AF?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E3=80=82=E5=A2=9E=E5=8A=A0webhook=E6=8E=A5?= =?UTF-8?q?=E5=85=A5=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pr-open-check.yml | 2 +- .../images/api-231017/event_subscription.png | Bin 0 -> 114560 bytes .../interface-framework/event-emit.md | 76 ++++++++++++++++-- .../dev-prepare/interface-framework/sign.md | 75 +++++++++++++++++ 4 files changed, 147 insertions(+), 6 deletions(-) create mode 100644 docs/.vuepress/public/images/api-231017/event_subscription.png create mode 100644 docs/develop/api-v2/dev-prepare/interface-framework/sign.md diff --git a/.github/workflows/pr-open-check.yml b/.github/workflows/pr-open-check.yml index 6f2bd1d1..d109fb4e 100644 --- a/.github/workflows/pr-open-check.yml +++ b/.github/workflows/pr-open-check.yml @@ -15,7 +15,7 @@ jobs: - uses: wagoid/commitlint-github-action@v4 - uses: actions/setup-node@v2 with: - node-version: '16' + node-version: '18' check-latest: true - name: Get yarn cache directory path id: yarn-cache-dir-path diff --git a/docs/.vuepress/public/images/api-231017/event_subscription.png b/docs/.vuepress/public/images/api-231017/event_subscription.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6677bb1d59b4a0548b1abdf7432615ebbd0c88 GIT binary patch literal 114560 zcmdqJXH=70*EXsfMWyJrAVmQ?0#c+(M**cskzS;U^d_AE0Z{=J0qN2^frKPt2%Q8$ zr57O~5~|V(AyN`b2z2J;|C6?8)Qlye{EB&NfFXef0=)-(9rlVnV0_O*Y(aFx#WL1$Kc7; z8T#Ca&#};<+zjKEyTKE4puFyJcX-prT_=e?RK(WM_8=0wEBgG;=M8lyxsK`hpARbf zS>&Hzd2V6cqN@JK^WmD1{kaQ&JP%H%ivRuR64zt3x&F1p8;#3sf2^Rc-d%Wt`HvMY zTyVN~>hFJT@qy+9gF)TEy2*t%jp-9kTk$$ran zqf-3RzxUt$ zq)kZE4KRYF$i*{`6aW68g<|;CJrR5N#Ma=44|y-f6E}lbOWlnR|0z|cx17%56qZ#* zQ?E;$mbBNKb7$&D3@1ydBlqW8CpSu?B6(<@^8O!L_DLVEYH~=@?0HKf0v5Egz8gz+YKbKF++|LO5hoq?*BcY$4umT(w(oDdKOpJ$$Hl z{y6uCDwq){bAN88_@gS0@7CKc+J;dR-;WH@J_e1~Ko9mc;YN#0k6L7HVGJDmaJcH+y^M~1l@^tX@hXrA_pOEkHD=OMM%VRbB9?%i&i;5*Rv zjSOnIH}@DCRTWkqZ+y+nI#*<+@fGiN?W4TUeR#!$K}M~r0hA75!yqrizk>;o3m1p( zC bGX6A^>v31^2ObQnHoZJaCHXFYyrMW>9X6X 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 literal 0 HcmV?d00001 diff --git a/docs/develop/api-v2/dev-prepare/interface-framework/event-emit.md b/docs/develop/api-v2/dev-prepare/interface-framework/event-emit.md index 113a248b..39f1f9af 100644 --- a/docs/develop/api-v2/dev-prepare/interface-framework/event-emit.md +++ b/docs/develop/api-v2/dev-prepare/interface-framework/event-emit.md @@ -1,5 +1,5 @@ -# 事件订阅与异步通知 +# 事件订阅与通知 @@ -7,10 +7,76 @@ 当用户在QQ平台内的一些行为操作或某些接口的有异步返回通知确认机制的场景的时候,QQ 会通过"事件"的方式,通知到开发者服务器,开发者可自行根据具体事件通知来进行下一步响应。譬如用户跟机器人发消息,用户添加机器人好友,机器人被拉入群聊等等事件。 ::: +## Webhook方式 -## WebSocket 方式 +**当前方式灰度中,仅灰度用户可使用** 其它用户请使用 [websocket方式](#websocket方式) -通过 `WebSocket` 建立与QQ后台的长链接通信管道,当需要事件通知的时候QQ后台通过 `WebSocket` 连接下发事件到开发者服务器上。 +QQ机器人开放平台支持通过使用HTTP接口接收事件。开发者可通过[管理端](https://q.qq.com)设定回调地址,监听事件等。 + +### 数据结构 + +#### Payload + +网关的上下行消息采用的都是同一个结构,如下: + +```json +{ + "op": 0, + "d": {}, + "t": "GATEWAY_EVENT_NAME" +} +``` + +##### OpCode + +`opcode` 含义如下: + +| **CODE** | **名称** | **客户端行为** | **描述** | +| --- | --- | --- | --- | +| 0 | Dispatch | Receive | 服务端进行消息推送 | +| 12 | HTTP Callback ACK | Reply | 仅用于 http 回调模式的回包,代表机器人收到了平台推送的数据 | +| 13 | 回调地址验证 | Receive | 开放平台对机器人服务端进行验证 | +| 14 | 回调地址验证 ACK | Reply | 机器人服务端响应开放平台的验证请求 | + + +### 签名校验 +机器人服务端需要对回调请求进行签名验证以保证数据没有被篡改过。 +[签名算法](opcode.md) + +### 回调地址及事件监听配置 + +开发者需要提供一个HTTPS回调地址。并选定监听的事件类型。开放平台会将事件通过回调的方式推送给机器人。 +event_subscription + +开发者配置回调地址时,开放平台会对回调地址进行验证。机器人服务端需要按格式返回签名信息。签名算法同上。 机器人服务端需要在 3 秒内响应200或204,表示接受到事件。 +* 请求结构 + +| **字段** | **描述** | +| --- |------| +| plain_token | 要计算hash的字符串 | +| event_ts | 时间戳 | + +* 返回结果 + +| **字段** | **描述** | +| --- |-------------| +| plain_token | 要计算hash的字符串 | +| signature | 签名 | + +例如 + +回调验证请求: +```json +{"d": {"plain_token": "qgg8vlvZRS6UYooatFL8Aw","event_ts": 1654503849680},"op": 13} +``` +返回结果: +```json +{"plain_token": "qgg8vlvZRS6UYooatFL8Aw","signature": "23a89b634c017e5364a1c8d9c8ea909b60dd5599e2bb04bb1558d9c3a121faa5"} +``` + +## WebSocket方式 + +通过 `WebSocket` 建立与QQ机器人开放平台的长链接通信管道,当需要事件通知的时候QQ后台通过 `WebSocket` 连接下发事件到开发者服务器上。 开发者需要维护 `WebSocket` 长链接的状态,包括连接状态维护、登录鉴权、心跳维护、断线恢复重连等。 @@ -134,7 +200,7 @@ wss://api.sgroup.qq.com/websocket/ ```json { "op": 1, - "d": 251 // null + "d": 251 } ``` @@ -182,7 +248,7 @@ wss://api.sgroup.qq.com/websocket/ 事件和位移的关系如下: -```yaml +``` GUILDS (1 << 0) - GUILD_CREATE // 当机器人加入新guild时 - GUILD_UPDATE // 当guild资料发生变更时 diff --git a/docs/develop/api-v2/dev-prepare/interface-framework/sign.md b/docs/develop/api-v2/dev-prepare/interface-framework/sign.md new file mode 100644 index 00000000..f3bd1948 --- /dev/null +++ b/docs/develop/api-v2/dev-prepare/interface-framework/sign.md @@ -0,0 +1,75 @@ +# 安全和授权 + +开发者需要对每一次回调请求,根据回调中的签名等信息验证请求者身份,避免安全隐患。目前签名算法使用Ed25519。 + +## 安全凭证 + +开发者平台的 Bot Secret 用于加密签名字符串和服务器端验证签名字符串的密钥。用户必须严格保管安全凭证,避免泄露。 + +## 验证签名 + +### 1. 签名验证参数 + +| 字段名 | 说明 | 参考值 | +|-----------------------|---------------------------|-----------------| +| X-Signature-Ed25519 | HTTP Header 中透传 Signature | 3ecd***(64字节) | +| X-Signature-Timestamp | HTTP Header 透传的签名时间戳 | 1636373772 | +| HTTP Body | HTTP 请求中 Body 值 | {"msg":"hello"} | + +### 2. 验证签名过程 + +以下代码以Go语言为例,引用 `crypto/ed25519` 包实现 `Ed25519` 算法 + +- 根据开发者平台的 Bot Secret 值进行repeat操作得到签名32字节的 seed ,根据 seed 调用 Ed25519 算法生成32字节公钥 + +```go + // 根据botSecret进行repeat操作后得到seed值计算出公钥 + seed := botSecret + for len(seed) < ed25519.SeedSize { + seed = strings.Repeat(seed, 2) + } + rand := strings.NewReader(seed[:ed25519.SeedSize]) + publicKey, _, err := ed25519.GenerateKey(rand) +``` + +- 获取 HTTP Header 中 X-Signature-Ed25519 的值进行 hec (十六进制解码)操作后的得到 Signature 并进行校验 + +```go + // 取HTTP header中X-Signature-Ed25519(进行hex解码)并校验 + signature := req.Header.Get("X-Signature-Ed25519") + if signature == "" { + return false + } + sig, err := hex.DecodeString(signature) + if err != nil { + return false + } + if len(sig) != ed25519.SignatureSize || sig[63]&224 != 0 { + return false + } +``` + +- 获取 HTTP Header 中 X-Signature-Timestamp 的和 HTTP Body 的值按照 timestamp+body 顺序进行组合成签名体msg + +```go + // 取HTTP header中 X-Signature-Timestamp 并校验 + timestamp := req.Header.Get("X-Signature-Timestamp") + if timestamp == "" { + return false + } + // 按照timstamp+Body顺序组成签名体 + var msg bytes.Buffer + msg.WriteString(timestamp) + var body bytes.Buffer + // copy body into buffers + _, err = io.Copy(&msg, io.TeeReader(r.Body, &body)) + if err != nil { + return false + } +``` + +- 根据公钥、Signature、签名体调用 Ed25519 算法进行验证 + +```go + ed25519.Verify(publicKey, msg.Bytes(), sig) +```