流年QQ机器人怎么用?功能有哪些?

99ANYc3cd6 机器人 2

第一部分:准备工作

在开始写代码之前,你需要准备好以下几样东西:

流年QQ机器人怎么用?功能有哪些?-第1张图片-广州国自机器人
(图片来源网络,侵删)
  1. 一台可以24小时开机的服务器

    • 推荐:购买一台云服务器(如阿里云、腾讯云、Vultr、DigitalOcean等),学生用户可以享受非常优惠的价格。
    • 不推荐:用自己的电脑,因为关机或休眠后机器人就会离线。
    • 系统:推荐使用 Linux(如 Ubuntu 20.04 LTS),因为社区支持最好,命令行操作方便。
  2. 一个QQ账号

    • 重要:不要用你常用的、有重要好友的QQ号!因为机器人账号容易被风控封禁。
    • 解决方案:可以去注册一个新的QQ号,专门用来做机器人。
  3. 获取QQ机器人的连接凭证

    • 目前官方已经不直接开放给个人用户申请了,主流的方式是使用第三方协议框架,它们通过反向技术连接到QQ,模拟客户端登录。
    • 最流行的两个框架是:
      • go-cqhttp:基于Go语言,性能高,配置灵活,是目前最主流的选择。
      • OICQ:基于Node.js,在Node.js开发者中很受欢迎。
    • 我们将以 go-cqhttp 为例进行讲解,因为它更稳定,功能也更全面。

第二部分:核心组件 - go-cqhttp 的配置与运行

“流年”机器人的“身体”go-cqhttp,我们需要先让它跑起来,并能接收消息。

流年QQ机器人怎么用?功能有哪些?-第2张图片-广州国自机器人
(图片来源网络,侵删)

步骤 1:下载并安装 go-cqhttp

  1. 登录你的云服务器(通过SSH)。
  2. 前往 go-cqhttp 的 releases 页面 下载最新版的Linux程序。
  3. 使用 wget 命令下载(请替换链接中的版本号):
    wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.2.0/go-cqhttp-v1.2.0-linux-amd64.tar.gz
  4. 解压文件:
    tar -zxvf go-cqhttp-v1.2.0-linux-amd64.tar.gz
  5. 进入解压后的目录,给 go-cqhttp 添加执行权限:
    chmod +x go-cqhttp

步骤 2:首次运行,生成配置文件

go-cqhttp 所在目录,直接运行它:

./go-cqhttp

它会自动生成一个 config.yml 配置文件,并提示你使用扫码登录。

  1. 在你的电脑或手机上打开QQ,扫描终端中显示的二维码。
  2. 使用你为机器人准备的那个新QQ号扫码登录。
  3. 登录成功后,go-cqhttp 会自动退出。

步骤 3:配置 go-cqhttp

编辑 config.yml 文件,这是最关键的一步。

vim config.yml

你需要关注以下几个核心配置项:

# 账号相关
account:
  uin:  # 你的机器人QQ号
  password:  # 通常留空,使用扫码登录
  # ... 其他账号配置
# HTTP通信设置,用于接收你的程序发送的指令
servers:
  - 
    # 监听地址
    host: 127.0.0.1
    # 监听端口
    port: 8080
    # 访问密钥,非常重要!用于验证你的程序身份
    access-token: "your_secret_token_here" 
    # 通信协议,http
    protocol: http
  # 你也可以启用WebSocket,对实时性要求高的程序推荐使用
  - 
    host: 0.0.0.0
    port: 8081
    access-token: "your_secret_token_ws"
    protocol: ws
# 日志等级,建议设置为 info 或 warn
log_level: info

配置说明

  • account 部分:uin 会自动填入你的QQ号。
  • servers 部分:这是你编写的“流年”程序与 go-cqhttp 对话的桥梁。hostport 定义了程序的监听地址和端口。access-token 是一个安全令牌,必须设置,并且你的程序里也要用这个值,否则无法通信。

步骤 4:启动并测试

再次运行 go-cqhttp

./go-cqhttp

如果看到 WS Server *:8081HTTP Server *:8080 启动成功的日志,说明 go-cqhttp 已经在后台监听消息了。


第三部分:编写“流年”机器人的“大脑” (Python 示例)

我们将使用 Python 来编写机器人的逻辑,因为它简单易用,库丰富。

步骤 1:安装 Python 库

推荐使用 nonebot2,这是一个功能强大、生态完善的QQ机器人框架,能很好地与 go-cqhttp 配合。

在你的服务器上创建一个新的项目目录,liunian_bot

mkdir liunian_bot
cd liunian_bot

创建并激活一个虚拟环境(推荐):

python3 -m venv venv
source venv/bin/activate  # Linux/Mac
# venv\Scripts\activate  # Windows

安装 nonebot2

pip install nonebot2

步骤 2:编写第一个插件

