Telegram 收发微信消息 [2023 最新版]

2023-01-12 15:25:33 +08:00
 simonle

Telegram 收发微信消息 - Docker compose 一键部署 [ 2023 最新版]

github 地址: https://github.com/zhangyile/telegram-wechat.git

efb 项目的原理是这样的:
Telegram bot > EFB > 微信网页版 > 微信

使用 itchat-uos 替换了 itchat

0. 环境依赖

1. Telegram 上创建机器人并获取 Token 和 ID

原文: https://specialhua.top/20190618/cid=4.html

1.1 获取 Bot Token

  1. 在 Telegram 里, 对 @botfather 说话: /newbot
  2. 按照要求给 Bot 取名
  3. 获取 Bot Token 安全原因: Token 必须保密(这串 token 要记好,待会要用)
  4. 允许 Bot 读取非指令信息,对 @botfather 说话: /setprivacy, 选择 disable
  5. 允许将 Bot 添加进群组,对 @botfather 说话: /setjoingroups, 选择 enable
  6. 允许 Bot 提供指令列表,对 @botfather 说话: /setcommands, 输入以下内容 (复制以下内容一次性发给 botfather )
help - 显示命令列表.
link - 将远程会话绑定到 Telegram 群组
chat - 生成会话头
recog - 回复语音消息以进行识别
info - 显示当前 Telegram 聊天的信息.
unlink_all - 将所有远程会话从 Telegram 群组解绑.
update_info - 更新群组名称和头像
extra - 获取更多功能

1.2 获取 Telegram 账户 ID

再和另外一个机器人 @get_id_bot 对话(也是搜索得到这个机器人),点击 start 即可获得你的 Telegram ID ,一串数字( Chat ID )。

至此,Telegram 的配置完成,我们得到两个重要的数字:token 、Telegram ID (待会要用)

2. 部署服务

# 拉取仓库代码
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

3. 开始使用

原文: https://specialhua.top/20190618/cid=4.html

首先在 Telegram 中创建一个新的群组,比如 哈哈哈呵呵呵 这个名字,然后将你的机器人邀请进来(此处,手机端的 Telegram 无法直接拉机器人进来,你需要随便拉一个真人,再拉机器人进来,再把那个人踢出去;电脑端则可以在创建群组的时候直接拉机器人进来)

回到你的机器人对话中,如果你要将一个叫“哈哈哈呵呵呵”的微信好友单独作为 TG 中的聊天对话框,你就输入 /link 哈哈哈(不必输全名,机器人会检索含有此关键字的所有好友,然后选择 link ,选择你刚刚创建的 哈哈哈呵呵呵 这个群组,成功后,以后这个叫哈哈哈呵呵呵 的好友发来的信息不会在机器人那显示了,而是在这个群组)

我把常聊的几个人单独建了 TG 群,使消息分流,其余不常用的,使用机器人窗口接收,公众号及群消息也单独建群。

4. 我都做了什么改动?

4.1 修改了 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()
 ......

4.2 基础镜像安装了 ffmpeg-linux64-v3.3.1

因为 royx/docker-efb 镜像里没有 ffmpeg ,每次启动,都要去下载。

5. 参考链接

9269 次点击
所在节点    分享发现
46 条回复
dolorain
2023-01-12 15:41:32 +08:00
思考了许久,只想到一个折腾它的理由,linux 上没微信客户端。
Soutxx
2023-01-12 15:44:00 +08:00
@dolorain #1 一语惊醒梦中人 /dog
blufaux
2023-01-12 15:46:38 +08:00
@dolorain 哈哈
simonle
2023-01-12 15:52:46 +08:00
@dolorain 哈哈,人间清醒,我本意是想抛弃手机登录微信。折腾完了,发现还是要手机登录微信才能用。实用性并不高,留给有需的人吧。
lengyuqu
2023-01-12 16:24:27 +08:00
梯子都挂了,还差挂一个微信后台? web 微信都用了,还在乎是 linux 还是 windows ?而且能访问 tg 的服务器都是海外服务器,这样做得不偿失,没准搞的微信封号
channg
2023-01-13 09:56:01 +08:00
买一个 ipad 协议或者手机协议啊,可以抛弃手机登录的,一个月百十来块就行了
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 ,比如定时发送、或是把几个群的消息合并到一个群里静音等等
f5c4ebc2
2023-01-13 10:06:36 +08:00
而缺点主要在于不能卸载手机微信,因为诸如视频通话等特殊消息只能收到文字提示。但对于一个平时轻度使用微信、但又被微信捆绑的用户来说,绝大部分时间里都不用打开微信了。
hoky
2023-01-13 10:23:34 +08:00
@f5c4ebc2 这个现在有没有封号危险?
f5c4ebc2
2023-01-13 10:36:42 +08:00
@hoky #9 我不能保证没有,只能说我自己用海外服务器挂了四个月没出现这种情况
littlewing
2023-01-13 10:52:46 +08:00
怕被封号
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
simonle
2023-01-13 12:00:53 +08:00
@hoky 在拉下来的代码目录下 执行一下 `touch tgdata.db` 创建一下这个空文件就好了。
simonle
2023-01-13 12:15:19 +08:00
@f5c4ebc2 我琢磨了一下,使用安卓模拟器来登录手机微信,这样就可以不用手机登录微信了,mac 上使用 android studio 已经走通流程了,但是现在在 Centos 服务器上面安装的 android studio 还有点问题,使用不起来。
hoky
2023-01-13 12:27:55 +08:00
@simonle 还是这个错误。
Docker 的映射是这样的。
/root/telegram-wechat/tgdata.db /opt/ehForwarderBot/plugins/eh_telegram_master/tgdata.db
hoky
2023-01-13 12:51:12 +08:00
Docker 删了重新来一遍,可以了。谢谢。
aQuQ
2023-01-14 12:20:46 +08:00
lz 有没有考虑把 qq 也集成进来,先把 tx 二件套干掉
simonle
2023-01-15 15:39:01 +08:00
@aQuQ 可以用这个 https://github.com/xzsk2/TG-EFB-QQ-Docker ,再部署一个 qq 的就好了,简单粗暴,集成进来的话,不知道可不可行,有现成的了,就没有折腾的必要。
imldy
2023-01-18 02:42:18 +08:00
已用,测试起来速度不错
imldy
2023-01-18 18:49:50 +08:00
update_info 没反应,已提 issue https://github.com/zhangyile/telegram-wechat/issues/2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/908436

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX