EH Forwarder Bot(简称 EFB)是一个可扩展的聊天平台隧道框架,基于 Python 3。同时 EFB 配备了详尽的文档,欢迎有兴趣的朋友们开发自己的主端或从端,来支持更多的平台。EFB 在 GitHub 中开放了源代码,并且在 Read The Docs 平台上发布的开发文档(英文,en-US
)。
本文主要介绍了如何在一个虚拟服务器 (VPS) 中安装并配置 EFB、Telegram 主端和 QQ 从端,以及如何使用 Telegram 主端来收发 QQ 消息。
0x00: 说明
- 本文档基于 EFB v2.0.0b11, efb-qq-slave v2.0.0a3 版本制作而成。较新的版本可能会有不同的安装步骤。敬请注意。
- 本教程面向具有一定背景知识的进阶用户,如有疑问,请您先在互联网上搜索(推荐 Google),若仍未解决、欢迎在 EFB Telegram 支持群组留言。
- 本教程中 QQ 从端所采用的客户端为 酷Q,因此包含安装 docker 的步骤,同时对闭源软件不喜者慎用本项目
- 本文基于 1a23 的 安装并使用EFB:在Telegram 收发微信消息 改编而来,根据原文协议本文协议临时变更为 CC BY-SA 4.0,请知悉并无视页脚协议声明
- 现阶段(2022年第一季度)可用的QQ客户端有mirai, OPQBot,其中由mirai延伸的还有go-cqhttp和一系列兼容cqhttp协议的QQ机器人,请了解各个客户端之间的差别之后选择一个进行配置
0x01: 用料
在开始之前,请准备:
- 电脑 一台
推荐 Linux、macOS 操作系统
部分手机亦可使用,但操作会略微繁琐。 - Telegram 账号 一枚
- 可用的科学上网方式 若干
- Windows 用户需要 SSH 客户端 一枚,常用 PuTTY
- 墙外 VPS 一枚
0x02: 构建环境
这里我们使用 Ubuntu 18.04 作为例子。CentOS、Arch 等其他发行版除去包管理器指令之外操作基本相同。(因为实在是不想再加钱开一个 VPS,所以下面的指令运行在同等版本的 Docker Image 上)
首先通过 SSH 客户端连接到你的 VPS。
0x02.1: 安装 Python 与非 Python 依赖
输入以下指令。
注:以下安装的部分软件包可能已经预安装在你的系统中。但请注意将已安装的 Python 3 版本升级到 3.6 或以上。
sudo apt-get install python3 libopus0 ffmpeg libmagic1 python3-pip git nano libssl-dev
0x02.2: 从 PyPI 下载 ehForwarderBot
对于全新安装的 pip,可能需要安装一些基础库
pip3 install setuptools wheel
完毕之后再安装 ehforwarderbot
pip3 install ehforwarderbot
0x03: 配置 EFB
0x03.1: 配置主端与从端
全新安装的 ehForwarderBot 需要指定一个唯一的主端及一个或多个从端才能正常工作
先为 ehForwarderBot 创建配置文件夹
mkdir -p ~/.ehforwarderbot/profiles/default/
mkdir -p ~/.ehforwarderbot/profiles/default/blueset.telegram
mkdir -p ~/.ehforwarderbot/profiles/default/milkice.qq
而后使用你最喜欢的编辑器在 ~/.ehforwarderbot/profiles/default/ 创建文件 config.yaml,内容如下
master_channel: blueset.telegram
slave_channels:
- milkice.qq
master_channel 指定唯一主端,而slave_channels下可指定多行的从端,此处由于目标为配置 QQ 从端仅添加了 QQ 从端,后期如有需求可以多从端混用
0x03.2: 配置主端 ETM(EFB-Telegram-Master)
0x03.2.1: 创建 Telegram Bot
Telegram Bot 是 EFB(Telegram 主端)的出口,也是呈献给用户的渠道。我们在这里使用了 Telegram 官方的 Bot API,以最大化利用 Telegram Bot 所提供的各种便利功能。
要创建一个新的 Bot,要先向 @BotFather 发起会话。发送指令 /newbot
以启动向导。期间,你需要指定这个 Bot 的名称与用户名(用户名必须以 bot
结尾)。完毕之后 @BotFather 会提供给你一个密钥(Token),妥善保存这个密钥。请注意,为保护您的隐私及信息安全,请不要向任何人提供你的 Bot 用户名及密钥,这可能导致聊天信息泄露等各种风险。
接下来还要对刚刚启用的 Bot 进行进一步的配置:允许 Bot 读取非指令信息、允许将 Bot 添加进群组、以及提供指令列表。
发送 /setprivacy
到 @BotFather,选择刚刚创建好的 Bot 用户名,然后选择 “Disable”.
发送 /setjoingroups
到 @BotFather,选择刚刚创建好的 Bot 用户名,然后选择 “Enable”.
发送 /setcommands
到 @BotFather,选择刚刚创建好的 Bot 用户名,然后发送如下内容:
link - 将会话绑定到 Telegram 群组
chat - 生成会话头
recog - 回复语音消息以进行识别
extra - 获取更多功能
然后还需要获取你自己的 Telegram ID,ID 应显示为一串数字。获取你自己的 ID 有很多方式,你可以选择任意一种。下面介绍两种可能的方式。
- Plus Messenger
如果你使用了 Plus Messenger 作为你的 Telegram 客户端,你可以直接打开你自己的资料页,在「自己」下面会显示你的 ID。 -
通过 Bot 查询
很多现存的 Bot 也提供了 ID 查询服务,直接向其发送特定的指令即可获得自己的数字 ID。在这里介绍一些接触过的。- @get_id_bot 发送 /start
- @XYMbot 发送 /whois
- @mokubot 发送 /whoami
- @GroupButler_Bot 发送 /id
- @jackbot 发送 /me
- @userinfobot 发送任意文字
- @orzdigbot 发送 /user
留存你的 Telegram ID 以便后续使用。
0x03.2.2: 安装 ETM
pip3 install efb-telegram-master
0x03.2.3: 创建 ETM 配置文件
使用你最喜欢的编辑器在 ~/.ehforwarderbot/profiles/default/blueset.telegram/
创建文件 config.yaml
,内容如下
token: "12345678:QWFPGJLUYarstdheioZXCVBKM"
admins:
- 123456789
其中,token
填入你在 0x03.2.1 步骤中从 @BotFather 获取的 bot token,admins
下的数字则为管理员 Telegram ID,一行一个
0x03.3: 配置从端 EQS(EFB-QQ-Slave)
0x03.3.1: 通过 PyPI 下载安装 EQS
pip3 install efb-qq-slave
0x03.3.2: 配置 QQ 客户端
接下来的内容由客户端不同而不同,请注意分辨
1. Mirai
Mirai 有两种配置方式,一种是参照 OneBot 标准的兼容模式。在这种模式下许多功能不可用(因为 OneBot 标准原本是面向酷Q设计的,有一部分特性 Mirai 不支持),另外一种就是专门为 Mirai 适配的 Mirai 模式。以下模式任选其一进行配置。
Mirai 模式(Mirai-http-api):
所需依赖及条件
JDK 11+
Python 3.8+
步骤:
注意:以下为 mirai-api-http 2.x 版本的安装步骤,由于 Mirai 还处于活跃开发中,Mirai 的安装步骤可能随时发生调整,具体请以官方文档为准
- 安装 efb-qq-plugin-mirai
pip3 install git+https://github.com/milkice233/efb-qq-plugin-mirai
- 使用 Mirai Console Loader(MCL) 安装 Mirai,具体安装步骤请参阅该仓库的 README 文档
- 安装完 MCL 和 mirai 后请使用 MCL 安装 mirai-api-http,efb-qq-plugin-mirai 从 v2.0.7 开始支持 mirai-api-http 2.x 版本,2.x版本的安装命令为
./mcl --update-package net.mamoe:mirai-api-http --channel stable-v2 --type plugin
- 编辑
config/net.mamoe.mirai-api-http/setting.yml
配置文件,其中需要留意的是需要自己设置一个 verifyKey,可使用随机密码生成器生成一个足够长的字符串,具体参见 此处 ,以下是样例(这里假设 mirai-http-api 监听在 127.0.0.1:8080)
## 启用的 adapter, 请确保 http 和 ws 列在下方
adapters:
- http
- ws
## 是否开启认证流程, 若为 true 则建立连接时需要验证 verifyKey
## 强烈建议开启
enableVerify: true
verifyKey: <这里设置一个随机的足够长的字符串>
## 开启一些调式信息
debug: false
## 是否开启单 session 模式, 若为 true,则自动创建 session 绑定 console 中登录的 bot
## 开启后,接口中任何 sessionKey 不需要传递参数
## 若 console 中有多个 bot 登录,则行为未定义
## 确保 console 中只有一个 bot 登陆时启用
## 这里可以留为 false
singleMode: false
## 历史消息的缓存大小
## 同时,也是 http adapter 的消息队列容量
cacheSize: 4096
## adapter 的单独配置,键名与 adapters 项配置相同
adapterSettings:
## 详情看 http adapter 使用说明 配置
http:
host: localhost
port: 8080
cors: [*]
## 详情看 websocket adapter 使用说明 配置
ws:
host: localhost
port: 8080
reservedSyncId: -1
- 配置 EQS 端(EQS 配置文件一般位于
~/.ehforwarderbot/profiles/default/milkice.qq/config.yaml
),内容如下:
Client: mirai
mirai:
qq: 123456789 # 这里换成登录的 QQ 号
host: "127.0.0.1" # Mirai HTTP API 监听地址,一般是 127.0.0.1
port: 8080 # Mirai HTTP API 监听端口,一般是 8080
verifyKey: "28nrq0vnj02y" # 这里填入在配置 Mirai API HTTP 时生成的 verifyKey
- 使用 mcl 启动 mirai, Mirai 为交互式登录,请使用
login 123456789 yourpassword ANDROID_PAD
(如登录后有报错请忽略),请注意 login 命令中密码参数后面可以指定 QQ 所登录的终端,现阶段有ANDROID_PHONE
,ANDROID_PAD
,ANDROID_WATCH
可供选择 - 使用
ehforwarderbot
命令启动 EFB
兼容模式:
强烈建议先阅读酷Q的配置方案,本模式默认用户已经了解酷Q版的配置方式
所需依赖及条件
JDK 11+
步骤:
- 安装 efb-qq-plugin-coolq
pip3 install git+https://github.com/milkice233/efb-qq-plugin-coolq
- 使用 此项目 的方法获得
device.json
- 下载 Onebot Kotlin 版 (此版本不需要安装Kotlin)
- 将 步骤1 中获取的
device.json
复制到 Onebot Kotlin 的目录 - 执行
java -jar onebot-kotlin-*.jar
- 按下 Ctrl-C 停止 Mirai
- 编辑
config/OneBot/settings.yml
为如下内容
proxy: ''
bots:
123456789:
cacheImage: false
cacheRecord: false
heartbeat:
enable: false
interval: 1500
http:
enable: true
# 请注意是否为true
host: 127.0.0.1
port: 5700
accessToken: ac0f790e1fb74ebcaf45da77a6f9de47
postUrl: 'http://127.0.0.1:8000'
postMessageFormat: array
secret: ''
# 上报超时时间, 单位毫秒, 须大于0才会生效
timeout: 0
其中需要修改的为 QQ 号及 accessToken,accessToken 需与 EQS 中的配置一致
- 配置 EQS 端
与酷Q版的配置几乎完全一致,除了要确认下 API Root 地址 和 efb-qq-slave 所监听的地址
Client: CoolQ # 指定要使用的 QQ 客户端(此处为CoolQ模式)
CoolQ:
type: HTTP # 指定 efb-qq-slave 与 酷Q 通信的方式 现阶段仅支持HTTP
access_token: ac0f790e1fb74ebcaf45da77a6f9de47
api_root: http://127.0.0.1:5700/ # OneBot-Kotlin 的API接口地址/端口
host: 127.0.0.1 # efb-qq-slave 所监听的地址用于接收消息
port: 8000 # 同上
is_pro: true # 保持为默认
air_option: # 包含于 air_option 的配置选项仅当 is_pro 为 false 时才有效
upload_to_smms: true # 将来自 EFB主端(通常是Telegram) 的图片上传到 sm.ms 服务器并以链接的形式发送到 QQ 端
需要注意的是其实 port 下面的配置都是无效的,只是为了兼容酷Q,is_pro 请保持为 true
- 再次启动 Mirai并登录( Mirai 为交互式登录,请使用
login 123456789 yourpassword
,或使用启动参数参数 –-account 123456789 --password yourpassword
来登录(如登录后有报错请忽略),开启EFB后,重启 Mirai 即可
2. OPQBot
需要运行 OPQBot 客户端以及做好相应的配置
步骤:
- 请到 OPQBot 安装指南页 按照文档下载运行 OPQBot,需要申请 Gitter API key,启动完成后访问 http://127.0.0.1:8888/v1/Login/GetQRcode 扫码完成登录
-
由于解码 QQ 所使用的 Silk 编码语音格式需要外部 C 库的支持,因此在安装阶段会编译解码器和编码器,请确保系统已经安装编译器和 Python Dev 头文件
对于 Debian/Ubuntu 系列发行版请执行
sudo apt install python3-dev build-essential
对于 Redhat/CentOS 系列发行版请执行(注意,未经过测试)
sudo yum install python3-devel gcc gcc-c++ make
3.安装 efb-qq-plugin-iot pip3 install git+https://github.com/milkice233/efb-qq-plugin-iot
因为涉及到编译第三方库,在安装过程中可能会失败,请结合日志分析原因处理,如果遇到难以处理的问题可以发 issue 询问
- 配置 EQS 端
Client: iot
iot:
qq: 1234567890 # 此处填写登录的QQ号
host: "http://127.0.0.1" # 默认IP为本地
port: 8888 # 默认端口为 8888
receive_self_msg: False # 不接收自己发出的消息
如果有别的特殊设置还请按照文档自行修改
- 启动
ehforwarderbot
3. go-cqhttp(由XYenon贡献)
下面的教程展示了当 go-cqhttp 和 ehForwarderBot 在同一台机器上运行时如何设置两端。
(高级) 对于其他的情况,例如 go-cqhttp 和 ehForwarderBot 在不同的机器上运行时, go-cqhttp port url
和 go-cqhttp api url
必须修改为相应的值(前者是 efb-qq-slave 监听的地址/端口,后者是 go-cqhttp 监听的地址/端口),同时防火墙应允许双方的数据包通过,以便双方的请求不会被防火墙拦截。如果双方通信内容必须经过 Internet 传输,请确保已配置 Access Token
并启用 HTTPS
确保双方通信内容不会在公网被窃听/篡改。
有关 go-cqhttp 的详细信息,请访问 go-cqhttp 文档。
- 下载 go-cqhttp
- 编辑
config.yaml
配置文件,注意修改如下部分
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: '' # 密钥保持为空
- 运行 go-cqhttp
./go-cqhttp
-
安装 efb-qq-plugin-go-cqhttp
pip install git+https://github.com/XYenon/efb-qq-plugin-go-cqhttp
-
为
milkice.qq
从端创建config.yaml
配置文件配置文件通常位于
~/.ehforwarderbot/profiles/default/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 # 同上
- 启动
ehforwarderbot
,大功告成!
0x04: 使用 EFB Telegram 主端
现在,在 Telegram 里面搜索你之前指定的 Bot 用户名,点击 Start(开始)即可开始与 QQ 互通消息了。
在最初,所有来自 QQ 的消息都会通过 Bot 直接发送给你,要回复其中的任意一条消息,你需要在 Telegram 中选中那条消息,选择 Reply(回复),再输入消息内容。
如果需要向新联系人发送消息,只需发送 /chat 指令,选择一个会话。之后这条消息就会变成一个「会话头」,回复这条消息就可以向指定的联系人或群组发送消息。
当消息过多时,来自不同会话的消息会使 Telegram 上面的会话混乱不堪。EFB 支持将来自指定会话的消息分流到一个 Telegram 群组中。
在 Telegram 中新建一个空群组,并将你的 Bot 加入到这个群组中。
(如果找不到自己的 Bot,请尝试在桌面版中创建,并在添加成员时搜索 Bot 的用户名)
回到 Bot 会话,发送 /link,选择一个会话,并点击 “Link”
在弹出的列表中选择刚刚创建的空群组即可
在绑定会话中,你可以像普通聊天一样直接发送消息。也可以通过指定回复的形式来 @ 其他人。
“Link” 功能亦可以屏蔽一些群组/用户的消息,在点击”Link”后选择免打扰即可
您亦可将一些会话连接到频道,此时需要特殊的link方式,请点击”Link”之后选择手动绑定,由机器人指导您进行绑定操作
请注意,若将会话绑定到频道,即意味着本回话只能接受消息无法发出,即便用户在频道发出消息也不会被理会
注意
虽然 Telegram 群组中的所有人可以看到会话全文,但是只有配置文件 (config.py) 中指定的管理员 (admins) 能够以你的名义发送消息到 QQ。EFB 支持设置多个管理员,但只有第一个管理员(按照输入排序)能够接收到所有消息,而且这有可能造成不必要的隐私问题,敬请注意。
以上就是 EFB Telegram 主端的基础用法。
FAQ
以下内容通用 针对所有客户端有效
- Q – 如何在 主端(Telegram) 撤回消息?
A – 如果 QQ 客户端支持该操作,请编辑该消息并在该消息前段加上
rm
字样即可在QQ端撤回该消息 同时请注意发出的消息仅能在发出后2分钟内撤回 -
Q – 如何在 主端(Telegram) 编辑消息?
A – 直接使用 Telegram 的编辑消息功能即可
-
Q – EQS 只支持 酷Q 吗?
A – 现阶段 QQ端的开源现状并不如微信,加之腾讯阉割掉WebQQ一大堆功能,导致一大批原本以WebQQ为协议的应用几乎陷入不可用状态(不能收发图片,必须扫码登录或奇淫技巧密码登录等)。目前来说,以iOS/Android/Pad协议为基础的开源应用几乎没有,尚有的一些也处于疯狂改架构状态非常不稳定,在若干闭源方案中选择酷Q是因为酷Q插件体系较为成熟,HTTP API插件可以很方便地暴露接口给外部应用使用
efb-qq-slave 在设计架构的时候已经考虑到多客户端支持的可能性,所以如果有更好的 QQ 客户端 EQS 将会第一时间支持,也希望能够得到社区的力量一起协助完善项目
以下内容仅针对于 酷Q 客户端有效
- Q – 为什么我无法在 Telegram 中发送图片到QQ?
A – 如果您正在使用 CoolQ Air,由于技术限制无法直接发送图片到QQ,请将配置文件中的
is_pro
改为 false 并将air_option
中的upload_to_smms
改为true即可变相发送图片(通过链接形式) -
Q – 为什么我无法接收/发送QQ语音?
A – 酷Q官方以语音处理库太大为由并未将语音模块集成入酷Q,而是提供了一个带语音处理版本的酷Q供下载,目前暂时没有动力编写QQ语音消息的处理,如有需求请在 这个Github Issue 中留言或在issue上发送表情,需求量较高将会考虑开发
-
Q – 酷Q不同版本区别?
A – https://cqp.cc/t/23290 同时请注意酷Q Air 不支持消息撤回
-
Q – 目前暂未实现的功能?
A – 好友请求处理,加群请求处理,尚未适配少部分消息类型(例如签到消息),语音发送/接收
-
Q – 一段时间后 EQS 提示我 Cookie 过期需要手动刷新 Cookie?
A – 这是由于一些特性需要从腾讯网站上获取,而酷Q提供的Cookie在腾讯外部网站不可访问但是酷Q仍可以使用该Cookie发送/接受消息,因而酷Q认为此Cookie一切正常并不会主动更新Cookie,此时需要手动强制刷新,具体教程请参阅此处 efb-qq-slave/Workaround-for-expired-cookies-of-CoolQ -
Q – 有时候无法显示来源消息的群名,只能显示群号?
A – 可能用户加入新群之后酷Q并未即时更新群列表,此时可以先给机器人发送 /extra,然后由机器人给出的命令中选择 /{slave_id}_relogin 命令执行(该命令通常名为 /0_relogin),执行 /0_relogin -c,稍等片刻,如果酷Q端已开启自动登录则不需要人工干预群列表即可恢复正常,部分情况下可能需要用户再次登录 Web VNC 重新输入QQ密码登录
sm.ms的KEY在哪里配置呀
哎呀 想起来 sm.ms 好像改了些东西来着…
我后期会加上 API Key 的,现在的话考虑用下别的图床?
2020-04-14 20:00:50,176 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:85)
Initializing slave milkice.qq…
2020-04-14 20:00:50,697 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:96)
Slave channel QQ Slave (milkice.qq) # Default profile is initialized.
2020-04-14 20:00:50,698 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:99)
Initializing master blueset.telegram…
Traceback (most recent call last):
File “/usr/local/bin/ehforwarderbot”, line 11, in
sys.exit(main())
File “/usr/local/lib/python3.6/dist-packages/ehforwarderbot/__main__.py”, line 277, in main
init(conf)
File “/usr/local/lib/python3.6/dist-packages/ehforwarderbot/__main__.py”, line 103, in init
coordinator.add_channel(module(instance_id=instance_id))
File “/usr/local/lib/python3.6/dist-packages/efb_telegram_master/__init__.py”, line 100, in __init__
if ‘WEBP’ not in Image.ID or not WebPImagePlugin.SUPPORTED:
AttributeError: module ‘PIL.WebPImagePlugin’ has no attribute ‘SUPPORTED’
启动后报错,请问是哪里的 问题呢,先道谢!
感觉是 Pillow 版本过低了,试试
python3 -m pip install --upgrade Pillow
?成。。成功了,感谢大佬!
可是。。大佬,我刚刚又发现一个问题,我只能用/chat 功能给好友发送消息,但是好友给我发消息,bot就收不到,用/h_0_login 检查之后报错如下:
Traceback (most recent call last):
File “/usr/local/lib/python3.6/dist-packages/efb_telegram_master/__init__.py”, line 462, in error
raise error
File “/usr/local/lib/python3.6/dist-packages/telegram/ext/dispatcher.py”, line 343, in process_update
handler.handle_update(update, self, check, context)
File “/usr/local/lib/python3.6/dist-packages/telegram/ext/handler.py”, line 117, in handle_update
return self.callback(update, context)
File “/usr/local/lib/python3.6/dist-packages/efb_telegram_master/commands.py”, line 207, in extra_usage
html.escape(command.name),
AttributeError: ‘function’ object has no attribute ‘name’
还望大佬不吝赐教哇,感觉胜利就在眼前了,非常感谢哇!!
诶,按理说不会出现这样的问题的… 我现在只能估计是 EQS 或者 ETM 版本太低的问题
试试
python3 -m pip install --upgrade efb-qq-slave efb-telegram-master ehforwarderbot
如果不行的话记得下次贴一下版本号(
python3 -m pip show efb-qq-slave
以及python3 -m pip show efb-telegram-master
python3 -m pip show ehforwarderbot
)另外如果后续有问题还请到 https://t.me/EFBSupport 里加入群聊,里面有不少人都可以为你解答,包括我也在,这样评论区回复效率有点低
请问CoolQ Air是不是无法改变协议来与手机同时在线呀?我在CQP.cfg里加上了[Dev] Platform=2然后重启,好像不行。
对的,需要 CoolQ Pro
了解了,感谢博主
大佬您好,我今天在新的机器(香港ip)上部署,登录的时候提示,“收到交互式网页验证码”,“服务器要求使用交互式网页验证码完成登录验证。需使用chrome浏览器输入验证码”。
我以前部署的时候(日本ip机器),在这一步的时候,手机QQ会发通知提示已自动通过验证。
请问这种情况有什么可尝试的解决办法吗?谢谢大佬~
这个只能在香港的机子上架个梯子,在手机QQ上走香港的IP登录下就行
明白了,感谢博主!
未来一个月会实现 mirai 支持,mirai 近期也恢复了更新
大佬终于要支持mirai了!自从coolq停运之后不得不用手Q的app,真的很难受。感谢大佬!
现在这个方法还可以用吗
最近酷Q停止服务了,目前在迁移到 mirai 中,还需要耐心等待
静待更新!
十分感谢作者! 今天我去部署了一下, 终于能够在Linux 上正常地使用QQ和别人交流了, 因为我是用的i3, wine QQ都支持的很差, 特别感谢作者的开源精神以及贡献! 十分感谢!
谢谢夸奖~新的版本在重构了可能要年底才会发布
2021-12-07 03:05:55,610 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:129)
Initializing slave milkice.qq…
Traceback (most recent call last):
File “/usr/local/bin/ehforwarderbot”, line 8, in
sys.exit(main())
File “/usr/local/lib/python3.8/dist-packages/ehforwarderbot/__main__.py”, line 335, in main
init(conf)
File “/usr/local/lib/python3.8/dist-packages/ehforwarderbot/__main__.py”, line 135, in init
coordinator.add_channel(cls(instance_id=instance_id))
File “/usr/local/lib/python3.8/dist-packages/efb_qq_slave/__init__.py”, line 44, in __init__
self.init_client_manager()
File “/usr/local/lib/python3.8/dist-packages/efb_qq_slave/__init__.py”, line 73, in init_client_manager
self.QQClientMgr = ClientMgr(self.config[‘Client’], self.config, self)
KeyError: ‘Client’
用的mirai,报错KeyError: ‘Client’ 可能是哪里出了问题呢
很久没有维护了……可能年后会抽空维护一下
Traceback (most recent call last):
File “/usr/local/bin/ehforwarderbot”, line 11, in
sys.exit(main())
File “/usr/local/python3/lib/python3.8/site-packages/ehforwarderbot/__main__.py”, line 335, in main
init(conf)
File “/usr/local/python3/lib/python3.8/site-packages/ehforwarderbot/__main__.py”, line 147, in init
coordinator.add_channel(module(instance_id=instance_id))
File “/usr/local/python3/lib/python3.8/site-packages/efb_telegram_master/__init__.py”, line 103, in __init__
raise EFBException(self._(“WebP support of Pillow is required.\n”
ehforwarderbot.exceptions.EFBException: WebP support of Pillow is required.
Please refer to Pillow Documentation for instructions.
https://pillow.readthedocs.io/
请问一下,这个如何解决呢?感谢大佬
请查阅下自己的系统上怎么安装libwebp,应该是缺失了这个
root@racknerd-287e70:~# ehforwarderbot
2022-04-23 09:53:07,884 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:129)
Initializing slave milkice.qq…
Traceback (most recent call last):
File “/usr/local/bin/ehforwarderbot”, line 8, in
sys.exit(main())
File “/usr/local/lib/python3.8/dist-packages/ehforwarderbot/__main__.py”, line 335, in main
init(conf)
File “/usr/local/lib/python3.8/dist-packages/ehforwarderbot/__main__.py”, line 135, in init
coordinator.add_channel(cls(instance_id=instance_id))
File “/usr/local/lib/python3.8/dist-packages/efb_qq_slave/__init__.py”, line 44, in __init__
self.init_client_manager()
File “/usr/local/lib/python3.8/dist-packages/efb_qq_slave/__init__.py”, line 73, in init_client_manager
self.QQClientMgr = ClientMgr(self.config[‘Client’], self.config, self)
File “/usr/local/lib/python3.8/dist-packages/efb_qq_slave/ClientMgr.py”, line 31, in __init__
raise Exception(“Specified client not found!”)
Exception: Specified client not found!
麻烦大佬帮忙看一下,是哪儿的问题,折腾了好长时间还是报错😭我尝试用第1种方案 Mirai, 按照兼容模式之前的教程来的,在mcl 控制台那里已经成功登上 QQ 并能看到消息了,就是最后一步 ehforwarderbot 这里报Exception: Specified client not found!错,现在我用了第三种go-cqhttp方案, 在go-cqhttp里也成功登上qq了, 还是输入ehforwarderbot报错, 报错信息如上, 请大佬帮助, 谢谢
看错误报告是127.0.0.1:8080压根就没有程序在监听,检查下客户端是否都在正常运行
~/.ehforwarderbot/profiles/default/milkice.qq/config.yaml的配置文件我是按照您的写的, 两个端口分别是5700和8000, 然后go-cqhttp的config.yaml最后两行# 反向 HTTP POST 地址列表默认是注释掉的, 我一按照您教程里的改, 取消注释就会报配置文件不合法的错误, 我已经运行了./go-cqhttp, 控制台那里也也接受到qq的消息了.
请问我用go-cqhttp可以发消息但收不到消息是怎么回事?
建议到 go-cqhttp issue下提问并贴上详细日志?因为 go-cqhttp 不是我编写的,可能不太熟悉
可能是cqhttp配置文件的反向http post部分没设置好