Why Telegram?
封闭而落后的微信已经逐渐无法跟上时代的发展脚步,中立而现代的Telegram在Whatsapp被Facebook收购后,逐渐成为了广大Geek的首选,它不仅功能强大,支持10万人群组,支持各种机器人,消息全平台同步,而且也完全免费且开源。由于其GPL License以及开放API,第三方Telegram客户端在市场上百花齐放。其安全性尚有争议,在这里本文提示,尽量不要使用任何不开源的第三方Telegram客户端。
Why This bot?
当然,使用Telegram可以体验到先进的IM软件的一切优点,但由于种种原因,Telegram并无法在中国大陆直接使用,这就导致了说服同学、家人、朋友使用该软件可谓是难上加难,不管Telegram多么好,他们依旧要继续使用落后的微信,而我们使用IM通常是还是要和这些同学、朋友联系的,不然IM就失去了它的意义。这时候,一个解决方案出现了,由blueset开源的ehForwarderBot提供了一种几乎完美的解决方案,那就是利用Telegram收发微信消息。
Why this guide?
现有的网络上的Telegram微信互联教程基本都是基于ehForwarderBot1.x的,而同样的方法在2.x时代已经不再适用,而官方文档是全英文的,因此我在此处提供一个概要的指南来提供最新解决方案的搭建问题。
原理
这里就不详细介绍了,想仔细了解请参阅官方文档。简单的来说就是 EhforwarderBot是一个中间平台,master端为Telegram对应的模块,可以收发微信消息,同时进行一些简单的操作,利用Telegram的Bot机制实现。slave端则为模拟微信Web端的操作,通过微信Web端的代码分析实现消息的收发。注意,正如原文中所提示,你使用该Bot时可能会更换IP地址,因而可能会导致你的微信Web端登陆被封禁一段时间,对微信Web端有依赖的请谨慎使用本Bot(手机端不受影响)。
准备工作
首先你需要有一台墙外的VPS,(理论上你可以将这个Python程序装入Docker容器中然后部署至Heroku免费的deyno上,这里由于时间限制暂时先不讨论该方案),因为该VPS需要能直接访问Telegram和微信的服务器。
服务器端你需要有python3.6或以上版本,客户端需要能够连接至服务端。
申请Bot并配置
首先在Telegram里面搜索BotFater,添加后输入 /start 启动
然后 /newbot 创建一个新的Bot
接下来输入Bot名字
然后输入Bot的ID,必须以bot结尾
创建成功后记得使用/setprivacy 然后输入disable 这样efb的 /link功能才可以正常使用。
记好这个bot的ID和token。
正式开始
安装python3.6以及pip3
python3.6安装方式:
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgztar xvf Python-3.6.3.tgzcd Python-3.6.3./configure --enable-optimizationsmake -j8sudo make altinstallpython3.6
可能要用到的依赖:
sudo apt-get install -y make build-essential libssl-dev zlib1g-devsudo apt-get install -y libbz2-dev libreadline-dev libsqlite3-dev wget curl llvmsudo apt-get install -y libncurses5-dev libncursesw5-dev xz-utils tk-devsudo apt-get install build-essential libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
如果安装的python3.6没有自带pip,则:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pypython3.6 get-pip.py
在安装完python3之后,输入:
pip3 install ehforwarderbot
这样
Ehforwarderbot
的核心部分就安装好了,接下来该安装Telegram主端和wechat从端了。pip3 install efb-telegram-masterpip3 install efb-wechat-slave
创建所需要的目录
在这里我们先创建总的
Ehforwarderbot
的目录cd ~mkdir .ehforwarderbotcd .ehforwarderbotmkdir profilescd profilesmkdir defaultcd defaulttouch config.yaml
其中
config.yaml
添加如下内容:master_channel: blueset.telegramslave_channels:- blueset.wechat
接下来进行主端的目录配置(以下操作在
~/.ehforwarderbot/profiles/default/
目录下进行)mkdir blueset.telegramcd blueset.telegramtouch config.yaml
其中
config.yaml
添加如下内容:token: "你自己创建的bot的token,可以从botfather处获得"admins:- 你的telegram id,可以从jsondumpbot那里获得
接下来进行从端的目录配置(以下操作在
~/.ehforwarderbot/profiles/default/
目录下进行)mkdir blueset.wechatcd blueset.wechattouch config.yaml
其中
config.yaml
添加如下内容:由于本人使用的是iterm2因此添加以下内容用于显示登陆二维码,其他用户可不必添加任何内容。
flags:imgcat_qr: true
配置完成后:
ehforwarderbot
扫描二维码登陆即可使用Telegram收发微信消息了。
使用细节
在Telegram中搜索你的Bot的ID,找到你之前创建的Bot,并输入/start开启。
/chat 张三 从而根据提示来和张三聊天
这样使用有点别扭,先随便添加一个好友创建一个Telegram群组,然后踢出那个好友,并添加你的bot,然后
/link 李四 根据提示选择你的这个群组,link成功后这个群组就相当于你和李四的微信对话了,可以正常使用了。
想要让在
ehforwarderbot
后台运行请使用nohup ehforwarderbot &