「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中下載編譯好了的包也行

開始使用

  1. 源碼的直接編譯即可,然後運行,首次運行後,會在當前運行目錄下生成一個 config.yml。

  2. 打開 config.yml,寫入你的 uin,也就是 QQ 號(數字類型),然後輸入您的 password(字符串類型),需要加英文單引號,然後保存當前文件。

  3. 再次運行執行文件,會讓你選擇通信方式,這時我們選 0 -> 回車

  4. 首次登錄需要用驗證,就選 1 向手機發送短信驗證碼,之後輸入驗證碼 -> 回車

  5. 此時就已經登錄成功,並開始監聽 5700 端口

  6. 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 掛機幾天纔可以繼續使用。

參考文獻

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/klGtFmDc65WpaXSMTNE_Yg