EuDs

EuDs

EuDs's Blog
twitter
github

qqBot 搭建

qqBot 搭建#

这两天在搭 qqBot,记录一下

整体技术#

我使用的是go-cqhttpnonebot2

在遇到风控问题时,我使用了unidbg-fetch-qsign

过程#

  • 整个过程比我着手搭建前所想的要困难许多,踩了许多坑。不过很棒的一点是,这三个项目的 issue 都十分活跃。我踩的坑,在 issue 中几乎都能搜到。我使用过的开源项目不多,但这三个给了我很好的印象,希望自己以后能做些自己的贡献。

  • 之前没想到最难的一点不是机器人程序的编写,而在于登录。我使用的号是新号(创建一个礼拜左右),风控等级比较高。

而我的需求是:将 bot 部署在地点在非我所在地的一个服务器上,这更是增加了被风控的概率。

尝试许多种方法后,我最终的解决方法是:

  1. 在本地先使用手表协议扫码登录。( "sort_version_name":8.9.73,protocol:2)
  2. 成功登录后将得到的文件移至服务器上并配置signsever, 再次进行登录
  • 但最后 bot 还是被风控,无法发送群消息。

    我短时间内也不想再进一步折腾了。

  • 今天把自己写的插件EuDs63/nonebot-plugin-yesman: nonebot2 插件发布到插件商店 | NoneBot了。过了一遍插件发布的流程,还蛮有意思的。有几点值得说下:

    1. Create an account · PyPI的 username 要求是我见过的最苛刻的。但也能理解。

      Choose a strong password that contains letters (uppercase and lowercase), numbers and special characters. Avoid common words or repetition.

    2. About NoneFlow 好强大。有机会想自己试试写一个类似的,或者了解是怎么做到的。

感想#

  1. 想起搭 telegram bot 时,只需要申请一个 token,甚至教程官方都有在写。而这里却是道高一尺魔高一丈般的猫鼠游戏。不免五味杂陈。
  2. nonebot 这种插件系统我觉得很棒。省了不少力气。
  3. 感觉 qqBot 可玩性还是蛮高的,在其他群里也常常能见到些有趣的 bot。但可惜的是腾讯的态度。

收获#

  1. nohup
  • 使用:例: nphup nb run
  • 关闭:例:
    ps aux | grep `nb` #找到对应的进程号
    kill $进程号
    
  1. 守护进程(Systemd)
    注:以下复制自使用 NoneBot2 和 go-cqhttp 打造自己的 FF14 QQ 机器人
    • 创建
    # vim /lib/systemd/system/go-cqhttp.service
    
        [Unit]
        Description=GO-CQHTTP
        Wants=network-online.target
        After=network-online.target
        [Service]
        Type=simple
        User=root
        WorkingDirectory= GO-CQHTTP的运行目录
        ExecStart= nohup go-cqhttp
        KillMode=process
    
        [Install]
        WantedBy=multi-user.target
    
    • 使用
    systemctl status go-cqhttp #查看状态
    systemctl enable go-cqhttp #启用开机自启
    systemctl restart go-cqhttp #重启进程
    systemctl stop go-cqhttp #停止进程
    systemctl start go-cqhttp #开始进程
    
  2. python 虚拟环境
    • 新建
    python -m venv myenv # 创建一个名为myenv的虚拟环境
    
    • 激活
    source ./qqVenv/bin/activate # bash
    
    source ./qqVenv/bin/activate.fish # fish
    
    

参考#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。