基于 gewechaty 重构的基于 pad 协议收发微信消息
TG 群组: @Wx2TgUserGroup
- 微信单聊消息、微信群消息,转发到 Telegram
- Telegram 向指定的微信用户、微信群、公众号发送消息
- 支持从 Telegram 发送视频、文件、图片、语音消息
- 本项目仅用于技术研究和学习,不得用于非法用途
- 无论遇到什么问题都欢迎提交 issue
- 1、系统环境推荐:Centos7或Ubantu2204
- 2、硬件环境推荐:4核8G
- 3、由于容器需要用到2531和2532端口,要保证服务器这两个端口没有被占用
- 4、容器启动后会访问腾讯服务,因此要保证服务器能够访问外网,并且出网没有被限制,否则会导致容器无法正常启动
- 5、使用者必须搭建服务到同省服务器或者电脑里方可正常使用
- 6、本框架面向个人娱乐使用,请勿用于任何商用场景
先复制一份 .env.example
为 .env
文件,然后配置 .env
文件中的环境变量
创建 docker-compose.yml
文件:
version: '3'
services:
wx2tg-pad:
image: finalpi/wechat2tg-pad:latest
container_name: wx2tg-pad
ports:
- "3000:3000"
volumes:
- ./config:/app/storage
- ./save-files:/app/save-files # 保存文件夹挂载后贴纸文件不需要重新转换
# env_file 指定环境变量文件
env_file: ".env"
restart: always
gewechat:
image: registry.cn-chengdu.aliyuncs.com/tu1h/wechotd:alpine # 拉取镜像
container_name: gewechat
ports:
- "2531:2531"
- "2532:2532"
volumes:
- ./temp:/root/temp
restart: always
docker-compose up -d
关闭掉机器人的隐私模式,打开 BotFather,输入 /mybots
,选择你的bot。点击 Bot Settings
- Group Privacy
- Turn off
,出现 Privacy mode is disabled for xxx
就说明关闭成功了
-
/login
:获取登录二维码;首次部署启动时,最先发送/login
命令的人将成为BOT
的所有者 -
/flogin
:获取文件传输助手登录二维码,支持接收视频和文件 -
/update
:更新群组头像和昵称信息 -
/add
:根据手机号添加微信好友,例如/add 18888888888
-
/message
:开关群组消息接收 -
/user
:获取微信用户列表;点击按钮后可创建新群组或者绑定用户(可通过名称或备注搜索,例如:/user 张
查找包含「张」的微信用户) -
/room
:获取微信群列表;点击按钮后可创建新群组或者绑定微信群(可通过名称或备注搜索,例如:/room 外卖
查找含有「外卖」的微信群) -
/settings
:程序设置 -
/unbind
:解绑微信群或微信用户(仅支持在群组使用)
名称 | 是否必填 | 描述 |
---|---|---|
BOT_TOKEN |
是 | Telegram Bot 的 token,通过 BotFather 创建 |
API_ID |
是 | Telegram API 的 API ID |
API_HASH |
是 | Telegram API 的 API HASH |
BASE_API |
是 | gewechat 容器的 API 请求地址,需要填入完整路径名 |
FILE_API |
是 | gewechat 容器的文件请求地址,需要填入完整路径名 |
CALLBACK_API |
是 | wechat2tg 容器的回调服务的地址(3000 端口映射后的地址) |
PROXY_PROTOCOL |
否 | 代理类型可选值(socks5,http,https) |
PROXY_HOST |
否 | 代理的 URL |
PROXY_PORT |
否 | 代理的端口号 |
PROXY_USERNAME |
否 | 代理的用户名 |
PROXY_PASSWORD |
否 | 代理的密码 |
ROOM_MESSAGE |
否 | 在 BOT 中微信群消息的显示格式 |
OFFICIAL_MESSAGE |
否 | 在 BOT 中公众号消息的显示格式 |
CONTACT_MESSAGE |
否 | 在 BOT 中微信用户消息的显示格式 |
ROOM_MESSAGE_GROUP |
否 | 在群组中微信群消息的显示格式 |
CONTACT_MESSAGE_GROUP |
否 | 在群组中微信用户消息的显示格式 |
OFFICIAL_MESSAGE_GROUP |
否 | 在群组中公众号消息的显示格式 |
CREATE_ROOM_NAME |
否 | 自动创建微信群的群组时, 群组名称的格式 |
CREATE_CONTACT_NAME |
否 | 自动创建微信联系人的群组时, 群组名称的格式 |
MESSAGE_DISPLAY |
否 | 文字消息的显示格式 |
-
文件传输助手接收文件和视频消息:是否使用文件传输助手接收文件和视频消息(上游没办法下载视频和文件,所以需要用文件传输助手接收)
-
接受公众号消息:是否接受公众号消息
-
然后点击「API development tools」并填写应用程序详细信息(只需应用程序标题和简称)
-
最后点击「Create application」
如果你想修改消息发送者的格式,你可以修改 docker 中的环境变量或者 .env
文件
自定义消息模板占位符:
#[alias]
:联系人备注
#[name]
:联系人昵称
#[topic]
:群聊昵称
#[alias_first]
:备注优先,如果没有备注就显示联系人的昵称
#[identity]
:身份信息文本
#[body]
:消息体文本
#[br]
:换行
删掉配置目录内的 ds.json
,然后重启 wx2tg 容器即可
- fork 项目,切换到
wx2tg-pad-dev
分支,或者新建一个分支。请不要直接提交代码到主分支 - 提交 Pull Request 到
wx2tg-pad-dev
分支
感谢Jetbrains对本项目的支持