python操作QQ

1.介紹

想通過python控制qq消息的定時自動發送,目前發現通過酷q社區大神開發的酷QhttpAPI 可以完美的實現各種語言基於web對qq調用。

2.工具和環境

工具:酷Q--我用的圖靈版,httpAPIcdk下載以及api描述

環境: python3和windows

3.操作過程

安裝酷q打開開發者模式,

把cdk應用文件放到app目錄下,並啓動該應用。

查閱api文檔,通過python的requests庫調用api即可。

下面是我實現給個人和定時所有羣發送消息的代碼

import requests
import schedule
#localIp = '192.168.0.106'
localIp = 'localhost'
def SendPrivateMsg(qq,msg,PlainText=False):
    funcname = 'send_private_msg'
    url = "http://" + localIp + ":5700/" + funcname
    params = {
        'user_id': qq,
        'message': msg,
        'auto_escape':PlainText
    }
    req = requests.get(url=url,params=params)
    print(req.status_code)
#酷Q表情CQ碼獲取方法:1,百度 2,主動發送給qq,從日誌中提取
def GetCQFaceId(face):
    FaceDict = {
        '拜拜':39,
        '嚇':110
    }
    return FaceDict[face]
def GetGroupList():
    url = "http://"+localIp+":5700/get_group_list"
    req = requests.get(url=url)
    print(req.status_code)
    resDict = req.json()
    #print(resDict)
    grouplists = [];
    for val in resDict['data']:
        print("group id is : {},group name is :{}".format(val['group_id'],val['group_name']))
        grouplists.append(val['group_id'])
    return grouplists
def SendGroupMsg(groupid,msg,PlainText=False):
    funcname = 'send_group_msg'
    url = "http://"+localIp+":5700/"+funcname
    params = {
        'group_id': groupid,
        'message': msg,
        'auto_escape': PlainText
    }
    req = requests.get(url=url,params=params)
    print(req.content)
    print('send group [{}] : {}'.format(groupid,req.status_code))
def SendGroupsMsg():
    groupslists = GetGroupList()
    if len(groupslists):
        for val in groupslists:
            r = SendGroupMsg(val, "[CQ:face,id={}]".format(GetCQFaceId("拜拜")))
            print(r)
        pass
    else:
        print("no group")
    pass
if __name__ == '__main__':
    #SendPrivateMsg(1220462431,"[CQ:face,id={}]".format(GetCQFaceId("拜拜")))
    schedule.every(10).seconds.do(SendGroupsMsg)
    while True:
        schedule.run_pending()
        import time
        time.sleep(1)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章