feat(channel): KOOK Webhook(WH) 接收模式——与 WS 配置切换(ReceiveMode)
- kook.Config 加 ReceiveMode("ws"默认/"webhook") + WebhookPath(默认/webhook/kook) + WebhookVerifyToken + WebhookEncryptKey(AES-256-CBC)
- 按权威文档(Reference/kaiheila webhook.md)实现: 无X-Signature HMAC, 真实校验=d.verify_token比对(不匹配403)+可选AES解密+zlib解压+challenge回显
- webhook.go: InboundHandler+WebhookPath, POST→zlib解压→AES解密→verify_token校验→challenge回显→归一UnifiedMessage→SetMessageHandler; WS模式Connect不拨网关仅标记connected
- channelbridge/webhookAdapter 接口改用 WebhookPath(); WebhookHandlers 收KOOK WH(ws模式跳过); 既有webhook通道补WebhookPath照常挂载
- namedAdapter 转发InboundHandler/WebhookPath; kook env兜底 +4个CHANNEL_KOOK_*键
- 测试: verify_token 403/challenge/zlib/AES往返/WebhookPath按模式/WH不拨gateway/WebhookHandlers收KOOK; 全仓build/vet/test绿
- 待真token端到端实测(需主人提供CHANNEL_KOOK_TOKEN+开发者后台切WebHook配回调URL)
This commit is contained in:
1 parent
1ebc82fffd
commit
617157262b
11 files changed
+981
-32
No files matched your search
@@ -141,6 +141,11 @@ func (a *Adapter) normalize() {
|
||||
}
|
||||
}
|
||||
|
||||
// WebhookPath returns the route the gateway mounts the inbound handler at. It is
|
||||
// the normalized EndpointPath (default "/webhook"), satisfying the channel
|
||||
// bridge's webhookAdapter contract.
|
||||
func (a *Adapter) WebhookPath() string { return a.cfg.EndpointPath }
|
||||
|
||||
// Name returns the platform identifier "webhook".
|
||||
func (a *Adapter) Name() string { return PlatformName }
|
||||
|
||||
|
||||
Reference in new issue
Block a user