Telegram 接收并回复微信消息

Contents
  1. 1. 准备
    1. 1.1. 获取一个 Telegram Bot
    2. 1.2. 知道自己的 Telegram ID
    3. 1.3. 树莓派配置
  2. 2. 安装 EFB
  3. 3. 配置
  4. 4. 后台启动
  5. 5. 使用

本文环境:安装了 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
2
3
sudo apt update
sudo apt dist-upgrade -y
sudo apt autoremove -y

升级的过程有点漫长,结束后发现报错,提示 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 文件最后部分的代理配置修改为:

/etc/proxychains.conf
1
socks5 127.0.0.1 1081

这里使用了树莓派上运行在 1081 端口上的 SSR 代理。

解决 proxychains 找不到库的问题:

1
sudo vim /usr/bin/proxychains

找到 LD_PRELOAD 处,修改为:

/usr/bin/proxychains
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
2
mkdir -p ~/.ehforwarderbot/profiles/default ~/.ehforwarderbot/profiles/default/blueset.wechat
vim ~/.ehforwarderbot/profiles/default/config.yaml
~/.ehforwarderbot/profiles/default/config.yaml
1
2
3
master_channel: blueset.telegram
slave_channels:
- blueset.wechat

编辑 ETM 配置文件:

1
vim ~/.ehforwarderbot/profiles/default/blueset.telegram/config.yaml
~/.ehforwarderbot/profiles/default/blueset.telegram/config.yaml
1
2
3
4
5
token: "123456789:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
admins: 123456789
flags:
chats_per_page: 20
network_error_prompt_interval: 250

此处的 tokenadmin 就分别是你之前准备好的机器人令牌和用户 ID 。

后台启动

考虑到微信需要扫码,使用 screen 运行后台。

1
2
3
sudo apt install screen -y
screen -S w2t
proxychains ehforwarderbot

Ctrl + A + D 可退出。

恢复会话:

1
screen -r w2t

使用

在与机器人的对话中,使用 /chat 命令可以选择对象,返回一个会话头,回复此会话头可以与相应的用户聊天。Telegram 中直接回复他人的消息就可以在相应微信对话中回复。

Mastodon