@zhin.js/adapter-icqq 3.0.7 → 3.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +63 -128
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @zhin.js/adapter-icqq
|
|
2
2
|
|
|
3
|
+
## 3.0.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c78d2cd: fix: cli 更新,文档更新
|
|
8
|
+
- Updated dependencies [c78d2cd]
|
|
9
|
+
- @zhin.js/client@2.0.1
|
|
10
|
+
- @zhin.js/host-router@0.0.2
|
|
11
|
+
- @zhin.js/agent@0.1.28
|
|
12
|
+
- @zhin.js/core@1.1.30
|
|
13
|
+
- zhin.js@1.0.89
|
|
14
|
+
- @zhin.js/host-api@0.0.2
|
|
15
|
+
|
|
3
16
|
## 3.0.7
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# @zhin.js/adapter-icqq
|
|
2
2
|
|
|
3
|
-
Zhin.js ICQQ
|
|
3
|
+
Zhin.js ICQQ 适配器,通过 **[@icqqjs/cli](https://github.com/icqqjs/cli) 守护进程 IPC** 连接已登录的 QQ 账号,支持群聊和私聊消息。协议与登录由 CLI 负责,Zhin 侧只配置 QQ 号并连接本地/远程守护进程。
|
|
4
4
|
|
|
5
5
|
## 功能特性
|
|
6
6
|
|
|
7
7
|
- 🤖 支持 QQ 群聊和私聊消息处理
|
|
8
|
-
- 🔐
|
|
8
|
+
- 🔐 登录由 `icqq login` 完成(短信/二维码/滑块等由 CLI 处理)
|
|
9
9
|
- 🖥️ **Web 控制台登录辅助**:与 `@zhin.js/host-api` 同时启用时,在 **`/icqq`** 页面提供「概览 + 登录辅助」;HTTP 接口为 **`GET /api/login-assist/pending`**、**`POST /api/login-assist/submit`**、**`POST /api/login-assist/cancel`**(由本适配器在路由上下文中注册,依赖核心 `loginAssist` 服务)。
|
|
10
10
|
- 📨 消息发送和接收处理
|
|
11
11
|
- 🔄 消息格式转换和适配
|
|
@@ -18,50 +18,53 @@ Zhin.js ICQQ 适配器,基于 ICQQ 库实现的 QQ 机器人适配器,支持
|
|
|
18
18
|
## 安装
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
pnpm add @zhin.js/adapter-icqq
|
|
21
|
+
pnpm add @zhin.js/adapter-icqq
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
登录与守护进程由 **@icqqjs/cli** 提供(与适配器包解耦,可全局安装):
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
```bash
|
|
27
|
+
pnpm add -g @icqqjs/cli
|
|
28
|
+
# 或:npx icqq login
|
|
29
|
+
```
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
// zhin.config.ts
|
|
30
|
-
import { defineConfig } from 'zhin.js'
|
|
31
|
+
## 配置
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
33
|
+
在 `zhin.config.yml` 中声明 bot(**不在此填写 QQ 密码**):
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
bots:
|
|
37
|
+
- context: icqq
|
|
38
|
+
name: "${ICQQ_ACCOUNT}" # QQ 号,须与 icqq login 的账号一致
|
|
39
|
+
autoReconnect: true # IPC 断开后自动重连,默认 true
|
|
40
|
+
# 远程 RPC(可选;默认连接 ~/.icqq/<uin>/daemon.sock)
|
|
41
|
+
# rpc:
|
|
42
|
+
# host: 10.0.0.2
|
|
43
|
+
# port: 9527
|
|
44
|
+
# token: ${ICQQ_RPC_TOKEN}
|
|
45
|
+
typingIndicator: # 可选:AI 处理中的群/私聊提示
|
|
46
|
+
enabled: true
|
|
47
|
+
defaultEmoji: "⏳"
|
|
48
|
+
|
|
49
|
+
plugins:
|
|
50
|
+
- "@zhin.js/adapter-icqq"
|
|
51
|
+
- "@zhin.js/host-router" # 可选
|
|
52
|
+
- "@zhin.js/host-api" # 可选,Remote Console /icqq 页
|
|
48
53
|
```
|
|
49
54
|
|
|
50
|
-
|
|
55
|
+
TypeScript 配置等价写法:
|
|
51
56
|
|
|
52
57
|
```typescript
|
|
58
|
+
import { defineConfig } from 'zhin.js'
|
|
59
|
+
|
|
53
60
|
export default defineConfig({
|
|
54
61
|
bots: [
|
|
55
62
|
{
|
|
56
63
|
context: 'icqq',
|
|
57
|
-
name: process.env.
|
|
58
|
-
|
|
59
|
-
platform: 2,
|
|
60
|
-
log_level: 'info',
|
|
61
|
-
data_dir: './data'
|
|
62
|
-
}
|
|
64
|
+
name: process.env.ICQQ_ACCOUNT!,
|
|
65
|
+
},
|
|
63
66
|
],
|
|
64
|
-
plugins: ['adapter-icqq']
|
|
67
|
+
plugins: ['@zhin.js/adapter-icqq'],
|
|
65
68
|
})
|
|
66
69
|
```
|
|
67
70
|
|
|
@@ -70,27 +73,13 @@ export default defineConfig({
|
|
|
70
73
|
### 必需参数
|
|
71
74
|
|
|
72
75
|
- `context`: 固定为 `'icqq'`
|
|
73
|
-
- `name`: QQ
|
|
76
|
+
- `name`: QQ 号(字符串,与守护进程账号一致)
|
|
74
77
|
|
|
75
78
|
### 可选参数
|
|
76
79
|
|
|
77
|
-
- `
|
|
78
|
-
- `
|
|
79
|
-
|
|
80
|
-
- `2`: Android Watch(安卓手表,推荐)
|
|
81
|
-
- `3`: MacOS
|
|
82
|
-
- `4`: 企点
|
|
83
|
-
- `5`: iPad
|
|
84
|
-
- `log_level`: 日志级别
|
|
85
|
-
- `'off'`: 关闭
|
|
86
|
-
- `'fatal'`: 致命错误
|
|
87
|
-
- `'error'`: 错误
|
|
88
|
-
- `'warn'`: 警告
|
|
89
|
-
- `'info'`: 信息
|
|
90
|
-
- `'debug'`: 调试
|
|
91
|
-
- `'trace'`: 追踪
|
|
92
|
-
- `data_dir`: 数据存储目录(默认:`./data`)
|
|
93
|
-
- `sign_api_addr`: 签名服务器地址(可选,用于提高稳定性)
|
|
80
|
+
- `autoReconnect`: IPC/RPC 意外断开时是否指数退避重连(默认 `true`)
|
|
81
|
+
- `rpc`: 远程守护进程连接(`host` / `port` / `token`);不配置则使用本地 Unix socket `~/.icqq/<uin>/daemon.sock`
|
|
82
|
+
- `typingIndicator`: AI 处理中的 reaction 或临时消息提示(见 `IcqqBotConfig` 类型)
|
|
94
83
|
|
|
95
84
|
## 使用示例
|
|
96
85
|
|
|
@@ -168,35 +157,15 @@ addCommand(new MessageCommand('at <user:at>')
|
|
|
168
157
|
)
|
|
169
158
|
```
|
|
170
159
|
|
|
171
|
-
## Web 控制台登录辅助
|
|
172
|
-
|
|
173
|
-
1. 配置中同时启用 **`@zhin.js/host-api`** 与本适配器(且 console 建议 **`lazyLoad: false`**,以便扩展 `addEntry` 正常注册)。
|
|
174
|
-
2. 打开控制台中的 **ICQQ 管理**(`/icqq`),切换到 **登录辅助** Tab;仅展示当前 **icqq** 适配器相关的待处理登录步骤。
|
|
175
|
-
3. 若未启用 console,仅启动机器人进程时,仍可通过日志完成登录;**不提供** Console 专属的 `/api/login-assist` 降级路径。
|
|
176
|
-
|
|
177
160
|
## 登录流程
|
|
178
161
|
|
|
179
|
-
|
|
162
|
+
1. **先登录 QQ**:在终端执行 `icqq login`,按 CLI 提示完成密码/扫码/滑块/设备锁等验证;会话由 `@icqqjs/cli` 守护进程维护。
|
|
163
|
+
2. **再启动 Zhin**:`zhin.config.yml` 中 `bots[].name` 与上一步 QQ 号一致,启动 `zhin dev` / `zhin start`;适配器连接守护进程并开始收发消息。
|
|
164
|
+
3. 若守护进程未运行或账号未登录,适配器会保持未连接状态,日志中会提示检查 `icqq` 守护进程。
|
|
180
165
|
|
|
181
|
-
|
|
182
|
-
2. 启动机器人
|
|
183
|
-
3. 如需验证,根据提示输入验证码或完成滑块验证
|
|
184
|
-
4. 登录成功后会保存登录状态
|
|
166
|
+
### Web 控制台登录辅助(可选)
|
|
185
167
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
1. 配置 QQ 号,密码留空
|
|
189
|
-
2. 启动机器人
|
|
190
|
-
3. 扫描控制台显示的二维码
|
|
191
|
-
4. 手机 QQ 确认登录
|
|
192
|
-
5. 登录成功后会保存登录状态
|
|
193
|
-
|
|
194
|
-
### 设备锁验证
|
|
195
|
-
|
|
196
|
-
如遇设备锁:
|
|
197
|
-
1. 选择短信验证或扫码验证
|
|
198
|
-
2. 短信验证:输入收到的验证码
|
|
199
|
-
3. 扫码验证:扫描二维码并在手机确认
|
|
168
|
+
与 **`@zhin.js/host-api`** 同时启用时,Remote Console 的 **ICQQ 管理**(`/icqq`)可提供登录辅助 Tab,对应 API:`GET/POST /api/login-assist/*`(依赖核心 `loginAssist` 服务)。**不能替代** `icqq login`;仅用于在 Host 已运行时配合完成验证步骤。
|
|
200
169
|
|
|
201
170
|
## 消息类型支持
|
|
202
171
|
|
|
@@ -388,64 +357,32 @@ onGroupMessage(async (message) => {
|
|
|
388
357
|
|
|
389
358
|
完整说明与指令表见仓库文档:[docs/advanced/ai.md](../../../docs/advanced/ai.md)(锚点:`#icqq-bash-exec`、`#owner-approve-commands`)。
|
|
390
359
|
|
|
391
|
-
## 签名服务器
|
|
392
|
-
|
|
393
|
-
为了提高登录稳定性和避免风控,建议配置签名服务器:
|
|
394
|
-
|
|
395
|
-
```typescript
|
|
396
|
-
{
|
|
397
|
-
sign_api_addr: 'http://localhost:8080/sign' // 签名服务器地址
|
|
398
|
-
}
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
常用签名服务器:
|
|
402
|
-
- [unidbg-fetch-qsign](https://github.com/fuqiuluo/unidbg-fetch-qsign)
|
|
403
|
-
- [qsign](https://github.com/MliKiowa/NapCatQQ)
|
|
404
|
-
|
|
405
360
|
## 注意事项
|
|
406
361
|
|
|
407
362
|
### 账号安全
|
|
408
363
|
|
|
409
364
|
- 建议使用小号测试
|
|
410
365
|
- 避免短时间内发送大量消息
|
|
411
|
-
-
|
|
412
|
-
- 定期更新 ICQQ 版本
|
|
413
|
-
|
|
414
|
-
### 风控问题
|
|
415
|
-
|
|
416
|
-
如遇风控:
|
|
417
|
-
1. 降低消息发送频率
|
|
418
|
-
2. 配置签名服务器
|
|
419
|
-
3. 更换登录设备类型(platform 参数)
|
|
420
|
-
4. 使用扫码登录
|
|
421
|
-
5. 等待一段时间后重试
|
|
366
|
+
- 保持 `@icqqjs/cli` 与适配器版本更新
|
|
422
367
|
|
|
423
|
-
###
|
|
368
|
+
### 风控与掉线
|
|
424
369
|
|
|
425
|
-
|
|
426
|
-
- `
|
|
427
|
-
- `
|
|
428
|
-
- `3` (MacOS): 较稳定
|
|
429
|
-
|
|
430
|
-
避免使用:
|
|
431
|
-
- `1` (Android Phone): 容易被风控
|
|
370
|
+
- 登录设备类型、签名服务等由 **`icqq login` / CLI 配置** 管理,不在 `zhin.config` 的 bot 段配置
|
|
371
|
+
- 掉线时先检查守护进程:`icqq` 是否仍在运行、账号是否被踢下线
|
|
372
|
+
- 可降低发消息频率,并在手机 QQ 完成安全验证后重新 `icqq login`
|
|
432
373
|
|
|
433
374
|
## 常见问题
|
|
434
375
|
|
|
435
|
-
### Q:
|
|
376
|
+
### Q: 启动后 bot 一直未连接?
|
|
436
377
|
|
|
437
|
-
A:
|
|
438
|
-
1.
|
|
439
|
-
2.
|
|
440
|
-
3.
|
|
378
|
+
A:
|
|
379
|
+
1. 确认已对该 QQ 号执行过 `icqq login` 且守护进程在运行
|
|
380
|
+
2. 确认 `bots[].name` 与登录 QQ 号一致
|
|
381
|
+
3. 远程部署时检查 `rpc.host` / `rpc.port` / `rpc.token`
|
|
441
382
|
|
|
442
|
-
### Q:
|
|
383
|
+
### Q: 还需要在 zhin.config 里写 password / platform 吗?
|
|
443
384
|
|
|
444
|
-
A:
|
|
445
|
-
1. 配置签名服务器
|
|
446
|
-
2. 更换 platform 参数
|
|
447
|
-
3. 检查网络连接是否稳定
|
|
448
|
-
4. 降低消息发送频率
|
|
385
|
+
A: **不需要**。这些字段属于旧版直连协议,当前适配器仅通过 IPC 连接 CLI 守护进程。
|
|
449
386
|
|
|
450
387
|
### Q: 无法发送图片?
|
|
451
388
|
|
|
@@ -454,24 +391,22 @@ A:
|
|
|
454
391
|
2. 本地文件需使用绝对路径
|
|
455
392
|
3. 确认图片格式和大小符合要求
|
|
456
393
|
|
|
457
|
-
### Q:
|
|
394
|
+
### Q: 如何处理滑块/设备锁验证?
|
|
458
395
|
|
|
459
|
-
A:
|
|
460
|
-
1. 控制台会显示滑块验证链接
|
|
461
|
-
2. 在浏览器中打开链接
|
|
462
|
-
3. 完成滑块验证
|
|
463
|
-
4. 将验证票据复制到控制台
|
|
396
|
+
A: 在运行 `icqq login` 的终端按提示操作;若启用了 Host API,也可在 Remote Console `/icqq` 登录辅助 Tab 提交验证码。
|
|
464
397
|
|
|
465
398
|
## 相关链接
|
|
466
399
|
|
|
467
|
-
- [
|
|
400
|
+
- [@icqqjs/cli](https://github.com/icqqjs/cli)
|
|
401
|
+
- [ICQQ 协议库](https://github.com/icqqjs/icqq)
|
|
468
402
|
- [Zhin.js 官方文档](https://github.com/zhinjs/zhin)
|
|
469
403
|
- [签名服务器](https://github.com/fuqiuluo/unidbg-fetch-qsign)
|
|
470
404
|
|
|
471
405
|
## 依赖项
|
|
472
406
|
|
|
473
|
-
- `@icqqjs/
|
|
474
|
-
- `zhin.js` - Zhin
|
|
407
|
+
- `@icqqjs/cli` - 登录与守护进程(运行时需已安装并在 PATH 中)
|
|
408
|
+
- `zhin.js` / `@zhin.js/core` - Zhin 框架(peer)
|
|
409
|
+
- `@zhin.js/host-router` / `@zhin.js/host-api` - 可选,Console 与 HTTP 路由
|
|
475
410
|
|
|
476
411
|
## 开发
|
|
477
412
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/adapter-icqq",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.8",
|
|
4
4
|
"description": "Zhin.js adapter for ICQQ (QQ Bot)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -51,19 +51,19 @@
|
|
|
51
51
|
"lucide-react": "^1.17.0",
|
|
52
52
|
"radix-ui": "^1.4.3",
|
|
53
53
|
"typescript": "^6.0.3",
|
|
54
|
-
"@zhin.js/cli": "1.0.
|
|
55
|
-
"@zhin.js/host-api": "0.0.
|
|
54
|
+
"@zhin.js/cli": "1.0.85",
|
|
55
|
+
"@zhin.js/host-api": "0.0.2",
|
|
56
56
|
"@zhin.js/contract": "1.0.0",
|
|
57
|
-
"zhin.js": "1.0.
|
|
57
|
+
"zhin.js": "1.0.89"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
|
-
"@zhin.js/agent": "0.1.
|
|
61
|
-
"@zhin.js/client": "2.0.
|
|
62
|
-
"@zhin.js/host-api": "0.0.
|
|
60
|
+
"@zhin.js/agent": "0.1.28",
|
|
61
|
+
"@zhin.js/client": "2.0.1",
|
|
62
|
+
"@zhin.js/host-api": "0.0.2",
|
|
63
63
|
"@zhin.js/contract": "1.0.0",
|
|
64
|
-
"@zhin.js/core": "1.1.
|
|
65
|
-
"@zhin.js/host-router": "0.0.
|
|
66
|
-
"zhin.js": "1.0.
|
|
64
|
+
"@zhin.js/core": "1.1.30",
|
|
65
|
+
"@zhin.js/host-router": "0.0.2",
|
|
66
|
+
"zhin.js": "1.0.89"
|
|
67
67
|
},
|
|
68
68
|
"peerDependenciesMeta": {
|
|
69
69
|
"@zhin.js/agent": {
|