使用EFB同步TG与QQ消息
本文最后更新于 25 天前,其中的信息可能已经有所发展或是发生改变。

自从傻妞砍了获取TG群组带图的消息功能,一直同步QQ与tg消息就不得劲儿,然后通过搜索找到了ehForwarderBot项目,以下简称efb。这玩意儿配置起来挺麻烦的,我尽量写简单点。

准备工作

TG端准备

创建一个机器人

这个懂得都懂吧?不会的谷歌。略。

配置机器人

  • 发送 /setprivacy 到 @BotFather,选择刚刚创建好的 Bot 用户名,然后选择 “Disable”.
  • 发送 /setjoingroups 到 @BotFather,选择刚刚创建好的 Bot 用户名,然后选择 “Enable”.
  • 发送 /setcommands 到 @BotFather,选择刚刚创建好的 Bot 用户名,然后发送如下内容:
help - 查看帮助列表.
link - 将会话绑定到 Telegram 群组.
unlink_all - 取消 Telegram 群组的链接.
info - 显示当前的 群组的信息.
chat - 生成一个聊天.
extra - 获取更多功能.
recog - 回复语音消息以进行识别.
update_info - 更新绑定的 Telegram 群组的信息.
react - 向一条消息作出回应,或列出回应者列表.
rm - 从远端会话中删除一个消息.
info - 展示频道相关信息

获取你的ID

这个也是基础了吧?略。

QQ端准备

QQ端在这个项目里叫从端,EFB项目可以对接多个从端,包括QQ、WX等。我这里用 go-cqhttp 登录QQ。

安装go-cqhttp

略。不是很想写,网上教程一大堆。

配置go-cqhttp

主要是配置以下部分:

   account:         # 账号相关
     uin: 000000000 # QQ 账号
     password: ''   # QQ 密码,为空时使用扫码登录

   message:
     # 上报数据类型
     # efb-qq-plugin-go-cqhttp 仅支持 array 类型
     post-format: array
     # 为Reply附加更多信息
     extra-reply-data: true

   # 默认中间件锚点
   default-middlewares: &default
     # 访问密钥,强烈推荐在公网的服务器设置
     access-token: ''

   servers:
     # HTTP 通信设置
     - http:
         # 是否关闭正向 HTTP 服务器
         disabled: false
         # 服务端监听地址
         host: 127.0.0.1
         # 服务端监听端口
         port: 5700
         # 反向 HTTP 超时时间, 单位秒
         # 最小值为 5,小于 5 将会忽略本项设置
         timeout: 5
         middlewares:
           <<: *default # 引用默认中间件
         # 反向 HTTP POST 地址列表
         post:
           - url: 'http://127.0.0.1:8000' # 地址
             secret: ''                   # 密钥保持为空

对于已经对接过傻妞的配置文件,注意修改 post-format:与添加#HTTP通信设置。

其中的端口如果与服务器其他服务有冲突,记得改。

若是对接的efb不在本机,则修改 port 为 0.0.0.0 ,post.url 修改为相应地址端口。如果双方通信内容必须经过 Internet 传输,请确保已配置 Access Token 并启用 HTTPS 确保双方通信内容不会在公网被窃听 / 篡改。

安装EFB

安装主端、QQ从端

在EFB项目中,TG端就是主端,主端与从端需要分别安装。本来是想找其他大佬打包好的镜像的,试了几个发现不适合我用,无奈参考其他大佬的Dockerfile自己打包了一个,就这花了我两天时间,实在是菜!

因为需要连接TG,所以最好是放在国外VPS上,我这里用甲骨文安装。

DaoCloud方式

打开DaoCloud,发现镜像->Docker Hub->搜索 dswang2233 回车,找到 dswang2233/ehforwarderbot 就是我打包的镜像了,只有amd版!我不会打包arm!

点击部署,输入

  • 应用名称::随意
  • 版本号:latest
  • 运行环境:选择主机

点击下一步。

  • 添加端口 :8000 或其他,自己改
  • 添加 Volume:主机路劲随意、容器路径填写
/root/.ehforwarderbot

点击部署,等待完成。

然后再 Portainer 里修改网络模式为 host。

命令行方式

通过ssh工具连接到服务器,输入以下命令:

docker run -dit --name 容器名 --restart always --network=host -v 主机目录:/root/.ehforwarderbot dswang2233/ehforwarderbot

其中的容器名和主机目录自己改。

配置主程序

进入配置目录

cd 主机目录/profiles/default

创建EFB配置文件

nano config.yaml

没有装nano的装一个或者使用vi编辑,输入以下内容:

master_channel: blueset.telegram
slave_channels:
- milkice.qq

按住 ctrl + x 退出编辑,输入 y 确认,回车确认保存。

以后对接微信也是在这里添加。

配置

创建主端和从端文件夹

mkdir -p blueset.telegram
mkdir -p milkice.qq

配置主端

nano blueset.telegram/config.yaml

输入以下内容:

##################
# Required items #
##################

# [Bot Token]
# This is the token you obtained from @BotFather
token: "12345678:QWFPGJLUYarstdheioZXCVBKM"

# [List of Admin User IDs]
# ETM will only process messages and commands from users
# listed below. This ID can be obtained from various ways
# on Telegram.
admins:
- 123456


##################
# Optional items #
##################
# [Experimental Flags]
# This section can be used to toggle experimental functionality.
# These features may be changed or removed at any time.
# Options in this section is explained afterward.
flags:
    option_one: 10
    option_two: false
    option_three: "foobar"


# [Network Configurations]
# [RPC Interface]
# Refer to relevant sections afterwards for details.

其中的 token 就是之前创建的机器人 token admins 就是管理员的ID,每行一个。

保存退出。

配置从端

nano milkice.qq/config.yaml

输入以下内容:

Client: GoCQHttp                      # 指定要使用的 QQ 客户端(此处为 GoCQHttp)
GoCQHttp:
    type: HTTP                        # 指定 efb-qq-plugin-go-cqhttp 与 GoCQHttp 通信的方式 现阶段仅支持 HTTP
    access_token:
    api_root: http://127.0.0.1:5700/  # GoCQHttp API接口地址/端口
    host: 127.0.0.1                   # efb-qq-slave 所监听的地址用于接收消息
    port: 8000                        # 同上

同样的,如果链接的go-cqhttp不在本机,host也需要改成 0.0.0.0

启动go-cqhttp后,有以下提示表示配置完成

[INFO]: CQ HTTP 服务器已启动: 0.0.0.0:5700 
[INFO]: HTTP POST上报器已启动: http://192.168.196.202:8000 

使用efb

找到你刚才创建的机器人,点击 /start

然后参考 使用 EFB Telegram 主端 部分。

优化设置(可选)

减少go-cqhttp空间占用

打开 go-cqhttp 配置文件,找到 output.log-aging 数字改小一点

屏蔽进出群消息

打开 go-cqhttp 配置文件,在 default-middlewares.filter 添加 filter.json

在当前目录创建文件 filter.json ,填写以下代码:

{
    ".not":{
        ".or":[
            {
                "notice_type":"group_decrease"
            },
            {
                "notice_type":"group_increase"
            }
        ]
    }
}

更多事件过滤请参考:事件过滤器 | go-cqhttp 帮助中心

鸣谢:

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