通过 wxBot 搭建个人微信聊天机器人

Sun, Oct 2, 2016 2-minute read

本文的所有工作都是基于开源项目 wxBot

写在前面的废话


我发现我很喜欢写废话。 简单地说就是这几年突然发现国内聊天服务被微信这么垃圾的软 件给垄断了。 虽然网上的朋友们大多都在 IRC, slack, telegram, google hangout, 但 是生活中认识的国内居民大都在用微信。 这只会让我更讨厌某厂。 且不说抄袭问题,单 论功能, 微信的信息分享方式等等也造成了极大的使用阻力。 我常常根本不知道如何将 让人兴奋的消息方便快捷地分享到朋友圈, 也不知道如何直接在群聊和分享功能之间拷贝 黏贴。 如此弱智的设计的一个明显结果就是微信信息圈的极度闭塞。 看看朋友圈里面砸 人一脸的垃圾信息, 不难猜想很多人像我一样, 在尝试几次直接分享失败之后就抛弃它了 吧。

幸好还有办法架设一个私人机器人。 在找到最合适方法之前, 无数尝试性的搭建都在要 求我绑定银行卡。 以我正常得不能再正常的思维, 很难想象一个正经的聊天软件会要求 你绑定银行卡啊! (插一句, 居然不绑定银行卡还不能被拉入大群聊!)

写到这里我觉得本文的重点已经变成了吐槽。 这一切都是垃圾的软件造成的。 套用一句 电视剧台词: 真是毫无矜持!

搭建


相比 IRC, slack, 这个机器人写起来简直毫无难度。 因为一切都被 wxBot 这个项目写 好了。 在自己的文件里面只需要实现一下。

下面简要说一下我自己已经实现的功能和好玩的想法。


### 在线信息提示

这不能更简单。 我对机器人说 “afk” 或者 “back” 来改变状态。 (状态被写在一个变 量里面。) 然后机器人根据我的状态来给聊天的对方发出提示。


### 讲段子

我不会爬虫, 否则应该有更好的效果。 目前的实现方式是让 Linux 下有名的小工具 fortune 来讲故事。 我给 fortune 加了好多标准库之外的信息源, 比如唐诗宋词, 猥琐小笑话之类。


### 对诗

这也很容易实现。 唯一的困扰就是该死的 python2 编码问题。 我在 ‘utf-8’ 问题上反 复绕了好几个小时。 最后的效果就是可以自动根据对方的诗句来回答上半句或者下半句。

Screenshot of wechat with bot v4.


### 其他想法
  • 设计一些文字小游戏, 比如地下城和僵尸之类
  • 成语接龙游戏
  • 外文字典
  • 天气查询

总之就是, 我觉得我真是很无聊!


所有实现都可以 在 此处 找到。