目錄
- 前言
- 具體實作
- 1、定時發送資訊
- 2、讓機器人陪女朋友聊天
- 3、呼叫一些有趣的介面
- 第三篇文章實作更多功能
- 寫在最后
前言
第三篇文章已經寫完了,小伙伴們支持一下,上熱榜了直接把所有代碼和框架打包給大家,
第三篇文章地址:搭建一個多功能機器人詳細教程
上一篇文章介紹了怎么配置機器人框架,并且實作了一些簡單的功能,(發送私聊或者群聊資訊、接收上報的事件、簡單的自動回復等等)
這次為了讓QQ機器人更加智能,呼叫了一些實用的介面,通過自己搭建的機器人實作定時叫女朋友起床、和女朋友聊天等功能,

如上圖所示,我的機器人每天都會準時叫女朋友起床;并且在我忙的時候然而女朋友無聊的時候可以陪她聊一會天,
具體實作
以下實作的功能都需要機器人已經配置完成,并且已經寫好了我上一篇文章的一些函式,
上一篇文章地址—>>>QQ機器人制作教程,超詳細!
1、定時發送資訊
要實作這個功能是不難的,只需要引入時間這個變數就可以了,具體代碼如下(QQ號、里面的時間和msg自己改):
import datetime
import time
while True:
qq=女朋友qq號
now = datetime.datetime.now()
if(now.hour==0 and now.minute==0):
send_msg({'msg_type': 'private', 'number': qq, 'msg': '晚安!'})
send_msg({'msg_type': 'private', 'number': qq, 'msg':'[CQ:poke,qq={}]'.format(qq)})
time.sleep(60)
continue
if (now.hour == 9 and now.minute == 30):
send_msg({'msg_type': 'private', 'number': qq, 'msg': '起床了'})
send_msg({'msg_type': 'private', 'number': qq, 'msg': '[CQ:poke,qq={}]'.format(qq)})
time.sleep(60)
continue
else:
continue
上述代碼實作的是:每天零點給女朋友發晚安并戳她一下;每天早上九點半發起床了并戳她一下,這些你自己可以改進,可以發表情包,甚至可以把代碼里的’time.sleep(60)'洗掉,那樣就會在一分鐘之內連續發資訊轟炸她,強烈建議使用!
2、讓機器人陪女朋友聊天
要實作這個功能需要借助API介面了,目前我找到的實用智能回復API介面地址:http://api.qingyunke.com/

這個介面不僅僅可以聊天,還有一些實用的功能,如下圖所示:

要實作以上功能都需要獲取女朋友給你發的資訊,這個在上一篇文章已經寫了,獲取到后直接呼叫介面回傳結果,再發送給她即可,
下面直接上代碼:
from receive import rev_msg
import requests
import json
import urllib.request
from urllib.parse import quote
import string
while True:
try:
rev = rev_msg()
print(rev)
if rev == None:
continue
except:
continue
if rev["post_type"] == "message":
if rev["message_type"] == "private": #私聊
message=rev['raw_message']
if 'face' in message:
qq = rev['sender']['user_id']
img = rev['raw_message']
send_msg({'msg_type': 'private', 'number': qq, 'msg': img})
elif 'image' in message:
qq = rev['sender']['user_id']
img=rev['raw_message']
send_msg({'msg_type': 'private', 'number': qq, 'msg': img})
elif '戳一戳' in message:
qq = rev['sender']['user_id']
send_msg({'msg_type': 'private', 'number': qq, 'msg': '別戳了'})
else:
url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg=' + message
s = quote(url, safe=string.printable)
try:
with urllib.request.urlopen(s) as response:
html = response.read()
# 將獲取到的回應內容進行解碼,并將json字串內容轉換為python字典格式
# 通過下標取到機器人回復的內容
qq = rev['sender']['user_id']
# print(eval(html.decode("utf-8"))["content"])
send_msg({'msg_type': 'private', 'number': qq,
'msg': eval(html.decode("utf-8"))["content"].replace('{br}', '\n')})
# print(eval(html.decode("utf-8"))["content"])
except:
qq = rev['sender']['user_id']
send_msg({'msg_type': 'private', 'number': qq, 'msg': '重新連接中,,,'})
else: # rev["post_type"]=="meta_event":
continue
上述代碼中,先判斷"post_type"的型別,如果為message表明有人給機器人發訊息了;再看"message_type",如果為private表明這是私聊資訊,當然如果為group表明這是群聊資訊;然后我們獲取資訊message=rev[‘raw_message’],拿到這個資訊之后就可以設定關鍵詞進行自己回復了,
我在代碼中設定的’face’ in message和’image’ in message是為了獲取表情和圖片,對方發送什么就回傳什么,因為那個智能回復介面識別不了表情和圖片,



3、呼叫一些有趣的介面
在聚合資料找了一些好玩的介面,有很多都是免費的,

本文以星座運勢為例子教大家怎么實作,申請使用一個api會給你請求key,需要先實名認證,
申請一個介面后點擊測驗,輸入兩個請求引數即可回傳結果,


python代碼如下(需要使用自己的api請求key):
def horoscope(constellation):
# 請求地址
url = "http://web.juhe.cn/constellation/getAll?" + 'consName={}&type=today&key=自己的請求key'.format(constellation)
# 發送get請求
r = requests.get(url)
# 獲取回傳的json資料
result = r.json()['summary']
print(result)
return result
horoscope('摩羯座')
再把它整合到機器人程式里面:
if '星座運勢' in message:
try:
constellation = message.split(' ')[1]
text = horoscope(constellation)
qq = rev['sender']['user_id']
send_msg({'msg_type': 'private', 'number': qq, 'msg': text})
except:
qq = rev['sender']['user_id']
send_msg({'msg_type': 'private', 'number': qq, 'msg': '請在星座前面加上空格,'})

第三篇文章實作更多功能
第三篇文章實作了爆照、生日書、獲取歌詞、分享音樂等功能,期待大家的一鍵三連!!
小伙伴們支持一下,上熱榜了直接把所有代碼和框架打包給大家,
第三篇文章地址:搭建一個多功能機器人詳細教程
寫在最后
第一篇文章:QQ機器人制作基礎教程,超詳細!
制作不易,期待大家的一鍵三連!
有什么問題歡迎在評論區交流,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/296647.html
標籤:其他
