当启用代理发布时,系统会自动使用代理所在地区作为发布位置,避免账号地区与发布位置不一致触发风控。
# 在 app.py 中
if proxy_payload.get('enabled'):
proxy_city = proxy_payload.get('city', '').strip()
if proxy_city:
location = proxy_city # 自动设置为代理地区
params = PublishParams(
title=title,
video_path=video_path,
location=location # 使用代理地区
)
# 在 weixin.py 的 add_title_tags 方法中
if params.location:
await self.set_location(params.location)
POST /publish/ai-assisted
{
"platform": "weixin",
"proxy": {
"enabled": true,
"provider": "shenlong",
"productKey": "xxx",
"signature": "xxx",
"regionCode": "310000",
"city": "上海" // ← 自动使用这个
}
}
系统会自动:
city 字段{
"platform": "weixin",
"location": "北京", // ← 手动指定
"proxy": {
"enabled": true,
...
}
}
微信视频号发布页面的位置选择 UI 可能因版本/账号而异。当前实现了以下查找策略:
查找位置输入框:
input[placeholder*="位置"]input[placeholder*="所在"]input[placeholder*="地点"]查找位置按钮:
div:has-text("所在位置")div:has-text("添加位置")输入并选择:
检查代理配置:
{
"proxy": {
"city": "上海" // 确保这个字段存在
}
}
[weixin] 准备设置位置: 上海 [weixin] 正在设置位置: 上海 [weixin] 找到位置元素: xxx [weixin] ✓ 位置设置成功: 上海
3. **手动指定位置**:
```json
{
"location": "上海" // 手动指定
}
# 启动服务时禁用缓冲
PYTHONUNBUFFERED=1 python app.py --headless false
发布完成后的截图会显示最终的位置设置状态。
{
"headless": false // 显示浏览器窗口
}
在浏览器窗口中观察位置设置过程。
如果微信更新了发布页面UI,位置选择器可能失效。
解决方法:更新 weixin.py 中的 set_location 方法的选择器列表。
如果输入的位置没有精确匹配的建议项,系统会尝试选择第一个建议。
解决方法:使用标准城市名称(如"上海"而非"上海市")。
const response = await fetch('http://localhost:5005/publish/ai-assisted', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
platform: 'weixin',
proxy: {
enabled: true,
city: '上海' // 测试自动匹配
}
})
});
✅ 使用代理地区作为发布位置: 上海
✅ 准备设置位置: 上海
✅ 正在设置位置: 上海
✅ 找到位置元素
✅ 位置设置成功: 上海
不同平台的位置设置方式不同:
如需支持其他平台,请在对应的 platforms/xxx.py 中实现 set_location 方法。