docs: 修正 iLink 扫码登录——get_bot_qrcode 为 POST+local_token_list、iLink-App-Id/ClientVersion 头、完整状态机、码TTL≈60s与'换码竞态'两坑(实测+官方源码)

This commit is contained in:
AskaEth committed 2026-09-08 02:36:54 +08:00
1 parent 6bc0827b82
commit 38b776705d
2 files changed
+97 -22

No files matched your search

+5 -3
View File
@@ -23,12 +23,14 @@
- 接入域名:`https://ilinkai.weixin.qq.com`
- CDN 域名:`https://novac2c.cdn.weixin.qq.com/c2c`
- 核心端点:`get_bot_qrcode` / `get_qrcode_status`(登录)、`getupdates`(长轮询收)、`sendmessage`(发)、`getconfig` / `sendtyping`(输入中)、`getuploadurl`(媒体上传)
- 鉴权:`Authorization: Bearer <bot_token>`,token 由扫码登录获得,长期有效
- 三个最容易踩的坑:
- 核心端点:`get_bot_qrcode`(扫码登录,**POST + body `{"local_token_list":[]}`**,非裸 GET)、`get_qrcode_status`(轮询状态)、`getupdates`(长轮询收)、`sendmessage`(发)、`getconfig` / `sendtyping`(输入中)、`getuploadurl`(媒体上传)
- 鉴权:`Authorization: Bearer <bot_token>`,token 由扫码登录获得,长期有效;登录请求还带 `iLink-App-Id: bot` + `iLink-App-ClientVersion`(**数字编码**如 `132104`,非字符串 `"1"`),见 02 §3
- 五个最容易踩的坑:
1. `get_updates_buf` 游标必须持久化并每次更新,否则重复收消息
2. 回复必须带原消息的 `context_token`,否则关联不到对话
3. 媒体文件全部是 AES-128-ECB 加密传输,密钥处理方式见 03 文档
4. **扫码二维码服务端 TTL ≈ 60 秒**——必须"生成→扫"在窗口内,或自动换新码(见 02 §4.5)
5. **已扫码未确认时绝不能再换码**——换码会砍掉确认会话,微信端显示成功但后端永远收不到 `confirmed`(见 02 §4.5「换码竞态」,本机实测最痛的坑)
## 典型接入架构(Bridge 模式)