最佳实践

1. 规则

2. 使用docker 运行

Docker Pullsarrow-up-right Docker Layersarrow-up-right

最新版的 Wechaty Docker Image (v0.22)预装了所有的 puppet ,包括 puppeteer 和 padchat 等代码里面预设的所有.

Wechaty Docker 同时支持JavaScript 和TypeScript。因为我们使用 ts-node 运行代码,所以你不需要编译,只需要将拓展名改为.ts即可使用TypeScript。

2.1 使用 JavaScript 运行

2.2 使用TypeScript 运行

了解更多:Wiki:Dockerarrow-up-right.

3. 机器人启动方法

进一步说明:在启动的时候设置wechaty 的 name(旧版本叫profile) 来存储机器人的登陆信息,登陆后会自动生成一个*.memory-card.json 的文件,这样再次运行的时候,就不需要扫码就可以直接登陆机器人了。

4. 为方法调用设置合理间隔

为了防止微信封号,wechaty 内置了队列,详细可见:rx-queuearrow-up-right

我们也建议开发者在调用wechaty 方法的时候,也自行设置间隔,数值建议如下:

  • 发送消息:1s

  • 修改备注:10s

  • 添加好友: 5min

  • 自动通过好友请求:1min

  • 持续更新中。。。

5. 日志说明

wechaty 使用了 brologarrow-up-right 作为日志工具,默认打印的级别是`verbose`, brolog 共有的级别从高到低分别为:

  • silent

  • error

  • warn

  • info

  • verbose

  • silly

有以下两种方式来设置LOG 的级别:

  1. 可以通过设置环境变量 `WECHATY_LOG` 的方式设置LOG的级别

  2. 在代码中设置:

6. 使用热加载

docker运行的bot文件如何debug?像nodemon那样?

wechaty 提供了hot-import 模块,参考:https://github.com/Chatie/wechaty-getting-started/tree/master/examples/professional/hot-import-botarrow-up-right

7. 推荐版本

如何理解Wechaty 及相关Puppet 的版本号

简单回答:

次要版本号是偶数数字是生产版本。

详细回答:

Wechaty 根据 http://semver.org/arrow-up-right 的规则制定版本号,并使用次要版本号来发布的版本是生产版本还是开发版本。

数字的规则:

  1. 偶数版本,如0.8,0.12,是用于生产环境的

  2. 奇数版本,如0.11,0.13,是发布的开发版本

参考 wechaty issue #905arrow-up-rightwechaty issue 1158arrow-up-right, 当语义版本的次要版本号是技术的时候,意味着它是开发分支,建议不要上生产环境。

偶数版本 例子: (用于生产环境)

  • 0.16.1

  • 0.16.2

  • 1.0.1

  • 1.0.2

技术版本 例子: (用于开发环境)

  • 0.15.1

  • 0.15.2

  • 1.1.1

  • 1.1.2

同时,只要代码通过了Travis CI 的自动化测试,我们会发布所有版本的NPM包。

如果想了解更多:How to Understand the Wechaty Semantic Versioning?arrow-up-right

8. 环境要求

9. 相关拓展包说明

10. 代码示例

示例代码chevron-right

Last updated

Was this helpful?