github 地址: https://github.com/zhangyile/telegram-wechat.git
efb 项目的原理是这样的:
Telegram bot > EFB > 微信网页版 > 微信
使用 itchat-uos 替换了 itchat
help - 显示命令列表.
link - 将远程会话绑定到 Telegram 群组
chat - 生成会话头
recog - 回复语音消息以进行识别
info - 显示当前 Telegram 聊天的信息.
unlink_all - 将所有远程会话从 Telegram 群组解绑.
update_info - 更新群组名称和头像
extra - 获取更多功能
再和另外一个机器人 @get_id_bot 对话(也是搜索得到这个机器人),点击 start 即可获得你的 Telegram ID ,一串数字( Chat ID )。
至此,Telegram 的配置完成,我们得到两个重要的数字:token 、Telegram ID (待会要用)
# 拉取仓库代码
git clone https://github.com/zhangyile/telegram-wechat.git
# 修改 config.py 文件,填入 Token 和 ID
cd telegram-wechat && vi config.py
# 启动服务
docker compose up -d
# 查看日志中的微信二维码,扫码登录
docker compose logs -f
首先在 Telegram 中创建一个新的群组,比如 哈哈哈呵呵呵 这个名字,然后将你的机器人邀请进来(此处,手机端的 Telegram 无法直接拉机器人进来,你需要随便拉一个真人,再拉机器人进来,再把那个人踢出去;电脑端则可以在创建群组的时候直接拉机器人进来)
回到你的机器人对话中,如果你要将一个叫“哈哈哈呵呵呵”的微信好友单独作为 TG 中的聊天对话框,你就输入 /link 哈哈哈(不必输全名,机器人会检索含有此关键字的所有好友,然后选择 link ,选择你刚刚创建的 哈哈哈呵呵呵 这个群组,成功后,以后这个叫哈哈哈呵呵呵 的好友发来的信息不会在机器人那显示了,而是在这个群组)
我把常聊的几个人单独建了 TG 群,使消息分流,其余不常用的,使用机器人窗口接收,公众号及群消息也单独建群。
eh_wechat_slave.py
文件因为 itchat-uos 源码里移除了 itchat 的 new_instance 方法。此处改为使用 itchat-uos 的 load_sync_itchat 方法。
......
125 #self.itchat = itchat.new_instance()
126 self.itchat = itchat.load_sync_itchat()
......
因为 royx/docker-efb 镜像里没有 ffmpeg ,每次启动,都要去下载。
1
dolorain 2023-01-12 15:41:32 +08:00
思考了许久,只想到一个折腾它的理由,linux 上没微信客户端。
|
4
simonle OP @dolorain 哈哈,人间清醒,我本意是想抛弃手机登录微信。折腾完了,发现还是要手机登录微信才能用。实用性并不高,留给有需的人吧。
|
5
lengyuqu 2023-01-12 16:24:27 +08:00
梯子都挂了,还差挂一个微信后台? web 微信都用了,还在乎是 linux 还是 windows ?而且能访问 tg 的服务器都是海外服务器,这样做得不偿失,没准搞的微信封号
|
6
channg 2023-01-13 09:56:01 +08:00
买一个 ipad 协议或者手机协议啊,可以抛弃手机登录的,一个月百十来块就行了
|
7
f5c4ebc2 2023-01-13 10:04:48 +08:00
目前使用了四个多月,我觉得这种方法的实用性在于:
1. 可以关掉手机微信后台 2. 可以卸载电脑端微信 3. 可以配置同时转发 QQ 消息,从而可以卸载手机 /电脑端 QQ (个人有一些必须在 QQ 上收发的消息) 4. 许多账号已经不能登录微信网页版,但微信的 UOS 网页版不受此限制。这个方法本质上是和 UOS 网页版 API 通信 5. Telegram Bot API 可以通过 Cloudflare 反代从而在国内访问 6. 我用现有的海外服务器挂到现在还没有出现封号或风控的情况,相关交流群内也没有发现这类情况 7. 可以实现一些微信没有的 feature ,比如定时发送、或是把几个群的消息合并到一个群里静音等等 |
8
f5c4ebc2 2023-01-13 10:06:36 +08:00
而缺点主要在于不能卸载手机微信,因为诸如视频通话等特殊消息只能收到文字提示。但对于一个平时轻度使用微信、但又被微信捆绑的用户来说,绝大部分时间里都不用打开微信了。
|
11
littlewing 2023-01-13 10:52:46 +08:00
怕被封号
|
12
hoky 2023-01-13 10:59:20 +08:00
日志显示有一个错误。
telegram-wechat-telegram-wechat-1 | Traceback (most recent call last): telegram-wechat-telegram-wechat-1 | File "/usr/lib/python3.6/site-packages/peewee.py", line 2516, in connect telegram-wechat-telegram-wechat-1 | self._state.set_connection(self._connect()) telegram-wechat-telegram-wechat-1 | File "/usr/lib/python3.6/site-packages/peewee.py", line 2782, in _connect telegram-wechat-telegram-wechat-1 | **self.connect_params) telegram-wechat-telegram-wechat-1 | sqlite3.OperationalError: unable to open database file |
14
simonle OP @f5c4ebc2 我琢磨了一下,使用安卓模拟器来登录手机微信,这样就可以不用手机登录微信了,mac 上使用 android studio 已经走通流程了,但是现在在 Centos 服务器上面安装的 android studio 还有点问题,使用不起来。
|
15
hoky 2023-01-13 12:27:55 +08:00
@simonle 还是这个错误。
Docker 的映射是这样的。 /root/telegram-wechat/tgdata.db /opt/ehForwarderBot/plugins/eh_telegram_master/tgdata.db |
16
hoky 2023-01-13 12:51:12 +08:00
Docker 删了重新来一遍,可以了。谢谢。
|
17
aQuQ 2023-01-14 12:20:46 +08:00
lz 有没有考虑把 qq 也集成进来,先把 tx 二件套干掉
|
18
simonle OP @aQuQ 可以用这个 https://github.com/xzsk2/TG-EFB-QQ-Docker ,再部署一个 qq 的就好了,简单粗暴,集成进来的话,不知道可不可行,有现成的了,就没有折腾的必要。
|
19
imldy 2023-01-18 02:42:18 +08:00
已用,测试起来速度不错
|
20
imldy 2023-01-18 18:49:50 +08:00
update_info 没反应,已提 issue https://github.com/zhangyile/telegram-wechat/issues/2
|
21
Jusekenny 2023-02-10 11:49:28 +08:00
已经在用了,还不错,感谢 OP 。现在 qq 和微信都可以通过 tg 转发了,虽然微信暂时还不能卸载,但是 qq 的 APP 已经彻底不用了。
|
22
miaomiaomaomao 2023-02-12 23:19:34 +08:00
@Jusekenny 老哥,问下用 tg 转发 qq 消息怎么做?
|
23
EXerllon 2023-02-13 17:03:22 +08:00
用了一天,被封号了.....
|
24
LeeP3 2023-02-17 18:09:15 +08:00
效果蛮好的
|
28
zhishixiang 2023-03-02 14:52:25 +08:00 via Android
正打算自己用可爱猫写一个,看来已经有了,白嫖了( bu
|
29
wwxwlw 2023-03-05 10:30:10 +08:00
感谢 OP 的教程, 有个问题就是 /update_info 命令不管用
|
30
aQuQ 2023-03-11 16:05:44 +08:00
使用了三个月,wx 号被封了一次,解封后继续上(感觉有点作死,哈哈)
不过 wx 确实是一个很封闭的平台,最好还是采用 win 端+dll 注入的方式,这种被封的概率很低,目前也有轮子可用。 |
33
465456 2023-05-03 10:28:46 +08:00
谢了,已食用,禁止了微信,马上多了 2G 可运行内存
|
34
zhishixiang 2023-06-21 13:33:09 +08:00
用了一段时间,目前非常稳定,只封了一次,没有 3a 大作续航好了不少
|
35
ltkun 2023-07-03 14:23:01 +08:00
感谢!用了几天很舒服!暂时没有被封
|
36
ltkun 2023-07-07 21:47:09 +08:00 via Android
今天下午突然不能用了 登录可以用 tg 发消息但是不能收微信的消息
|
37
ltkun 2023-07-07 22:04:16 +08:00 via Android
前面恢复了 不知道为啥中断 扫码登录了好几次
|
38
mianlaodie 2023-07-27 18:15:39 +08:00
被封号是因为长期登录网页本在海外还是其他什么原因哇
猜想假如在家里的 nas 上运行,然后路由器开规则爬墙,会不会就会好很多,这样甚至从 ip 上来看,app 端的微信和网页端的还是同一局域网 |
39
ltkun 2023-08-03 07:41:01 +08:00 via Android
@mianlaodie 木有封号 不过昨晚开始不正常 重新登录可以 但是也收不到信息 日志显示错误就没有然后了
Slave channel WeChat Slave (eh_wechat_slave) initialized. telegram-wechat_1 | 02-08-2023:23:31:56,950 CRITICAL [main.py:87] telegram-wechat_1 | Initializing master ('plugins.eh_telegram_master', 'TelegramChannel')... telegram-wechat_1 | 02-08-2023:23:32:00,484 CRITICAL [main.py:90] telegram-wechat_1 | Master channel Telegram Master (eh_telegram_master) initialized. telegram-wechat_1 | 02-08-2023:23:32:00,484 CRITICAL [main.py:92] telegram-wechat_1 | All channels initialized. |
40
mianlaodie 2023-08-03 10:06:15 +08:00
@ltkun 我的挂在家里的 还正常,甚至挂了两个微信上去
|
41
ltkun 2023-08-05 07:08:45 +08:00 via Android
现在就是通过电报可以收消息 但是发不行 退出再登录也是一样
|
42
ltkun 2023-08-05 09:26:45 +08:00 via Android
@mianlaodie 换了个小号一切正常 看来大号被风控了
|
43
lev1s 2023-08-18 19:26:24 +08:00
wechat 账号没法登陆 uos 的 web ,得用微信
|
44
ltkun 2023-08-18 21:17:00 +08:00 via Android
也不是风控 应该是网页版微信每天有个发送接收到最大值 超过了就限制了 已经遇到两次了 换小号一切正常
|
45
joynaruto 2023-12-15 11:34:43 +08:00
使用下来体验非常棒,感谢作者!
使用下来有两个问题: 1 、每次重启 docker 服务,都会重复同步最近 1 天左右的消息,没法取消 2 、没法同步联系人头像 ------------------------------------------- 其他无敌! |
46
joynaruto 239 天前
想问下 没名字的群聊怎么办
|