go-cqhttp Linux 部署步骤(扫码问题,已解决)

本文介绍了如何在Linux服务器上部署go-cqhttp,包括下载正确版本的软件包,上传并解压,运行程序,配置config.yml文件,特别是处理在无扫码环境下的登录问题,通过使用session.token文件实现登录。此外,还提到了与SpringBoot等后台系统的交互设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

go-cqhttp Linux 部署步骤(扫码问题,已解决)

参考链接:

https://developer.aliyun.com/article/1143389✳

​ Linux部署思路与Windos思路一致,如果你Windows能部署成功,那么Linux部署不成问题,接下来查看详细步骤

  1. 下载cqhttp对应的linux服务端go-cqhttp_linux_amd64.tar.gz文件

在这里插入图片描述

注意区分linux与windows版本,区分amd64与arm64版本

  1. 将go-cqhttp_linux_amd64.tar.gz文件,上传至服务器

在这里插入图片描述

在 ~ 目录下创建 cqhttp文件夹,并进入,再使用ftp上传*.tar.gz文件

  1. 解压go-cqhttp_linux_amd64.tar.gz文件

    tar -zxvf go-cqhttp_linux_amd64.tar.gz
    

在这里插入图片描述

解压后会生成LICENSE和README.md和go-cqhttp文件

  1. 运行go-cqhttp程序

    ./go-cqhttp
    

在这里插入图片描述

  1. 替换生成的config.yml文件

    # go-cqhttp 默认配置文件
    
    account: # 账号相关
      uin: 10000000 # QQ账号
      password: '' # 密码为空时使用扫码登录
      encrypt: false  # 是否开启密码加密
      status: 0      # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态
      relogin: # 重连设置
        delay: 3   # 首次重连延迟, 单位秒
        interval: 3   # 重连间隔
        max-times: 0  # 最大重连次数, 0为无限制
    
      # 是否使用服务器下发的新地址进行重连
      # 注意, 此设置可能导致在海外服务器上连接情况更差
      use-sso-address: true
      # 是否允许发送临时会话消息
      allow-temp-session: true
    
    heartbeat:
      disabled: false # 是否开启心跳事件上报
      # 心跳频率, 单位秒
      # -1 为关闭心跳
      interval: 10
    
    message:
      # 上报数据类型
      # 可选: string,array
      post-format: string
      # 是否忽略无效的CQ码, 如果为假将原样发送
      ignore-invalid-cqcode: false
      # 是否强制分片发送消息
      # 分片发送将会带来更快的速度
      # 但是兼容性会有些问题
      force-fragment: false
      # 是否将url分片发送
      fix-url: false
      # 下载图片等请求网络代理
      proxy-rewrite: ''
      # 是否上报自身消息
      report-self-message: false
      # 移除服务端的Reply附带的At
      remove-reply-at: false
      # 为Reply附加更多信息
      extra-reply-data: false
      # 跳过 Mime 扫描, 忽略错误数据
      skip-mime-scan: false
    
    output:
      # 日志等级 trace,debug,info,warn,error
      log-level: warn
      # 日志时效 单位天. 超过这个时间之前的日志将会被自动删除. 设置为 0 表示永久保留.
      log-aging: 15
      # 是否在每次启动时强制创建全新的文件储存日志. 为 false 的情况下将会在上次启动时创建的日志文件续写
      log-force-new: true
      # 是否启用日志颜色
      log-colorful: true
      # 是否启用 DEBUG
      debug: false # 开启调试模式
    
    # 默认中间件锚点
    default-middlewares: &default
      # 访问密钥, 强烈推荐在公网的服务器设置
      access-token: ''
      # 事件过滤器文件目录
      filter: ''
      # API限速设置
      # 该设置为全局生效
      # 原 cqhttp 虽然启用了 rate_limit 后缀, 但是基本没插件适配
      # 目前该限速设置为令牌桶算法, 请参考:
      # https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin
      rate-limit:
        enabled: false # 是否启用限速
        frequency: 1  # 令牌回复频率, 单位秒
        bucket: 1     # 令牌桶大小
    
    database: # 数据库相关设置
      leveldb:
        # 是否启用内置leveldb数据库
        # 启用将会增加10-20MB的内存占用和一定的磁盘空间
        # 关闭将无法使用 撤回 回复 get_msg 等上下文相关功能
        enable: true
      sqlite3:
        # 是否启用内置sqlite3数据库
        # 启用将会增加一定的内存占用和一定的磁盘空间
        # 关闭将无法使用 撤回 回复 get_msg 等上下文相关功能
        enable: true
        cachettl: 3600000000000 # 1h
    
    # 连接服务列表
    servers:
      - http: # HTTP 通信设置
          address: 0.0.0.0:5700 # HTTP监听地址
          timeout: 5      # 反向 HTTP 超时时间, 单位秒,<5 时将被忽略
          long-polling:   # 长轮询拓展
            enabled: false       # 是否开启
            max-queue-size: 2000 # 消息队列大小,0 表示不限制队列大小,谨慎使用
          middlewares:
            <<: *default # 引用默认中间件
          post:           # 反向HTTP POST地址列表
          #- url: ''                # 地址
          #  secret: ''             # 密钥
          #  max-retries: 3         # 最大重试,0 时禁用
          #  retries-interval: 1500 # 重试时间,单位毫秒,0 时立即
          - url: http://xxx.xx.xxx.xxx:xxxx/ # 地址
            secret: ''                  # 密钥
            max-retries: 0             # 最大重试,0 时禁用
            retries-interval: 1000      # 重试时间,单位毫秒,0 时立即
    

    注意:若需要与springboot等后台进行交互,需要填写 反向HTTP POST地址列表中的 - url地址。其余配置项可根据自己的需要进行相关设置。

  2. 将windows版本生成的session.token文件上传

    若此时直接重启cqhttp,是需要扫码认证的,然而,部署在公网服务器上的电脑不支持扫码

    在这里插入图片描述

    此时我们可在电脑上登录windows版本的cqhttp机器人登录成功后,由它生成的seesion.token和device.json文件进行上传至服务器的相应目录

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  1. 重启机器人

    ./cq-http
    

    此时可以完成登录

