qqBot 搭建#
這兩天在搭 qqBot,記錄一下
整體技術#
在遇到風控問題時,我使用了unidbg-fetch-qsign。
過程#
-
整個過程比我著手搭建前所想的要困難許多,踩了許多坑。不過很棒的一點是,這三個專案的 issue 都十分活躍。我踩的坑,在 issue 中幾乎都能搜到。我使用過的開源專案不多,但這三個給了我很好的印象,希望自己以後能做些自己的貢獻。
-
之前沒想到最難的一點不是機器人程式的編寫,而在於登錄。我使用的號是新號(創建一個禮拜左右),風控等級比較高。
而我的需求是:將 bot 部署在地點在非我所在地的一個伺服器上,這更是增加了被風控的概率。
嘗試許多種方法後,我最終的解決方法是:
- 在本地先使用手機協議掃碼登錄。(
"sort_version_name":8.9.73
,protocol:2
) - 成功登錄後將得到的文件移至伺服器上並配置
signsever
,再次進行登錄
-
但最後 bot 還是被風控,無法發送群消息。
我短時間內也不想再進一步折騰了。
-
今天把自己寫的插件EuDs63/nonebot-plugin-yesman: nonebot2 插件發布到插件商店 | NoneBot了。過了一遍插件發布的流程,還蠻有意思的。有幾點值得說下:
- Create an account · PyPI的 username 要求是我見過的最苛刻的。但也能理解。
Choose a strong password that contains letters (uppercase and lowercase), numbers and special characters. Avoid common words or repetition.
- About NoneFlow 好強大。有機會想自己試試寫一個類似的,或者了解是怎麼做到的。
- Create an account · PyPI的 username 要求是我見過的最苛刻的。但也能理解。
感想#
- 想起搭 telegram bot 時,只需要申請一個 token,甚至教程官方都有在寫。而這裡卻是道高一尺魔高一丈般的貓鼠遊戲。不免五味雜陳。
- nonebot 這種插件系統我覺得很棒。省了不少力氣。
- 感覺 qqBot 可玩性還是蠻高的,在其他群裡也常常能見到些有趣的 bot。但可惜的是騰訊的態度。
收穫#
nohup
- 使用:例:
nphup nb run
- 關閉:例:
ps aux | grep `nb` #找到對應的進程號 kill $進程號
守護進程(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 #開始進程
- python 虛擬環境
- 新建
python -m venv myenv # 創建一個名為myenv的虛擬環境
- 激活
source ./qqVenv/bin/activate # bash source ./qqVenv/bin/activate.fish # fish