在当今自动化和智能化需求日益增长的时代,企业微信、公众号、小助手等自动聊天工具层出不穷。Wechaty 是一个跨平台的聊天机器人 SDK,支持多语言开发,包括 JavaScript、Python、Go、Rust 等,帮助开发者快速构建微信机器人。
本文将介绍如何基于 Python 语言使用 Wechaty,构建一个简单的微信机器人。
Wechaty 是一个专为微信生态设计的聊天机器人框架,它支持私有部署、云端服务,并提供多种 Puppet 插件接入微信协议,如:
wechaty-puppet-wechat4u
(个人微信网页版)wechaty-puppet-padplus
(已停用)wechaty-puppet-service
(推荐,官方提供 token 服务接入)wechaty-puppet-wecom
(企业微信)确保本地已安装 Python3.7+,推荐使用 Python3.9 版本:
python3 --version
pip3 --version
建议创建虚拟环境:
python3 -m venv .venv
source .venv/bin/activate
pip install wechaty
访问 https://wechaty.js.org/docs/puppet-services/ 并注册一个账号,获取免费的 puppet_service_token
。这是连接微信服务的关键凭据。
from wechaty import Wechaty, Message, Contact
class MyBot(Wechaty):
async def on_message(self, msg: Message):
text = msg.text()
talker = msg.talker()
print(f'Message from {talker.name}: {text}')
if text.lower() == 'ping':
await msg.say('pong')
if __name__ == '__main__':
import asyncio
asyncio.run(MyBot().start())
上述代码会监听微信消息,如果有人发“ping”,机器人会回复“pong”。
你可以通过环境变量指定你的 puppet_service_token
:
export WECHATY_PUPPET=wechaty-puppet-service
export WECHATY_PUPPET_SERVICE_TOKEN=your_token_here
python bot.py
或者直接在代码中指定:
bot = MyBot()
bot.options.puppet = 'wechaty-puppet-service'
bot.options.puppet_token = 'your_token_here'
asyncio.run(bot.start())
如果你不想本地安装所有依赖,可以用 Docker 来运行 Wechaty:
docker run -e WECHATY_PUPPET=wechaty-puppet-service \
-e WECHATY_PUPPET_SERVICE_TOKEN=your_token \
wechaty/wechaty
无法连接服务端
错误:WechatyPuppetGrpcError: service server is invalid
原因:puppet_token
不正确或网络不通
消息接收不到
请检查是否扫码登录成功,或是否被微信屏蔽
Docker 拉取失败
使用国内代理,如 dockerproxy.com
或配置镜像加速器
通过 Wechaty Python SDK,我们可以快速构建一个可响应消息的微信机器人。借助 puppet-service 的云服务,我们无需逆向协议,即可专注于业务逻辑开发。
如果你希望进一步构建带有关键词自动回复、定时提醒、聊天记录存储甚至连接 ChatGPT 的智能机器人,Wechaty 将是一个非常理想的框架选择。