溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python QQBot庫(kù)的QQ聊天機(jī)器人

發(fā)布時(shí)間:2020-09-26 10:17:21 來源:腳本之家 閱讀:1219 作者:偷親 欄目:開發(fā)技術(shù)

本文實(shí)例為大家分享了Python QQBot庫(kù)的QQ聊天機(jī)器人的具體代碼,供大家參考,具體內(nèi)容如下

項(xiàng)目地址:https://github.com/pandolia/qqbot

1.安裝

pip install qqbot

2.主動(dòng)發(fā)出消息

from qqbot import _bot as bot

# 登錄QQ
bot.Login(['-q', '2816626661'])

'''
buddy 獲取指定名稱/備注的好友
group 獲取群
'''
buddy = bot.List('buddy', 'b.K')

# 判斷是佛存在這個(gè)好友
if buddy:
 b = buddy[0]
 # 發(fā)送消息
 bot.SendTo(b, 'nihao')

3.根據(jù)事件回復(fù)消息

首先我們需要在命令行啟動(dòng)qq

c:\Python3.6.4\virtual\env_qq\Scripts>activate

(env_qq) c:\Python3.6.4\virtual\env_qq\Scripts>qqbot -q 2816626661

Python QQBot庫(kù)的QQ聊天機(jī)器人

接下來編寫自動(dòng)回復(fù)的腳本

from qqbot import _bot as bot

def onQQMessage(bot, contact, member, content):
 if content == '-hello':
  bot.SendTo(contact, '你好,我是QQ機(jī)器人')
 elif content == '-stop':
  bot.SendTo(contact, 'QQ機(jī)器人已關(guān)閉')
  bot.Stop()

接下來將其放入 C:\用戶/xxxx/.qqbot-tmp/plugins/文件夾下

Python QQBot庫(kù)的QQ聊天機(jī)器人

保持之前的命令行窗口運(yùn)行,再重新啟動(dòng)一個(gè),執(zhí)行

qq plug recall

其中“recall”時(shí)剛才我們放進(jìn)去的py文件名稱

Python QQBot庫(kù)的QQ聊天機(jī)器人

測(cè)試可行

Python QQBot庫(kù)的QQ聊天機(jī)器人

參數(shù)說明:

bot     : QQBot 對(duì)象,提供 List/SendTo/Stop/Restart 等接口、
contact : QContact 對(duì)象,消息的發(fā)送者,具有 ctype/qq/uin/nick/mark/card/name 等屬性
member  : QContact 對(duì)象,僅當(dāng)本消息為 群消息或討論組消息 時(shí)有效,代表實(shí)際發(fā)消息的成員
content : str 對(duì)象,消息內(nèi)容

4.結(jié)合圖靈機(jī)器人

在這里注冊(cè)一個(gè)圖靈機(jī)器人賬號(hào)http://www.tuling123.com/

重新編寫剛才的腳本

from qqbot import _bot as bot
import requests
import json

def getReplay(message):
 url = 'http://openapi.tuling123.com/openapi/api/v2'
 data = {
  "perception": {
   "inputText": {
    "text": message
   },
  },
  "userInfo": {
   "apiKey": "你的APIkey",
   "userId": "你的uesrID"
  }
 }
 response = requests.post(url=url, json=data)
 return response.text


def onQQMessage(bot, contact, member, content):
 if content == '-hello':
  bot.SendTo(contact, '你好,我是QQ機(jī)器人')
 else:
  response = getReplay(content)
  bot.SendTo(contact, json.loads(response)['results'][0]['values']['text'])

接下來重新加載一下就可以了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI