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
    
    

參考#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。