微信与TG互通 基于EFB的ComWechat搭建教程
微信与TG互通 基于EFB的ComWechat搭建教程
「巧克力绒」起因
由于众所周知的原因,微信在除了IOS系统上之外,只有一个残废的FCM推送,这个推送会在收到消息时唤醒微信…然后再通过微信的信息通道推送给手机,这完全失去了使用推送的意义。
因此有人开始研究将微信的消息转发到Telegram上,这篇文章将为你介绍详细的步骤。
优势
首先我们需要明确Tg相比于微信优势在哪里。
1.永久的云端消息记录存储
Tg拥有永久的云端消息记录存储,并且按照Tg那边的说法,你的信息是很安全的(这个看个人,详情请搜索Tg信息保护相关内容)。
2.多端登陆账号
Tg可以在很多客户端上登陆账号且没有数量限制。你可以在手机上登陆一个、电脑上登陆一个、平板上登陆一个、甚至虚拟机里登陆一个。
3.占用更小、耗电更少
Tg拥有十分丝滑的体验,尤其是各种开源的第三方客户端,Tg仅仅只需要占用200M上下的RAM即可,而微信即使没有联系人,也需要占用将近2G的RAM,差距巨大。并且Tg并不需要保留后台,可以享受到推送服务。
介绍
因此将微信的消息转发到Tg上是一个很优秀的方案,同时也可以将Tg与微信的联系人合并方便联系。本文使用了 ComWechat 服务作为从端,使用的 API 为微信桌面端,这意味着使用此服务将无法使用微信桌面端,因为微信限制同时只能在线一台设备。如有使用需求请自行考虑,本教程对产生的一切后果不负任何责任。
前提环境
1.一台在 国外(或能够进行外网访问) 的 VPS,架构为 X86,ARM 架构大概率无法部署。
推荐系统为 Ubuntu ,下文以此系统为例
要求 VPS 运行内存不小于 2G,且最好再开启 2G 的交换内存
实测内存占用与微信好友数量成正比,好友数与群聊数相加小于100个的情况下,原生2G内存足矣
VPS拥有一个固定公网 iPv4 地址
2. 一台最好系统为 Windows 的电脑 (需要使用 VNC 服务,其他系统理论也可以)
3. 一部拥有微信的手机或能够进行微信扫码的设备(扫码登录远程微信用)
4. 最好两个 Telegram 账号,要求互为好友且至少有一个能正常登陆
5. 一个正常的大脑,一双正常的眼睛,善于举一反三的思维
6. 在提出问题之前请仔细、反复地再阅读一遍教程
准备
创建机器人 Token
首先在手机 Telegram 或桌面端 Telegram 应用程序中进行如下操作
对 @BotFather 或点击 这段文字 来对 BotFather 进行私聊
发送指令
1
/newbot
在创建完毕之后,你将获取到一串 Bot 的 API Token,将之保存在一处地方,不要将他泄露给其他人,因为通过 Token 任何人都可以控制你的 Bot。
然后依据提示进行机器人的用户名、昵称等配置
机器人用户名须以 bot 结尾
接着进行两项基础配置,继续向 BotFather 发送下列命令
1
2
3
4
5
6
7
8/setprivacy
#选择 “Disable”
/setjoingroups
#选择 “Enable”
/setprivacy
#选择 “Disable”
/setjoingroups
#选择 “Enable”接着进行最后一项配置,发送
1
/setcommands
然后发送下面的内容
1
2
3
4
5link - 将会话绑定到 Telegram 群组
chat - 生成会话头
recog - 回复语音消息以进行识别
update_info - 更新群组名与头像
extra - 获取更多功能
获取用户 ID
与 @get_id_bot 私聊或点击 这段文字 来对 Get ID Bot 进行私聊,发送
1 | /start |
获取用户 ID,将之保存到一处地方
配置
服务器初始化
可不做这一步,一般没问题,速度慢请查询换源相关,或查询VPS带宽限制
1 | sudo apt update |
安装 Docker
1 | curl -fsSL https://get.docker.com | bash |
安装 Docker-compose
1 | apt -y install docker-compose |
创建配置文件 docker-compose.yaml
1 | mkdir comwechat |
使用vim/nano等工具编辑该文件
1 | nano docker-compose.yaml |
输入以下内容
1 | version: '3.3' |
注:大部分 SSH 客户端可以使用右键粘贴剪贴板内容
以下内容受时效性影响可能较大,请参照教程时间,自行更换版本,或沿用此版(可能有BUG)
将其中 - VNCPASS=YourPassword 中的 YourPassword 改为一个你自己喜欢的密码并记住。
若使用nano编辑器则使用 Ctrl + X 退出编辑 若提示 Y/N 请输入 Y 保存。
然后会提示修改文件名 回车退出即可 不要修改。
其他编辑器请自行保存并退出。
使用 cat 命令检查内容
1 | cat docker-compose.yaml |
后文所有编辑的文件均建议检查,不再赘述
若新手不习惯命令行操作,可参考以WinSCP为代表的远程文件管理软件,这里不进行教学
此时检查屏幕中内容无误后按 ESC 退出,进行下一步。
启动 Docker 镜像
1 | docker-compose up -d |
等待下载完成即可,中途不要关闭 SSH 窗口,耐心等待即可,文件约几个G。
VNC 登录微信
在网络上下载并安装 VNC Viewer(或其他能进行VNC连接的客户端)
在上方 Enter a VNC Server address or search 处填入
1 | #你的VPS固定公网ip:5905 |
点击连接到此地址,此时你将会看到一个微信登录二维码,使用手机扫码登录
注意,将此二维码截图后用手机微信的相册内扫码是不行的,必须使用摄像头扫码
安装、创建必要文件及依赖
1 | apt-get install libopus0 ffmpeg libmagic1 python3-pip git libssl-dev |
请一行一行依次执行 而不要全部一次输入
然后进行配置文件的创建,此处可以一次性全部输入
1 | mkdir -p ~/.ehforwarderbot/profiles/ComWeChat |
不要忘记发送最后一行
主从端配置
编辑 ~/.ehforwarderbot/profiles/ComWeChat/blueset.telegram/config.yaml
1 | nano ~/.ehforwarderbot/profiles/ComWeChat/blueset.telegram/config.yaml |
在其中写入
1 | token: "写机器人token" |
将token和用户ID替换掉上文中的说明文字,例如
1 | token: "ABC123QWE:123ADW123AWD" |
编辑 ~/.ehforwarderbot/profiles/ComWeChat/config.yaml
1 | nano ~/.ehforwarderbot/profiles/ComWeChat/config.yaml |
在其中写入
1 | master_channel: blueset.telegram |
编辑 ~/.ehforwarderbot/profiles/ComWeChat/honus.comwechat/config.yaml
1 | nano ~/.ehforwarderbot/profiles/ComWeChat/honus.comwechat/config.yaml |
在其中写入
1 | dir: "/root/WeChat/Files/" |
启动服务
使用screen功能保证关闭SSH连接后 服务仍在运行
1 | screen -S wechat |
在弹出的新终端窗口中输入
1 | ehforwarderbot -p ComWeChat |
由于 VPS 一般位于海外,所以第一次登录后几天内被登出是正常的,因为 IP 地址不受信任
重启服务
在某些情况下,你需要重启你的服务,下面我来讲解一下。
首先建议重启你的服务器,排除意外因素
如果不愿意重启,请自行关闭之前打开的 screen 会话和 docker 镜像
然后执行
1 | cd comwechat |
此时再次打开 VNC Viewer 再次扫码登录或点击登录
然后再次启动服务即可
1 | screen -S wechat |
在弹出的新终端窗口中输入
1 | ehforwarderbot -p ComWeChat |
关于机器人用法
在此不进行详细说明,仅做简单解释
假如你不做任何工作,所有信息都只会从机器人私聊发送到你的 Telegram 账号。
为了解决这个问题,我们需要使用准备阶段准备的两个 Telegram 账号新建群组,然后将另一个账号踢出群组,将机器人添加至群组。
接着使用
1 | /link |
回到机器人的私聊,选择你要绑定的对话,则该对话将被绑定至指定的群组
建议使用下面的指令来更新头像及名称。
1 | /update_info |
特别注明:新加好友 / 群聊 / 备注 需要等待数据库自动更新,时间为 30 分钟一次,因此执行此命令报错时请先自查是否是新添加好友等问题
此时你在此群组发送消息,将自动以你登录的微信为发言人在微信发送相同消息,接收到的消息则由机器人发送
其他使用相关不再赘述,自行查阅其他教程或说明文档等
尾声
至此,教程完毕,若有问题请再三阅读教程后提问