Wechaty基本入门(老版)

Wechaty模块简介

wechaty 支持多语言+多协议+多平台,对于开发者来说,需要申请一个token才能用,试用期15天,如果希望长期试用需要进一步为生态做贡献。

一些常见Q&A

文档参考 (完善中)

Wechaty Token 申请及使用文档

基本架构:

Puppet含义说明:

The term Puppet in Wechaty is an Abstract Class for implementing protocol plugins. The plugins are the component that helps Wechaty to control the Wechat(that's the reason we call it puppet).

The plugins are named XXXPuppet, like PuppetPuppeteer is using the chrome puppeteer to control the WeChat Web API via a chrome browser, PuppetPadchat is using the WebSocket protocol to connect with a Protocol Server for controlling the iPad Wechat program.

(参考自:已失效

Wechaty Puppet Hostie部署:

1 部署前置准备:

一个满足以下三点要求的服务器:

  • Public IP
  • Public Port
  • Docker

2 部署Wechaty Puppet Hostie

Wechaty团队支持基于docker快速的部署,很方便。

具体代码如下(本人服务器为CentOS6.0)

docker pull wechaty/wechaty

export WECHATY_TOKEN=your_token_here
export WECHATY_HOSTIE_PORT=8788
export WECHATY_PUPPET_PADPLUS_TOKEN=token_from_wechaty
export WECHATY_PUPPET=wechaty-puppet-padplus 
export WECHATY_LOG=verbose

docker run \
 --rm \
 -dit \
 -e WECHATY_LOG \
 -e WECHATY_PUPPET \
 -e WECHATY_HOSTIE_PORT \
 -e WECHATY_TOKEN \
 -e WECHATY_PUPPET_PADPLUS_TOKEN\
 -p "$WECHATY_HOSTIE_PORT:$WECHATY_HOSTIE_PORT" \
 wechaty/wechaty

以上过程主要参考自https://github.com/wechaty/wechaty/issues/1986 中的Usage部分

其中需要注意的有:

  • WECHATY_TOKEN为自行设定的一串字符串

  • WECHATY_PUPPET_PADPLUS_TOKEN需求填写申请从官方客服那获得

  • WECHATY_PUPPET可以切换成其他的协议 具体可参考 Wechaty支持的后端协议

Use Your Wechaty Token部分的内容为node.js示例,其他语言可忽略

3 验证Wechaty Puppet Hostie

访问https://api.chatie.io/v0/hosties/WECHATY_TOKEN,其中WECHATY_TOKEN是指你刚刚自行设定的Token,当返回结果为服务器的Public IP时则说明部署成功,为0.0.0.0时则说明部署失败~

4 基于Python测试Wechaty

wechaty官方测试用例十分简单

  1. 配置好python环境
  • 根据官方说明Wechaty仅支持Python3.7+
  • 安装wechaty包
pip install wechaty -i https://pypi.tuna.tsinghua.edu.cn/simple/
  1. 配置环境变量
export WECHATY_PUPPET=wechaty-puppet-hostie
export WECHATY_PUPPET_HOSTIE_TOKEN=your_token_here
  1. 运行python示例代码
from wechaty import Wechaty
import asyncio

async def main():
    bot = Wechaty()
    bot.on('scan', lambda status, qrcode, data: print('Scan QR Code to login: {}\nhttps://wechaty.wechaty.js/qrcode/{}'.format(status, qrcode)))
    bot.on('login', lambda user: print('User {} logged in'.format(user)))
    bot.on('message', lambda message: print('Message: {}'.format(message)))
    await bot.start()
asyncio.run(main())

运行成功后扫描二维码,即可实现登陆~

其他语言运行示例代码可参考:

往年同期文章