本文环境:安装了 Raspbian 的树莓派, EFB 2.0 。
EFB (EH Forwarder Bot) 是由 Eana Hufwe 编写的框架,可以让用户在不同的聊天平台上互相通信。本文介绍如何使用 EFB,在树莓派上建立一个 telegram 机器人,实现 telegram 上查看和回复微信消息的功能。也可以在 VPS 上实现这一功能。
准备
获取一个 Telegram Bot
首先在 Botfather 那里注册一个 bot,获得 token 。
知道自己的 Telegram ID
在 get_id_bot 处得到自己的 ID 。
树莓派配置
由于 raspbian 的 stable 库中提供的 python 版本为 3.5,而 EFB 最低要求 3.6 。所以我选择将 raspbian 升级到 testing 版本。
1 | vim /etc/apt/sources.list |
将其中的 stretch
改为 testing
,然后升级。
1 | sudo apt update |
升级的过程有点漫长,结束后发现报错,提示 udev 的 systemd 服务没有启动成功,导致 udev 没有配置完成,于是几个其他依赖 udev 的包都没有配置。这与网络上 failed to start udev kernel device manager 的这个问题情况相同,清除掉 raspi-copies-and-fills 这个包可以暂时解决:
1 | sudo apt purge raspi-copies-and-fills -y |
由于网络原因,安装 proxychains:
1 | sudo apt install proxychains -y |
设置 proxychains :
1 | sudo vim /etc/proxychains.conf |
将 proxychains.conf
文件最后部分的代理配置修改为:
1 | socks5 127.0.0.1 1081 |
这里使用了树莓派上运行在 1081 端口上的 SSR 代理。
解决 proxychains 找不到库的问题:
1 | sudo vim /usr/bin/proxychains |
找到 LD_PRELOAD
处,修改为:
1 | LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libproxychains.so.3 |
安装 EFB
安装依赖(来源网络,是否有多余的软件包未经检验):
1 | sudo apt install ffmpeg libmagic-dev libwebp-dev libjpeg8-dev python3-yaml python3-setuptools python3-wheel -y |
安装 EFB 框架
1 | pip3 install --user ehforwarderbot |
安装 EFB Telegram Master Channel (ETM)
1 | pip3 install --user efb-telegram-master |
安装 EFB WeChat Slave Channel (EWS)
1 | pip3 install --user efb-wechat-slave |
配置
编辑 EFB 配置文件:
1 | mkdir -p ~/.ehforwarderbot/profiles/default ~/.ehforwarderbot/profiles/default/blueset.wechat |
1 | master_channel: blueset.telegram |
编辑 ETM 配置文件:
1 | vim ~/.ehforwarderbot/profiles/default/blueset.telegram/config.yaml |
1 | token: "123456789:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" |
此处的 token
和 admin
就分别是你之前准备好的机器人令牌和用户 ID 。
后台启动
考虑到微信需要扫码,使用 screen 运行后台。
1 | sudo apt install screen -y |
按 Ctrl + A + D
可退出。
恢复会话:
1 | screen -r w2t |
使用
在与机器人的对话中,使用 /chat
命令可以选择对象,返回一个会话头,回复此会话头可以与相应的用户聊天。Telegram 中直接回复他人的消息就可以在相应微信对话中回复。