好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 超詳細,教你用python語言實現QQ機器人制作教程

超詳細,教你用python語言實現QQ機器人制作教程

熱門標簽:ai電話機器人哪里好 外呼并發線路 西藏房產智能外呼系統要多少錢 地圖標注審核表 湛江智能外呼系統廠家 長沙高頻外呼系統原理是什么 宿遷星美防封電銷卡 百度地圖標注沒有了 ai電銷機器人源碼

前期準備

1、機器人框架的下載和配置

首先需要一個qq機器人框架,我使用的是基于mirai 以及 MiraiGo 開發的go-cqhttp(里面有開發文檔)。

框架下載地址

Windows下32位文件為 go-cqhttp-v*-windows-386.zip

Windows下64位文件為 go-cqhttp-v*-windows-amd64.zip

Windows下arm用(如使用高通CPU的筆記本)文件為 go-cqhttp-v*-windows-arm.zip

選擇合適的壓縮包下載,然后解壓。

雙擊exe文件,出現如下窗口:

輸入1后回車,然后關閉,此時已經在原來的文件目錄下生成了配置文件config.yml。

雙擊config.yml,輸入QQ號和密碼(建議使用無登錄保護的qq,否則可能出現滑塊驗證等問題)。

再轉到最后兩行,把注釋去掉。(很重要)

可以參考我的配置:

# go-cqhttp 默認配置文件

account: # 賬號相關
  uin: 1233456 # QQ賬號
  password: '123456' # 密碼為空時使用掃碼登錄
  encrypt: false  # 是否開啟密碼加密
  status: 0      # 在線狀態 請參考 https://docs.go-cqhttp.org/guide/config.html#在線狀態
  relogin: # 重連設置
  delay: 3   # 首次重連延遲, 單位秒
  interval: 3   # 重連間隔
  max-times: 0  # 最大重連次數, 0為無限制

  # 是否使用服務器下發的新地址進行重連
  # 注意, 此設置可能導致在海外服務器上連接情況更差
  use-sso-address: true

heartbeat:
  # 心跳頻率, 單位秒
  # -1 為關閉心跳
  interval: 5

message:
  # 上報數據類型
  # 可選: string,array
  post-format: string
  # 是否忽略無效的CQ碼, 如果為假將原樣發送
  ignore-invalid-cqcode: false
  # 是否強制分片發送消息
  # 分片發送將會帶來更快的速度
  # 但是兼容性會有些問題
  force-fragment: false
  # 是否將url分片發送
  fix-url: false
  # 下載圖片等請求網絡代理
  proxy-rewrite: ''
  # 是否上報自身消息
  report-self-message: false
  # 移除服務端的Reply附帶的At
  remove-reply-at: false
  # 為Reply附加更多信息
  extra-reply-data: false
  # 跳過 Mime 掃描, 忽略錯誤數據
  skip-mime-scan: false

output:
  # 日志等級 trace,debug,info,warn,error
  log-level: warn
  # 日志時效 單位天. 超過這個時間之前的日志將會被自動刪除. 設置為 0 表示永久保留.
  log-aging: 15
  # 是否在每次啟動時強制創建全新的文件儲存日志. 為 false 的情況下將會在上次啟動時創建的日志文件續寫
  log-force-new: true
  # 是否啟用 DEBUG
  debug: false # 開啟調試模式

# 默認中間件錨點
default-middlewares: default
  # 訪問密鑰, 強烈推薦在公網的服務器設置
  access-token: ''
  # 事件過濾器文件目錄
  filter: ''
  # API限速設置
  # 該設置為全局生效
  # 原 cqhttp 雖然啟用了 rate_limit 后綴, 但是基本沒插件適配
  # 目前該限速設置為令牌桶算法, 請參考:
  # https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin
  rate-limit:
    enabled: false # 是否啟用限速
    frequency: 1  # 令牌回復頻率, 單位秒
    bucket: 1     # 令牌桶大小

database: # 數據庫相關設置
  leveldb:
    # 是否啟用內置leveldb數據庫
    # 啟用將會增加10-20MB的內存占用和一定的磁盤空間
    # 關閉將無法使用 撤回 回復 get_msg 等上下文相關功能
    enable: true

# 連接服務列表
servers:
  # 添加方式,同一連接方式可添加多個,具體配置說明請查看文檔
  #- http: # http 通信
  #- ws:   # 正向 Websocket
  #- ws-reverse: # 反向 Websocket
  #- pprof: #性能分析服務器
  # HTTP 通信設置
  - http:
      # 服務端監聽地址
      host: 127.0.0.1
      # 服務端監聽端口
      port: 5700
      # 反向HTTP超時時間, 單位秒
      # 最小值為5,小于5將會忽略本項設置
      timeout: 5
      # 長輪詢拓展
      long-polling:
        # 是否開啟
        enabled: false
        # 消息隊列大小,0 表示不限制隊列大小,謹慎使用
        max-queue-size: 2000
      middlewares:
        : *default # 引用默認中間件
      # 反向HTTP POST地址列表
      post:
      #- url: '' # 地址
      #  secret: ''           # 密鑰
      - url: 127.0.0.1:5701 # 地址
      secret: ''          # 密鑰

配置完后直接雙擊exe文件。等待一段時間出現如下窗口:

補充:窗口可能會一直出現如下警告(這個不需要管,是正常現象):

窗口會一直顯示接受到信息,不要關閉。

2、python的配置和安裝

要實現自動回復功能的機器人需要借助一種語言,我選擇的是python。

所以需要電腦配置好python環境和下載編譯器pycharm。可以直接上網找相關的安裝和配置教程,這里就不展開說了。

具體實現

1、發送信息

這包括發送私聊信息和發送群聊信息。下面的函數已經寫好了,直接調用函數傳入參數就行了。

import socket
def send_msg(resp_dict):
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    ip = '127.0.0.1'
    client.connect((ip, 5700))
    msg_type = resp_dict['msg_type']  # 回復類型(群聊/私聊)
    number = resp_dict['number']  # 回復賬號(群號/好友號)
    msg = resp_dict['msg']  # 要回復的消息
    # 將字符中的特殊字符進行url編碼
    msg = msg.replace(" ", "%20")
    msg = msg.replace("\n", "%0a")
    if msg_type == 'group':
        payload = "GET /send_group_msg?group_id=" + str(
            number) + "message=" + msg + " HTTP/1.1\r\nHost:" + ip + ":5700\r\nConnection: close\r\n\r\n"
    elif msg_type == 'private':
        payload = "GET /send_private_msg?user_id=" + str(
            number) + "message=" + msg + " HTTP/1.1\r\nHost:" + ip + ":5700\r\nConnection: close\r\n\r\n"
    print("發送" + payload)
    client.send(payload.encode("utf-8"))
    client.close()
    return 0

(1)比如發送私聊信息(QQ用接收者的):

resp_dict={'msg_type':'private','number':QQ號,'msg':'你好'}
send_msg(resp_dict)

(2)發送群聊信息(群號自己用一個):

send_msg({'msg_type': 'group', 'number': QQ群號, 'msg': '大家好'})

(3)當然不止發送文本信息

還可以發表情、圖片、音樂等。還可以艾特某人。

例如:發表情

send_msg({'msg_type': 'group', 'number': QQ群號, 'msg': '[CQ:shake]'})

發窗口抖動

send_msg({'msg_type': 'group', 'number': QQ群號, 'msg': '[CQ:shake]'})

還有很多CQcode可以去官方文檔查看:http://docs.go-cqhttp.org/cqcode/

2、獲取群成員列表

import requests
def get_group(id):
    response = requests.post('http://127.0.0.1:5700/get_group_member_list?group_id='+str(id)).json()
    for i in response['data']:
        if(i['card']!=''):
            print(i['card']+str(i['user_id']))
        else:
            print(i['nickname']+str(i['user_id']))

直接調用即可(群號隨便用一個)

get_group(QQ群號)

會打印出所有群成員的群昵稱(未編輯群昵稱的打印QQ昵稱)和QQ號。

3、接收上報的事件

下面這個代碼命名為receive.py,之后方便調用。

這個返回的是事件的上報信息,包括接收到的信息、加好友請求等等。

import socket
import json
ListenSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ListenSocket.bind(('127.0.0.1', 5701))
ListenSocket.listen(100)
HttpResponseHeader = '''HTTP/1.1 200 OK
Content-Type: text/html
'''
def request_to_json(msg):
    for i in range(len(msg)):
        if msg[i]=="{" and msg[-1]=="\n":
            return json.loads(msg[i:])
    return None
