快速上手

本页将指导您快速使用 go-cqhttp 建立起可以简单回应消息的机器人。

准备 go-cqhttp

下载最新版本的 go-cqhttp在新窗口打开,然后运行,此时 go-cqhttp 将会生成配置文件并退出。打开生成的配置文件,按以下说明修改。

account 节的 uinpassword 字段填入机器人 QQ 号和密码。

account:
  uin: 1233456 # QQ账号
  password: 'mima'

servers 节配置 HTTP 和 HTTP POST 通信方式

servers:
  - http:
      host: localhost
      port: 5700
      post:
        - url: 'http://localhost:6700/'

提示

除了 go-cqhttp,您还可以使用任何兼容的 OneBot 实现在新窗口打开,这些实现的配置方式略有不同。如要使用,请查阅对应项目的文档。

配置完毕后,再次启动 go-cqhttp,按提示处理登录认证,当出现群和好友数量时即为登录成功。当进行后面的步骤时,请确保 go-cqhttp 一直正常运行,不要关闭。

新建项目并添加 nuget 包

新建控制台项目,用 IDE 或命令行添加 nuget 包 Sisters.WudiLib在新窗口打开

设置 OneBot API 并发送测试消息

Main 方法改为异步在新窗口打开,然后添加下列代码,并将数字改为你的 QQ 号(不是机器人的)。

注意

请确保你已经添加机器人为好友,以接收私聊消息。

using Sisters.WudiLib;

var httpApi = new HttpApiClient();
httpApi.ApiAddress = "http://localhost:5700/";
var privateResponse = await httpApi.SendPrivateMessageAsync(12345678, "hello");

编译并执行程序,如果所有步骤都被正确完成,则你应该可以收到机器人发来的私聊消息。

配置消息监听

消息监听可以让机器人收到消息或事件时进行处理。要监听并处理消息,需要先编写事件处理器的方法。

现在,让我们继续添加以下方法。

using Sisters.WudiLib.Posts;
using Message = Sisters.WudiLib.SendingMessage;
using MessageContext = Sisters.WudiLib.Posts.Message;

public static async Task OnMessageAsync(HttpApiClient api, MessageContext message)
{
    if (message.Text == "hello")
    {
        await api.SendMessage(message.Endpoint, "Hello, WudiLib!");
        // Endpoint 代表消息接收/发送的节点。使用 Endpoint 可以让 bot 同时处理私聊和群聊消息,而无需分别编写代码。
    }
}

提示

由于 Sisters.WudiLib.MessageSisters.WudiLib.Posts.Message 常常出现命名冲突,同时 Sisters.WudiLib.SendingMessage 也是比 Sisters.WudiLib.Message 更常用的类,此处使用 using 别名指令在新窗口打开导入了这两个类。

然后在 Main 方法中继续添加下列代码。

var listener = new ApiPostListener();
listener.ApiClient = httpApi; // 上面所示客户端的实例,将作为参数传给事件处理器,便于进行各种操作。
listener.PostAddress = "http://localhost:6700/";
listener.StartListen();
listener.MessageEvent += (api, message) => OnMessageAsync(api, message).GetAwaiter().GetResult();
await Task.Delay(-1); // 阻止程序退出。

此时,我们已经配置好了处理器。运行程序并向 bot 发消息测试,当 bot 收到内容为“hello”的消息时,就会回复“Hello, WudiLib!”。

进阶内容

请前往进阶 WudiLib 继续学习。