|
10 | 10 |
|
11 | 11 | 运行前请先启动 PMHQ,并确保它的 WebSocket 服务可以访问。默认情况下,Yogurt 会连接 `ws://localhost:13000/ws`。随后启动 Yogurt;如果当前工作目录下还没有 `config.json`,程序会先生成一份默认配置文件,等待你修改后再继续。 |
12 | 12 |
|
| 13 | +Yogurt 启动后会先检查当前 PMHQ 是否已经登录;如果已经登录且账号正好是这个 QQ 号,就会直接进入初始化;如果已经登录但账号不是这个 QQ 号,则会直接报错,避免误用错误账号;如果当前尚未登录,则会检查 PMHQ 的快速登录列表,在列表中找到该 QQ 号时优先尝试快速登录,失败后再回落到二维码登录。不填写 `quickLoginUin` 时,Yogurt 会直接按照当前 PMHQ 状态继续,必要时进入二维码登录。登录成功后,Yogurt 会继续执行初始化,并开始对外提供 Milky 接口。 |
| 14 | + |
| 15 | +Yogurt 启动并登录完成后,HTTP API 的地址是 `http://<host>:<port>/api`,事件接口的地址是 `http://<host>:<port>/event`。如果设置了 `accessToken`,调用方需要使用同一个令牌完成认证;在 HTTP 场景下,通常使用 `Authorization: Bearer <token>` 请求头即可。 |
| 16 | + |
| 17 | +## 配置 |
| 18 | + |
13 | 19 | 当前版本面向 PC 协议使用,内置固定使用 `Linux` 协议信息,不需要再额外配置 PC 协议版本,也不需要签名服务。最常见的配置如下: |
14 | 20 |
|
15 | | -```json |
| 21 | +```jsonc |
16 | 22 | { |
17 | | - "pmhqUrl": "ws://127.0.0.1:13000/ws", |
18 | | - "quickLoginUin": 123456789, |
19 | | - "preloadContacts": false, |
| 23 | + "signApiUrl": "", // 留空即可 |
| 24 | + "pmhqUrl": "ws://localhost:13000/ws", |
| 25 | + "quickLoginUin": null, |
| 26 | + "protocol": { |
| 27 | + "os": "Linux", |
| 28 | + "version": "fetched" // 保持默认值即可,Yogurt 会在登录时自动从 PMHQ 获取协议版本信息 |
| 29 | + }, |
| 30 | + "androidCredentials": { // 留空即可,Yogurt-PMHQ 不使用 Android 协议 |
| 31 | + "uin": 0, |
| 32 | + "password": "" |
| 33 | + }, |
| 34 | + "androidUseLegacySign": false, // 留空即可,Yogurt-PMHQ 不使用 Android 协议 |
20 | 35 | "reportSelfMessage": true, |
| 36 | + "preloadContacts": false, |
21 | 37 | "transformIncomingMFaceToImage": false, |
22 | 38 | "httpConfig": { |
23 | 39 | "host": "127.0.0.1", |
24 | | - "port": 3000, |
25 | | - "accessToken": "change-me", |
| 40 | + "port": 30001, |
| 41 | + "accessToken": "", |
26 | 42 | "corsOrigins": [] |
27 | 43 | }, |
28 | 44 | "webhookConfig": { |
|
37 | 53 | } |
38 | 54 | ``` |
39 | 55 |
|
40 | | -其中,`pmhqUrl` 表示 PMHQ 的 WebSocket 地址;如果 PMHQ 运行在其他主机或使用了不同端口,只需要修改这一项即可。`quickLoginUin` 是一个可选项,用于指定优先尝试快速登录的 QQ 号。Yogurt 启动后会先检查当前 PMHQ 是否已经登录;如果已经登录且账号正好是这个 QQ 号,就会直接进入初始化;如果已经登录但账号不是这个 QQ 号,则会直接报错,避免误用错误账号;如果当前尚未登录,则会检查 PMHQ 的快速登录列表,在列表中找到该 QQ 号时优先尝试快速登录,失败后再回落到二维码登录。不填写 `quickLoginUin` 时,Yogurt 会直接按照当前 PMHQ 状态继续,必要时进入二维码登录。 |
| 56 | +### `pmhqUrl` |
41 | 57 |
|
42 | | -`preloadContacts` 用于控制是否在登录完成后预加载联系人列表。关闭时启动更快;开启后会预先拉取好友、群和部分成员信息,能改善部分接口在刚启动时的表现,但也会增加启动时间和内存占用。`reportSelfMessage` 表示是否上报自己发送的消息,`transformIncomingMFaceToImage` 表示是否将收到的市场表情转换成普通图片段。 |
| 58 | +表示 PMHQ 的 WebSocket 地址;如果 PMHQ 运行在其他主机或使用了不同端口,只需要修改这一项即可。 |
43 | 59 |
|
44 | | -`httpConfig` 和 `webhookConfig` 用于配置 Yogurt 对外提供的 Milky 服务。`httpConfig.host` 与 `httpConfig.port` 决定监听地址,默认是 `127.0.0.1:3000`。如果 `httpConfig.accessToken` 为空,任何能够访问该地址的客户端都可以直接调用 API;如果需要在局域网或公网环境下使用,建议务必设置一个访问令牌。`httpConfig.corsOrigins` 留空时表示允许所有来源跨域访问。`webhookConfig.url` 可以填写一个或多个事件推送地址,`webhookConfig.accessToken` 则会在推送时一并携带。 |
| 60 | +### `quickLoginUin` |
45 | 61 |
|
46 | | -`logging.coreLogLevel` 用于控制 Yogurt 和 `acidify-core` 的日志等级,可选值有 `VERBOSE`、`DEBUG`、`INFO`、`WARN` 和 `ERROR`。`logging.ansiLevel` 用于控制终端颜色输出等级,可选值有 `NONE`、`ANSI16`、`ANSI256` 和 `TRUECOLOR`。`skipSecurityCheck` 默认为 `false`;当你把服务绑定到 `0.0.0.0` 且没有设置访问令牌时,程序会给出一段安全提示,如果你明确知道自己在做什么,可以将其设为 `true` 跳过检查。 |
| 62 | +可选项,用于指定优先尝试快速登录的 QQ 号。 |
47 | 63 |
|
48 | | -登录时,Yogurt 会优先复用 PMHQ 当前已有的登录状态;如果没有可用的在线状态,则会按前述逻辑尝试快速登录,最后再进入二维码登录。二维码登录开始后,终端侧会收到二维码相关事件;如果你的接入层订阅了这些事件,就可以直接展示二维码图片或链接。登录成功后,Yogurt 会继续执行初始化,并开始对外提供 Milky 接口。 |
| 64 | +### `preloadContacts` |
49 | 65 |
|
50 | | -Yogurt 启动并登录完成后,HTTP API 的地址是 `http://<host>:<port>/api`,事件接口的地址是 `http://<host>:<port>/event`。如果设置了 `accessToken`,调用方需要使用同一个令牌完成认证;在 HTTP 场景下,通常使用 `Authorization: Bearer <token>` 请求头即可。 |
| 66 | +用于控制是否在登录完成后预加载联系人列表。关闭时启动更快;开启后会预先拉取好友、群和部分成员信息,能改善部分接口在刚启动时的表现,但也会增加启动时间和内存占用。 |
| 67 | + |
| 68 | +### `reportSelfMessage` |
| 69 | + |
| 70 | +表示是否上报自己发送的消息。 |
| 71 | + |
| 72 | +### `transformIncomingMFaceToImage` |
| 73 | + |
| 74 | +表示是否将收到的市场表情转换成普通图片段。 |
| 75 | + |
| 76 | +### `httpConfig` 和 `webhookConfig` |
| 77 | + |
| 78 | +用于配置 Yogurt 对外提供的 Milky 服务,详见 [Milky 文档的“通信”部分](https://milky.ntqqrev.org/guide/communication)。 |
| 79 | + |
| 80 | +- `httpConfig.host` 与 `httpConfig.port` 决定监听地址,默认是 `127.0.0.1:3000`。 |
| 81 | +- 如果 `httpConfig.accessToken` 为空,任何能够访问该地址的客户端都可以直接调用 API;如果需要在局域网或公网环境下使用,建议务必设置一个访问令牌。 |
| 82 | +- `httpConfig.corsOrigins` 留空时表示允许所有来源跨域访问。 |
| 83 | +- `webhookConfig.url` 可以填写一个或多个事件推送地址。 |
| 84 | +- `webhookConfig.accessToken` 会在推送时携带在 `Authorization` 请求头中。 |
| 85 | + |
| 86 | +### 日志配置 |
| 87 | + |
| 88 | +见 [Yogurt 文档的“日志配置”部分](https://acidify.ntqqrev.org/yogurt/configuration#%E6%97%A5%E5%BF%97%E9%85%8D%E7%BD%AE)。 |
51 | 89 |
|
52 | 90 | ## 支持平台 |
53 | 91 |
|
|
0 commit comments