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)