#需要循環執行,返回值為json格式
def rev_msg():# json or None
    Client, Address = ListenSocket.accept()
    Request = Client.recv(1024).decode(encoding='utf-8')
    rev_json=request_to_json(Request)
    Client.sendall((HttpResponseHeader).encode(encoding='utf-8'))
    Client.close()
    return rev_json

4、實現簡單的自動回復

需要寫一個whil循環一直接收返回的rev,然后根據字段里面的信息做出回應。

下面的代碼需要改一處地方,改為你機器人的QQ號。

from receive import rev_msg
import socket
import requests
import random
while True:
    try:
        rev = rev_msg()
        print(rev)
        if rev == None:
            continue
    except:
        continue
    if rev["post_type"] == "message":
        #print(rev) #需要功能自己DIY
        if rev["message_type"] == "private": #私聊
            if rev['raw_message']=='在嗎':
                qq = rev['sender']['user_id']
                send_msg({'msg_type':'private','number':qq,'msg':'我在'})
        elif rev["message_type"] == "group": #群聊
            group = rev['group_id']
            if "[CQ:at,qq=機器人的QQ號]" in rev["raw_message"]:
                if rev['raw_message'].split(' ')[1]=='在嗎':
                    qq=rev['sender']['user_id']
                    send_msg({'msg_type':'group','number':group,'msg':'[CQ:poke,qq={}]'.format(qq)})
        else:
            continue
    else:  # rev["post_type"]=="meta_event":
        continue

上述代碼實現的是,當私聊對方發送在嗎時回復我在;

當群聊有人艾特并發送在嗎時會戳一戳對方。

大家也可以去官方文檔查看所有的事件和API,實現各種各樣的功能。

下一篇文章實現更多功能 教你使用python搭建一個QQ機器人實現叫起床服務

包括定時發送消息、智能聊天、天氣、星座運勢等等。

以上就是超詳細的教你用python語言實現QQ機器人制作教程的詳細內容,更多關于python語言實現QQ機器人制作教程的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Python qqbot 實現qq機器人的示例代碼
  • 使用Python的Tornado框架實現一個簡單的WebQQ機器人
  • 采用python實現簡單QQ單用戶機器人的方法
  • Python實現聊天機器人的示例代碼
  • python制作機器人的實現方法
  • 不到20行代碼用Python做一個智能聊天機器人

標簽:林芝 盤錦 寧夏 普洱 海南 南平 漯河 大同

巨人網絡通訊聲明:本文標題《超詳細,教你用python語言實現QQ機器人制作教程》,本文關鍵詞  超,詳細,教,你用,python,語言,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《超詳細,教你用python語言實現QQ機器人制作教程》相關的同類信息!
  • 本頁收集關于超詳細,教你用python語言實現QQ機器人制作教程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 免费啪视频| 免费看国产曰批40分钟视频网站99 | 屁股撅好把腚眼子扒开视频| 99国产精品视频免费观看一公开 | 美女被扒开衣服强任双乳视频 | 师徒共侍一夫胯下翘臀| 亚洲7777| 波多野结衣欲乱上班| 国语自产精品视频在线第| 国产–第1页–屁屁影院| 18young第一次| 操你拉| 久久精品无码一区二区三区毛片| 三及片免费观看| 91播放| 黑人日皮| 三级4级做A爰60分钟视频| 师尊受被绑着上媚药调教| 调教沦陷丝袜娇妻| 成年人在线免费观看视频| 又大又硬又黄的免费视频| 国产A级毛片久久久久久| 国产视频福利一区| 龚玥菲新肉铺3d在线播放| 免费高清a毛片| 女人婬乱A片毛片下载| 午夜亚洲精品一区电影| 中文字幕丰满乱码| 小辣椒h1尺寸| 一级做a爰片毛片???| 受脐橙攻做到起不来弱攻| 50岁老熟女一级毛片| 秋霞国产精品| 我在幕后发系统| 男女在床上的动作视频| 电影免费观看网站| 四川女人高潮一级毛片| 亚洲男人的天堂视频| 亚洲午夜AV久久乱码| 中文字幕乱码中文字幕乱码| 国产欧美日韩视频免费61794|