让 AI 助手帮你发朋友圈,解放双手的同时保持社交活跃。
引言 作为一名长期使用 Ubuntu 的开发者,微信在 Linux 上的体验始终是个痛点。虽然腾讯官方推出了 Linux 版微信,但相比 Windows/Mac 版本,功能仍然相对简陋,更别提 API 接口的开放了。
但作为一名 OpenClaw 的重度用户,我一直在思考:能否让 OpenClaw 帮我发朋友圈? 答案是肯定的。通过 GUI 自动化技术,我们可以让 OpenClaw 模拟人工操作,实现自动发朋友圈的功能。
技术方案选型 为什么不能直接调用 API? 微信 Linux 客户端并未提供官方 API,网页版微信也早已停止维护。因此我们无法像飞书那样直接调用接口发送消息。
xdotool 是一个强大的 X11 自动化工具,可以:
模拟鼠标点击和移动
模拟键盘输入
窗口管理(查找、激活、移动等)
获取窗口几何信息
配合 xclip 处理中文输入,我们可以完美模拟人工操作流程。
实现方案 整体架构 用户指令 (自然语言) ↓ OpenClaw Skill 解析 ↓send -wechat-moments 脚本 ↓ xdotool 自动化操作 ↓ 微信客户端发朋友圈
核心脚本设计 我创建了两个核心工具:
工具
功能
wechat-moments-config
校准屏幕坐标,保存配置文件
send-wechat-moments
执行发朋友圈的自动化流程
详细实现步骤 第一步:安装依赖 sudo apt-get updatesudo apt-get install -y xdotool xclip
xdotool : X11 自动化核心工具
xclip : 命令行剪切板工具,用于输入中文
第二步:校准坐标 由于每个人的屏幕分辨率和微信窗口位置不同,我们需要先校准关键位置的坐标:
~/.openclaw/tools/wechat-moments-config
这个交互式脚本会引导你完成以下步骤:
朋友圈图标位置 - 微信左侧栏的发现/朋友圈入口
相机按钮位置 - 朋友圈页面右上角的发表按钮
文本输入区域 - 文字输入框的位置
发布按钮位置 - 右上角的发表确认按钮
配置完成后,坐标会保存到 ~/.openclaw/tools/wechat-moments.conf。
第三步:发朋友圈脚本 核心脚本 send-wechat-moments 的工作流程:
关键代码片段 - 窗口激活:
WINDOW_ID=$(xdotool search --name "微信" 2>/dev/null | head -1)if [ -z "$WINDOW_ID " ]; then WINDOW_ID=$(xdotool search --name "WeChat" 2>/dev/null | head -1)fi if [ -z "$WINDOW_ID " ]; then WINDOW_ID=$(xdotool search --class "WeChat" 2>/dev/null | head -1)fi xdotool windowactivate "$WINDOW_ID " xdotool windowraise "$WINDOW_ID "
关键代码片段 - 中文输入:
echo -n "$TEXT " | xclip -selection clipboard xdotool key ctrl+v
直接输入中文在 X11 自动化中是个难题,通过剪切板中转是最可靠的方式。
使用方式 命令行直接使用 ~/.openclaw/tools/send-wechat-moments -t "今天学习 OpenClaw,真有趣!" ~/.openclaw/tools/send-wechat-moments -t "周末郊游" -i ~/Pictures/photo.jpg
集成到 OpenClaw 创建 Skill 配置文件 ~/.openclaw/skills/wechat-moments/SKILL.md:
## 使用场景 当用户想要发朋友圈、发布文字到朋友圈、分享图片到朋友圈时。## 示例 **User** : 帮我发条朋友圈,内容是"今天学习了新知识!"**Command** :```bash ~/.openclaw/tools/send-wechat-moments -t "今天学习了新知识!"
这样,你只需要对 OpenClaw 说: > "帮我发条朋友圈,内容是今天跑步 10 公里,感觉棒极了!" OpenClaw 就会自动调用脚本帮你发布。 --- 让我们看一个完整的交互流程:
用户: Kimi,帮我发一条朋友圈,配文”终于搞定了 OpenClaw 发朋友圈的功能!”
OpenClaw: 📱 正在激活微信窗口… ✓ 微信窗口已激活 📷 正在打开发布界面… ✓ 发布界面已打开 ⌨️ 正在输入文字… ✓ 文字已输入 🚀 正在发布… ✓ 发布完成
✅ 朋友圈发布成功! 内容: 终于搞定了 OpenClaw 发朋友圈的功能!
 --- 1 . **发布过程中不要操作鼠标键盘**,否则自动化会中断 2 . **微信窗口需要保持可见**,不能被其他窗口遮挡或最小化 3 . **坐标是相对于屏幕的**,移动窗口或改变分辨率后需要重新配置 4 . **中文依赖 xclip**,确保已正确安装 - 此方案仅在本地执行,不涉及微信账号密码上传到云端 - 所有操作都在用户已登录的微信客户端上进行 - 不会突破微信的安全限制,只是模拟人工点击 - 需要保持微信客户端运行 - 如果微信界面有大的改版,可能需要更新坐标 - 无法获取发布结果的状态(是否成功、点赞数等) --- 你可以配合 cron 实现定时发朋友圈: ```bash 0 8 * * * /home/wenjun/.openclaw/tools/send-wechat-moments -t "早安!$(date +%Y-%m-%d)" >> /tmp/moments.log 2 >&1
结合 AI 生成内容 让 OpenClaw 先调用 AI 生成朋友圈文案,再自动发布:
用户: 帮我生成一条关于今天下雨的朋友圈,并发布 OpenClaw: 1. 调用 Gemini 生成文案 → "雨天的城市,别有一番韵味..." 2. 调用 send-wechat-moments 发布
多账号支持 如果你有多个微信账号,可以创建多个配置文件:
~/.openclaw/tools/send-wechat-moments -c ~/.openclaw/tools/wechat-moments-work.conf -t "工作号测试" ~/.openclaw/tools/send-wechat-moments -c ~/.openclaw/tools/wechat-moments-personal.conf -t "个人号测试"
完整代码 完整的脚本已上传到 GitHub Gist,你可以直接复制使用:
mkdir -p ~/.openclaw/tools ~/.openclaw/skills/wechat-moments curl -o ~/.openclaw/tools/wechat-moments-config \ https://gist.githubusercontent.com/yourname/wechat-moments-configchmod +x ~/.openclaw/tools/wechat-moments-config curl -o ~/.openclaw/tools/send-wechat-moments \ https://gist.githubusercontent.com/yourname/send-wechat-momentschmod +x ~/.openclaw/tools/send-wechat-moments
总结 通过 xdotool 和 OpenClaw 的结合,我们成功实现了在 Linux 环境下自动发朋友圈的功能。虽然这只是一个 GUI 自动化的 workaround,但在微信不提供官方 API 的情况下,这是一个实用且可靠的解决方案。
这个方案的核心价值在于:
自动化重复操作 - 解放双手
AI 驱动 - 结合 OpenClaw 的自然语言理解能力
可扩展 - 可以进一步集成定时任务、AI 内容生成等
希望这篇分享对同样在 Linux 下使用微信的朋友有所帮助!
相关资源:
Happy hacking! 🚀
文章作者: 阿文
版权声明: 本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0 许可协议。转载请注明来自
阿文的博客 !
评论
0 条评论