efb-wechat-docker 绑定过程记录

系统环境: Centos 7 x64

§初次使用

§新建Telegram Bot

@BotFather 创建个用来对接微信的 Bot,向它发送 /newbot 启动向导,期间需设置 Bot 的 nameuser name ,注意 user name 必须以 bot 结尾,创建完毕后 @BotFather 会返回一个密钥(Token),先记录下来备用。

注意,此 Bot 名与密钥不要提供给任何人,否则可能导致聊天信息泄露等风险。

接下来配置刚建好的 Bot:

  • 发送 /setprivacy 到 @BotFather,选择刚创建好的 Bot,选择 Disable
  • 发送 /setjoingroups 到 @BotFather,选择刚创建好的 Bot,选择 Enable
  • 发送 /setcommands 到 @BotFather,选择刚创建好的 Bot,发送以下内容:
help - 显示命令列表.
link - 将远程会话绑定到 Telegram 群组
chat - 生成会话头
recog - 回复语音消息以进行识别
info - 显示当前 Telegram 聊天的信息.
unlink_all - 将所有远程会话从 Telegram 群组解绑.
update_info - 更新群组名称和头像
extra - 获取更多功能

§获取 User ID

Telegram 中每位用户有一个唯一的数字 ID,可通过 Bot 来查询,以下是一些个人目前已知的 Bot:

获得自己的 User ID 后记录下来备用。

§启动 Docker 并登陆

2024.03.20 镜像更换为和小伙伴合作打包的 j0k3rh/efb-wechat,下文的教程已经适配了这个镜像

2020/12/30 更换镜像为 yhndnzj/efb ,因为之前的很久不更新了,而且配置复用太麻烦,也不支持发送 GIF。

Docker使用 mikubill/efbwechat 这个镜像,尝试了一圈这个是启动最省心的。

首先克隆仓库,仓库中包含了初始化配置文件:

1
git clone https://github.com/wbbk/efb-update efb-update

修改 efb-update/profiles/default 路径下的配置文件:

  1. 主配置文件 efb-update/profiles/default/config.yaml

    • middlewares 定义了启用的转发通道和中间件
      • catbaron.voice_recog 语音转文字
      • patch.PatchMiddleware 手机微信标记已读
      • 默认启用两个插件,如果不需要某个插件,删除或注释对应的行即可
      • 如果两个都不需要,可以直接删除或注释 middlewares 小节
  2. Telegram 配置 efb-update/profiles/default/blueset.telegram/config.yaml

    • token
      • Telegram 的 bot token
      • 后方的值替换为刚才新建 Bot 时保存的 Token
    • admins
      • Telegram 账号的数字 ID
      • 下方的值替换为刚才保存的 Telegram User ID
  3. wechat 配置 efb-update/profiles/default/blueset.wechat/config.yaml

  4. 插件 catbaron.voice_recog 配置 efb-update/profiles/default/catbaron.voice_recog/config.yaml

  5. 插件 patch.PatchMiddleware 配置 efb-update/profiles/default/patch.PatchMiddleware/config.yaml

    • auto_mark_as_read 是否自动在手机微信标记已读
    • remove_emoji_in_title 是否移除 Telegram 群组名称中的 emoji
    • 其他可用配置参考插件仓库: ehForwarderBot/efb-patch-middleware

然后启动镜像:

1
docker compose up -d

启动镜像没有报错的话输入下面这条命令

1
docker logs -f efb-wechat

不出意外的话,稍等片刻终端内即会显示二维码,打开手机微信扫描,确认登陆即可。

§Some Tips

  1. 若运行Docker的机器在国外而登陆微信的手机在国内,会有微信网页版登陆权限被封禁的风险;
  2. 运行Docker期间手机微信不可长期不在线(此处“长期”指超过24小时。。),否则网页版会被踢下线,需重新登陆;
  3. 可以在Telegram内新建若干群组并拉之前建好的微信 Bot 进群,并将各个微信群、好友、公众号等 link 至相应群组即可实现方便的私聊 / 免打扰等功能,自行探索。

§老司机使用

此镜像内的配置文件和所有的微信绑定关系,都在 efb-update/profiles 这个文件夹内,如服务器重装或迁移时,备份这个文件夹并在重新部署容器时挂载上即可。


参考链接:

  1. EFB How-to: Send and Receive Messages from WeChat on Telegram (zh-CN) — 1A23 Blog
  2. Mikubill/efb-wechat-docker: EFB WeChat Slave Docker Ver.
  3. 为docker文件挂载指定卷的问题 · Issue #7 · Mikubill/efb-wechat-docker
  4. YHNdnzj/efb-docker: Docker image for ehForwarderBot