From 0ccfcf6588420eaf485bd14892b2bf3ee1db4e78 Mon Sep 17 00:00:00 2001 From: xcosmosbox <2162381070@qq.com> Date: Tue, 24 Mar 2026 15:51:15 +0800 Subject: [PATCH] fix(WeiXin): version migration --- README.md | 1 + nanobot/channels/weixin.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5ec339701..448351fdd 100644 --- a/README.md +++ b/README.md @@ -757,6 +757,7 @@ pip install -e ".[weixin]" > - `allowFrom`: Add the sender ID you see in nanobot logs for your WeChat account. Use `["*"]` to allow all users. > - `token`: Optional. If omitted, log in interactively and nanobot will save the token for you. +> - `routeTag`: Optional. When your upstream Weixin deployment requires request routing, nanobot will send it as the `SKRouteTag` header. > - `stateDir`: Optional. Defaults to nanobot's runtime directory for Weixin state. > - `pollTimeout`: Optional long-poll timeout in seconds. diff --git a/nanobot/channels/weixin.py b/nanobot/channels/weixin.py index 2e25b3569..3fbe329aa 100644 --- a/nanobot/channels/weixin.py +++ b/nanobot/channels/weixin.py @@ -4,7 +4,7 @@ Uses the ilinkai.weixin.qq.com API for personal WeChat messaging. No WebSocket, no local WeChat client needed — just HTTP requests with a bot token obtained via QR code login. -Protocol reverse-engineered from ``@tencent-weixin/openclaw-weixin`` v1.0.2. +Protocol reverse-engineered from ``@tencent-weixin/openclaw-weixin`` v1.0.3. """ from __future__ import annotations @@ -799,7 +799,7 @@ class WeixinChannel(BaseChannel): ) -> None: """Upload a local file to WeChat CDN and send it as a media message. - Follows the exact protocol from ``@tencent-weixin/openclaw-weixin`` v1.0.2: + Follows the exact protocol from ``@tencent-weixin/openclaw-weixin`` v1.0.3: 1. Generate a random 16-byte AES key (client-side). 2. Call ``getuploadurl`` with file metadata + hex-encoded AES key. 3. AES-128-ECB encrypt the file and POST to CDN (``{cdnBaseUrl}/upload``).