EFB for WeChat running via Docker

Update 2019-08-30: 换了一个更好用的 Docker Container。

排版非常糟糕,但是我实在懒得修改排版了,因为少数派的在线编辑器实在是太难用了,也不支持 Markdown。

Prerequisite:

  1. 一个能安装 Docker 环境的服务器
  2. Telegram 账号,用你的个人账号申请一个 bot
  3. 对 Linux 有基本的了解和使用经验
  4. 遇到问题善于使用搜索工具

在 VPS 上部署 EFB 收发微信消息的优缺点:

优点:

  1. 全平台同步聊天记录
  2. 摆脱微信电脑客户端
  3. 如果有多个微信账号,可以在一个 Telegram 账户中轻松切换(但是需要另一个手机/iPod touch 登录账号)

缺点:

  1. 容易掉线,我自己的使用经验是一天需要重启至少一次
  2. 基于网页版微信,所以功能仅限网页版微信提供的功能
  3. 被封号的风险
如果无法忍受缺点,尤其是无法忍受容易掉线导致发送消息失败,请不要使用!

安装步骤:

1. 安装 Docker 环境:

这里以 Ubuntu 为例,如果是其他系统请参照 Docker 官方文档 Docker installation
先更新 apt
$ sudo apt-get update
然后安装:
$ sudo apt-get install docker-ce
如果想检查一下安装是否成功的话,运行一下官方提供的 hello world:
$ sudo docker run hello-world

2. 必要的 Telegram 信息

本质上 EFB 是一个在 Telegram bot 和微信网页版的中间人,所以,EFB 需要知道发给哪个 Telegram 账号,以及发给哪个微信账号。微信账号的认证在最后的扫码阶段,而 Telegram 的账号认证则写在 EFB 的配置文件里面。所以,现在使用 Telegram 获得所需要的 bot token 和你的 Telegram 账号 ID。

bot token:

  1. 在 Telegram 里搜索 BotFather,然后 /start
  2. 输入 /newbot,此时 Telegram 会要求你输入 bot 的 name 和 username。这两者的区别是 username 一定要以 bot 结尾。输一个简单好记的 name 作为 bot name
  3. 记下获得的 API
  4. 输入 /setprivacy,之后输入 Disable,这样才可以在 Telegram 里面使用群组连接微信联系人。

admin id:

  1. 搜索 get_id_bot,然后 /start
  2. 记下 Chat ID

3. 运行 Docker Container


先将容器拖到本地:
docker run -d --restart=unless-stopped --name wechat bao3/ehforwarderbot2wechat

等待完成,之后修改配置文件:
docker exec -it wechat nano /wechat.yaml

填入之前在 Telegram 获得的 Token 和 Admin ID,然后退出。编辑器默认使用 nano,直接按照终端窗口的快捷键提示退出保存。

重启这个容器并扫码登录:
docker restart wechat && docker logs -f wechat

这个容器是 EFB V2 版,可以手动绑定公众号输出到 RSSHub 且不需要挂载外部数据库,比之前那个简单非常多。

其他注意事项:

  1. 虽然不知道是谁的问题,但是建议每 12 个小时重启一次 container,否则可能会出现 Telegram 端无法把消息传送到微信的问题:docker container restart -t 2 YOUR_CONTAINER_NAME
  2. 微信的部分表情包无法在 Telegram 端显示,不过不影响整体使用。

参考:

EH Forwarder Bot




2

登录 使用文章全部功能