# 对接 OneBot (go-cqhttp)

OneBot 协议可以用于对接 go-cqhttp 等机器人框架。

如果你要使用 OneBot 协议，那么你就将 `config.cfg` 中的 `[mirai]` 块删除，然后加入以下配置：

```properties
[onebot]
qq=请修改为你机器人的QQ号
manager_qq = 请修改为机器人管理员的QQ号

reverse_ws_host = "0.0.0.0"
reverse_ws_port = 8566
```

就可以使用 go-cqhttp 或者其他支持 OneBot 协议的程序和 ChatGPT 聊天！

## go-cqhttp 的设置教程

如果你在搭建过程中遇到问题，可以看：

[go-cqhttp 启动过程中的常见问题](/chang-jian-wen-ti-jie-da/gocqhttp-qi-dong-guo-cheng-zhong-de-chang-jian-wen-ti.md)

OneBot 是一个典型的支持 OneBot 协议的平台。

如果你在使用 go-cqhttp，那就可以不需要理会 Mirai 了。

{% hint style="info" %}
如果你通过 GO-CQHTTP 的 Linux 部署脚本来安装的这个项目，那么你可以跳过这一段教程。
{% endhint %}

### 1. 下载 go-cqhttp

你可以在这里下载最新的 go-cqhttp：<https://github.com/Mrs4s/go-cqhttp/releases>

### 2. 初始化 go-cqhttp

解压并启动 go-cqhttp，选 `3` 后回车，退出程序。

<figure><img src="/files/XJfaTL75O6jRaF1qVF54" alt=""><figcaption></figcaption></figure>

### 3. 设置 go-cqhttp

编辑 go-cqhttp 的 `config.yaml`，设置机器人的 QQ 号和反向 Universal 地址 （这个反向 Universal 地址和前面的 `reverse_ws_host` 、`reverse_ws_port` ）有关。

<figure><img src="/files/HUFkXcj0c6H06MX8KyS0" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/m6GQyuFBy0VS961jf6gu" alt=""><figcaption></figcaption></figure>

这里的 universal 地址的写法如下：

* 如果你的 go-cqhttp 和 chatgpt 在同一台机器上，那么就写： `ws://localhost:8566/ws` ，这里的 8566 和 `reverse_ws_port`的值是一样的。
* 如果你的 go-cqhttp 和 chatgpt 在不同的机器上，那么就在上面的基础上，把 `localhost` 改成你 chatgpt 服务器的 IP 地址。

### 4. 映射 \`reverse\_ws\_port\` 端口

这一步是使用 Docker 部署的同学才需要做的， Windows 用户可以直接跳过。 &#x20;

打开 docker-compose.yaml，在图中的位置加入下面这么一行：

<figure><img src="/files/8TabEDMrCpEQcYCoGY4w" alt=""><figcaption></figcaption></figure>

然后执行 `docker-compose up -d` 更新即可。

<figure><img src="/files/xLIZnlzBwg9tbIHcjbZ3" alt=""><figcaption></figcaption></figure>

### 5. 启动 go-cqhttp，生成配置文件

首次启动时我们不要登录 QQ，我们只是需要它生成的 `device.json`文件。

<figure><img src="/files/mx6oQPQyYScCp5bU7lWa" alt=""><figcaption></figcaption></figure>

### 6. 打开 device.json，修改协议

找到 `protocol`，把后面的数字改成 2，然后保存并退出即可。&#x20;

这会让 go-cqhttp 使用 Android Watch 协议进行登录。

<figure><img src="/files/IcBBAsHRhkJVq6mMaCeV" alt=""><figcaption></figcaption></figure>

### 7. 启动 go-cqhttp，扫码并登录

<figure><img src="/files/UqKibw3dQOr0cZaPiGih" alt=""><figcaption></figcaption></figure>

### 注意事项

这个go-cqhttp 的扫码登录，是需要你自己的手机 QQ 和 go-cqhttp 在同一个网络环境下的才能成功的。

这个问题有两种解决方法：

#### 方法一：代理

在你的服务器上搭个代理，让你的手机通过代理再进行扫码。

#### 方法二：同步 session.token 文件

在你自己的电脑上用同样的 device.json 来登陆一次 go-cqhttp，扫码登录成功后，把这个 session.token 放到服务器上

#### 方法三：在自己电脑运行

你自己的电脑上跑 go-cqhttp，然后在服务器跑 chatgpt

然后通过 go-cqhttp 的反向 websocket 功能，让你电脑上的 go-cqhttp 连接上服务器的 chatgpt 程序。

唯一要修改的就是：在第2步里面将 `127.0.0.1` 就换成你运行 chatgpt 服务器的公网 IP 地址。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://chatgpt-qq.lss233.com/pei-zhi-wen-jian-jiao-cheng/dui-jie-liao-tian-ping-tai/dui-jie-onebot-gocqhttp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