在这里插入图片描述

<think>好的,用户想用Python创建QQ机器人实现自动回复功能。我需要先整理相关的步骤和工具。根据用户提供的引用,提到了NoneBot2框架和go-cqhttp工具,这两个应该是关键。 首先,我得确认用户的环境准备。可能需要安装Python,推荐3.8以上版本。然后安装NoneBot2,可以用pip安装。同时,go-cqhttp是处理QQ协议的工具,需要下载对应的版本,比如Windows用户可能需要exe文件,Linux用户可能需要其他版本。 接下来是创建项目结构。用户需要初始化一个NoneBot项目,配置环境文件,比如.env.dev,设置驱动和机器人QQ号。然后配置go-cqhttp,修改config.yml中的连接信息,确保和NoneBot的配置一致,比如ws地址和访问令牌。 编写自动回复的逻辑部分。在NoneBot中,可以通过编写插件来处理消息事件。用户需要创建一个插件目录,比如plugins,然后编写处理函数,使用on_message装饰器来监听消息,并通过条件判断触发回复。例如,当消息内容包含“你好”时,机器人回复“你好,我是自动回复机器人!”。 运行测试部分需要同时启动go-cqhttp和NoneBot服务。用户需要先运行go-cqhttp登录QQ账号,然后运行bot.py启动NoneBot。这样机器人就能接收和处理消息了。 用户可能遇到的常见问题包括环境配置错误、依赖版本不兼容、网络问题导致连接失败,以及消息事件处理逻辑错误。需要提醒用户检查配置文件和日志信息。 最后,根据用户的需求,生成相关问题,比如如何扩展功能、处理复杂消息、部署服务器,以及优化性能。这些问题可以帮助用户进一步学习和应用。 需要确保回答中引用的内容正确添加引用标识,比如引用[^1]和[^2]。同时,代部分要使用正确的格式,行内数学公式用$...$,独立公式用$$...$$,不过在这个问题中可能用不上数学公式,但系统级指令需要遵守。整体结构要清晰,分步骤说明,并确保每个部分的正确性。</think>### 如何使用Python创建QQ机器人实现自动回复功能 #### 1. 环境准备 - **安装Python**:推荐Python 3.8及以上版本,使用虚拟环境管理依赖(如`venv`)[^2]。 - **安装NoneBot2框架**: ```bash pip install nonebot2 ``` - **下载go-cqhttp**:从[官方仓库](https://github.com/Mrs4s/go-cqhttp/releases)选择对应系统的版本,解压后配置`config.yml`[^1]。 #### 2. 项目初始化 ```bash mkdir qq_bot && cd qq_bot nonebot init ``` 生成的目录结构包含: ``` ├── bot.py # 入口文件 ├── plugins # 插件目录 └── pyproject.toml # 依赖配置 ``` #### 3. 配置机器人 - **修改`.env.dev`文件**: ```env ENVIRONMENT=dev HOST=0.0.0.0 PORT=8080 DRIVER=~fastapi BOT_QQ=你的机器人QQ号 ``` - **配置go-cqhttp的`config.yml`**: ```yaml account: uin: 机器人QQ号 password: "密" servers: - ws-reverse: url: ws://127.0.0.1:8080/onebot/v11/ws reconnect-interval: 3000 ``` #### 4. 编写自动回复逻辑 在`plugins`目录下创建`reply.py`: ```python from nonebot.plugin import on_message from nonebot.adapters.onebot.v11 import MessageEvent reply_handler = on_message(priority=10) @reply_handler.handle() async def auto_reply(event: MessageEvent): msg = event.get_plaintext() if "你好" in msg: await reply_handler.finish("你好,我是自动回复机器人!") ``` #### 5. 运行与测试 - **启动go-cqhttp**: ```bash ./go-cqhttp ``` 登录QQ账号后,日志显示`WebSocket反向服务器已连接`表示成功。 - **启动NoneBot服务**: ```bash nb run ``` 发送包含“你好”的私聊/群消息,机器人会自动回复。 #### 6. 常见问题排查 - **连接失败**:检查`config.yml`中的端口和IP是否与NoneBot配置一致 - **消息未响应**:确认插件已加载(查看启动日志中`Loaded plugins`列表) - **依赖冲突**:使用`pip freeze`检查NoneBot版本是否为2.x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值