机器人功能是通过“插件”来实现的,我们先写一个最简单的“复读机”插件。

liunian_bot 目录下,创建一个 plugins 文件夹,并在里面创建一个 echo.py 文件。

mkdir plugins
touch plugins/echo.py

编辑 echo.py 文件,写入以下代码:

from nonebot import on_message
from nonebot.adapters.onebot.v11 import MessageEvent, Message
from nonebot.matcher import Matcher
from nonebot.params import CommandArg
from nonebot import logger
# 创建一个消息匹配器,监听所有消息
echo_matcher = on_message()
# 使用正则表达式来触发,这里监听以 "复读" 开头的消息
@echo_matcher.handle()
async def handle_first_receive(matcher: Matcher, args: Message = CommandArg()):
    # args 是命令后面的内容
    if args:
        # 如果有内容,就复读它
        await matcher.send(args)
    else:
        # 如果没有内容,提示用户
        await matcher.send("请告诉我你想复读什么内容哦~")

步骤 3:配置并启动 nonebot

liunian_bot 根目录下,创建一个 .env 文件来配置 nonebot

touch .env

编辑 .env 文件,填入 go-cqhttp 的配置信息:

# 机器人连接的地址和端口
HOST=127.0.0.1
PORT=8080
# 之前在 config.yml 里设置的 access-token
ACCESS_TOKEN=your_secret_token_here
# 日志级别
LOG_LEVEL=INFO

liunian_bot 根目录下创建一个 main.py 文件来启动机器人:

import nonebot
# 加载插件
nonebot.load_from_toml("pyproject.toml")
if __name__ == "__main__":
    nonebot.run()

为了让 nonebot 能找到我们的插件,还需要创建一个 pyproject.toml 文件:

touch pyproject.toml

编辑 pyproject.toml

[tool.nonebot]
plugin_dirs = ["plugins"]

步骤 4:启动你的“流年”机器人

liunian_bot 目录下,运行 main.py

python main.py

如果一切顺利,你会看到 nonebot 启动的日志,你的“流年”机器人已经准备就绪了!

去QQ上找到你的机器人账号,给它发一句消息:

复读 这句话太酷了

机器人应该会回复:

这句话太酷了

恭喜!你已经成功搭建了“流年”机器人的核心功能!


第四部分:部署与高级功能

如何让机器人 24 小时在线?

你不能一直开着SSH终端,你需要使用 进程管理工具,最常用的是 systemd

  1. /etc/systemd/system/ 目录下创建一个服务文件,liunian.service

    sudo vim /etc/systemd/system/liunian.service
  2. 写入以下内容(请根据你的实际路径修改):

    [Unit]
    Description=Liunian QQ Bot
    After=network.target
    [Service]
    Type=simple
    User=你的服务器用户名 #  root
    WorkingDirectory=/home/你的用户名/liunian_bot
    ExecStart=/home/你的用户名/liunian_bot/venv/bin/python /home/你的用户名/liunian_bot/main.py
    Restart=always
    RestartSec=5
    [Install]
    WantedBy=multi-user.target
  3. 启动并设置开机自启:

    sudo systemctl daemon-reload
    sudo systemctl start liunian
    sudo systemctl enable liunian

即使你关闭了SSH连接,你的机器人也会在后台持续运行,你可以用 sudo systemctl status liunian 查看它的状态。

拓展“流年”的功能

“流年”这个名字很有意境,可以围绕这个名字开发很多有趣的功能:

  1. 每日一句/诗词

    • 每天定时在指定群聊或私聊发送一句优美的诗词、名人名言或祝福语。
    • nonebot 提供了 Scheduler (定时任务) 插件,可以轻松实现。
  2. 运势查询

    • 用户发送“流年 运势”,机器人返回随机的星座或今日运势。
    • 可以调用一些免费的运势API。
  3. 群管功能

    • /踢人 [成员]:踢出指定成员。
    • /禁言 [成员] [时长]:禁言指定成员。
    • /设置群名 [新名字]:修改群名。
    • 这些功能需要 nonebot 调用 go-cqhttp 提供的 API 来操作群。
  4. 娱乐功能

    • 聊天机器人:接入图灵机器人、ChatGPT等API,让机器人能进行更智能的对话。
    • 点歌:接入网易云/QQ音乐的API,实现点歌功能。
    • AI绘画:接入 Midjourney/Stable Diffusion 的 API,根据用户描述生成图片。
  5. 信息查询

    • 天气查询:调用天气API,查询指定城市的天气。
    • 时间查询:查询全球不同时区的时间。
    • 翻译:调用翻译API,进行语言翻译。

如何学习更多?

祝你开发顺利,打造出一个独一无二的“流年”机器人!

标签: 流年QQ机器人使用教程 流年QQ机器人功能详解 流年QQ机器人怎么设置

上一篇star 写稿机器人

下一篇当前分类已是最新一篇

抱歉,评论功能暂时关闭!