「GoCN 酷 Go 推薦」QQ 機器人 go-cqhttp
什麼是 go-cqhttp?
QQ 機器人,可以做的事兒太多了,比如一個 UP 主需要羣發多個 QQ 羣,以便通知粉絲們開播;再比如可以檢測羣內或發給自己的消息,而通過代碼直接回復做的簡單回覆。比如檢測羣內有加入或退出羣時的消息而發送友好問候與告別白等。裏面的功能還有很多,比如批量獲取羣成員,嘿嘿,具體能做什麼,就自己發揮自己的想象力吧~
請不要用於商業或打擾他人的用途噢~
安裝 go-cqhttp
// 做爲一個golang開發,直接源碼編譯,其實更方便。 https://github.com/Mrs4s/go-cqhttp clone好了接着看。 或者https://github.com/Mrs4s/go-cqhttp/releases中下載編譯好了的包也行
開始使用
-
源碼的直接編譯即可,然後運行,首次運行後,會在當前運行目錄下生成一個 config.yml。
-
打開 config.yml,寫入你的 uin,也就是 QQ 號(數字類型),然後輸入您的 password(字符串類型),需要加英文單引號,然後保存當前文件。
-
再次運行執行文件,會讓你選擇通信方式,這時我們選 0 -> 回車
-
首次登錄需要用驗證,就選 1 向手機發送短信驗證碼,之後輸入驗證碼 -> 回車
-
此時就已經登錄成功,並開始監聽 5700 端口
-
API 文檔一定要看:API | go-cqhttp 幫助中心(https://docs.go-cqhttp.org/api)
入門給羣裏發送消息
POST:127.0.0.1:5700/send_group_msg
Content-type : application/json
{
"group_id":"538732374",
"message":"大家好,我測試一下,可忽略本條消息"
}
多賬號登錄的配置:
打開配置文件 config.yml
# 連接服務列表
servers:
# 添加方式,同一連接方式可添加多個,具體配置說明請查看文檔
#- http: # http 通信
#- ws: # 正向 Websocket
#- ws-reverse: # 反向 Websocket
#- pprof: #性能分析服務器
- http: # HTTP 通信設置
host: 127.0.0.1 # 服務端監聽地址
port: 5700 # 服務端監聽端口
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://127.0.0.1:5701/ # 地址
# secret: '' # 密鑰
# max-retries: 10 # 最大重試,0 時禁用
# retries-interval: 1000 # 重試時間,單位毫秒,0 時立即
我們需要更改的就是 port,每個 QQ 賬號都對應一個 port,此後我們就可以運行多個 cq 了。
再比如,我們要獲取羣成員列表:
POST:127.0.0.1:5700/get_group_member_list
Content-type : application/json
{
"group_id":"538732374"
}
// 下面是返回內容
{
"data": [
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1582388878,
"last_sent_time": 1640106840,
"level": "1",
"nickname": " S un",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 371625
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1565769192,
"last_sent_time": 1648000653,
"level": "3",
"nickname": " ωill",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 420984
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1578443075,
"last_sent_time": 1578443075,
"level": "1",
"nickname": "。",
"role": "member",
"sex": "unknown",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 3546393
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1571772377,
"last_sent_time": 1571994660,
"level": "1",
"nickname": "氣運",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 4928040
},
{
"age": 0,
"area": "",
"card": "suparna",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1555336437,
"last_sent_time": 1643027065,
"level": "1",
"nickname": "6020940",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 6020940
},
{
"age": 0,
"area": "",
"card": "上海-只是愛了童話",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1500864757,
"last_sent_time": 1547811713,
"level": "1",
"nickname": "只是愛了童話",
"role": "member",
"sex": "female",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 6168731
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1580104607,
"last_sent_time": 1581510918,
"level": "1",
"nickname": "老矣",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 6202192
},
{
"age": 0,
"area": "",
"card": "nickee",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1481884001,
"last_sent_time": 1516517605,
"level": "1",
"nickname": "澎澎",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 7511950
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1560697994,
"last_sent_time": 1562396877,
"level": "1",
"nickname": "不忘初心",
"role": "member",
"sex": "unknown",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 9445656
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1540626510,
"last_sent_time": 1549110296,
"level": "1",
"nickname": "JerryGuan",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 10223102
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1548510009,
"last_sent_time": 1563723272,
"level": "1",
"nickname": "向前看",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 10419265
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1563710990,
"last_sent_time": 1565880929,
"level": "1",
"nickname": "メ宇哥哥メ/fw",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 10732275
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1540209338,
"last_sent_time": 1573990882,
"level": "1",
"nickname": "雲飄~沉",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 10939443
},
{
"age": 0,
"area": "",
"card": "",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1570347146,
"last_sent_time": 1596110081,
"level": "1",
"nickname": "思念",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 11291183
},
{
"age": 0,
"area": "",
"card": "廣西-腦袋長草",
"card_changeable": false,
"group_id": 538732374,
"join_time": 1499139520,
"last_sent_time": 1649989856,
"level": "3",
"nickname": "腦袋長草",
"role": "member",
"sex": "male",
"shut_up_timestamp": 0,
"title": "",
"title_expire_time": 0,
"unfriendly": false,
"user_id": 13978955
}......
這就非常恐怖了,user_id 就是用戶的 QQ 號了,自己解析一下,你可以比如。。。羣發。。。郵件,當然作者肯定是不希望我們做違法的事情的。
記得,羣發消息如果不合規,可能會出現風控,你需要打開 go-cqhttp 掛機幾天纔可以繼續使用。
參考文獻
-
https://github.com/Mrs4s/go-cqhttp
-
https://docs.go-cqhttp.org/
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/klGtFmDc65WpaXSMTNE_Yg