Skip to content

Commit a696c50

Browse files
committed
feat: 事件链路升级。补充签名校验说明。
1 parent 9bf74d4 commit a696c50

File tree

3 files changed

+37
-9
lines changed

3 files changed

+37
-9
lines changed
320 KB
Loading

docs/develop/api-v2/dev-prepare/interface-framework/event-emit.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
## Webhook方式
1111

12-
**当前方式灰度中,仅灰度用户可使用** 其它用户请使用 [websocket方式](#websocket方式)
12+
**当前方式灰度中,仅灰度用户可使用** 其它用户请使用 [websocket方式](#websocket方式)
13+
14+
灰度用户如遇问题可通过QQ机器人反馈助手反馈 <img :src="$withBotBase('/images/api-231017/qqrobot-feedback.jpg')" alt="feedback">
1315

1416
QQ机器人开放平台支持通过使用HTTP接口接收事件。开发者可通过[管理端](https://q.qq.com)设定回调地址,监听事件等。
1517

@@ -63,15 +65,19 @@ QQ机器人开放平台支持通过使用HTTP接口接收事件。开发者可
6365
| plain_token | 要计算hash的字符串 |
6466
| signature | 签名 |
6567

66-
例如
67-
68+
例如机器人账号
69+
```
70+
appid: 11111111
71+
secret: DG5g3B4j9X2KOErG
72+
```
6873
回调验证请求:
69-
```json
70-
{"d": {"plain_token": "qgg8vlvZRS6UYooatFL8Aw","event_ts": 1654503849680},"op": 13}
7174
```
72-
返回结果:
73-
```json
74-
{"plain_token": "qgg8vlvZRS6UYooatFL8Aw","signature": "23a89b634c017e5364a1c8d9c8ea909b60dd5599e2bb04bb1558d9c3a121faa5"}
75+
headers: User-Agent:[QQBot-Callback] X-Bot-Appid:[11111111]
76+
body: {"d":{"plain_token":"Arq0D5A61EgUu4OxUvOp","event_ts":"1725442341"},"op":13},
77+
```
78+
机器人应返回:
79+
```
80+
body: {"plain_token": "Arq0D5A61EgUu4OxUvOp","signature": "87befc99c42c651b3aac0278e71ada338433ae26fcb24307bdc5ad38c1adc2d01bcfcadc0842edac85e85205028a1132afe09280305f13aa6909ffc2d652c706"}
7581
```
7682

7783
## WebSocket方式

docs/develop/api-v2/dev-prepare/interface-framework/sign.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,17 @@
2929
seed = strings.Repeat(seed, 2)
3030
}
3131
rand := strings.NewReader(seed[:ed25519.SeedSize])
32-
publicKey, _, err := ed25519.GenerateKey(rand)
32+
publicKey, privateKey, err := ed25519.GenerateKey(rand)
33+
```
34+
35+
DEMO
36+
```
37+
【输入】
38+
secret: naOC0ocQE3shWLAfffVLB1rhYPG7
39+
seed: naOC0ocQE3shWLAfffVLB1rhYPG7naOC
40+
【输出】
41+
publicKey: [215 195 98 254 120 174 248 31 242 50 135 180 147 98 139 93 176 42 60 79 227 11 33 94 77 25 96 155 93 118 103 58]
42+
privateKey: [110 97 79 67 48 111 99 81 69 51 115 104 87 76 65 102 102 102 86 76 66 49 114 104 89 80 71 55 110 97 79 67 215 195 98 254 120 174 248 31 242 50 135 180 147 98 139 93 176 42 60 79 227 11 33 94 77 25 96 155 93 118 103 58]
3343
```
3444

3545
- 获取 HTTP Header 中 X-Signature-Ed25519 的值进行 hec (十六进制解码)操作后的得到 Signature 并进行校验
@@ -73,3 +83,15 @@
7383
```go
7484
ed25519.Verify(publicKey, msg.Bytes(), sig)
7585
```
86+
87+
DEMO
88+
```
89+
【输入】
90+
secret: naOC0ocQE3shWLAfffVLB1rhYPG7
91+
body: { "op": 0,"d": {}, "t": "GATEWAY_EVENT_NAME"}
92+
timestamp: 1725442341
93+
94+
【输出】
95+
sig: 865ad13a61752ca65e26bde6676459cd36cf1be609375b37bd62af366e1dc25a8dc789ba7f14e017ada3d554c671a911bfdf075ba54835b23391d509579ed002
96+
97+
```

0 commit comments

Comments
 (0)