基于Python來(lái)開(kāi)發(fā)一個(gè)QQ機(jī)器人,原來(lái)這么簡(jiǎn)單!
本篇教大家如何用Python來(lái)實(shí)現(xiàn)QQ機(jī)器人,如有不足歡迎在評(píng)論方指出!
簡(jiǎn)單介紹

安裝方法
可在 Python個(gè)版本下使用,用 pip 安裝:
pip install qqbot

使用方法
一、啟動(dòng) QQBot


二、操作 QQBot
QQBot 啟動(dòng)后,在另一個(gè)控制臺(tái)窗口使用 qq 命令來(lái)操作 QQBot ,目前提供以下命令:


list 命令提供強(qiáng)大的聯(lián)系人查詢功能,例如:


如:
qq list group 機(jī)器人測(cè)試

例如:


實(shí)現(xiàn)我們自己的 QQ 機(jī)器人
要實(shí)現(xiàn)咱們自己的QQ 機(jī)器人超級(jí)簡(jiǎn)單,我們只要注冊(cè)一個(gè)自己的消息響應(yīng)函數(shù)。代碼示范:





假如按插件的形式加載 sample.py ,那么這個(gè)文件的內(nèi)容可以簡(jiǎn)化成:


QQBot 對(duì)象的接口

(1) bot.List(tinfo, [cinfo]) --> [contact0, contact1, ..., ]/[]/None

示例:

List 接口的***個(gè)參數(shù) tinfo 也可以是一個(gè) ctype 等于 'group'/'discuss' 的 QContact 對(duì)象,此時(shí),返回的是該 群/討論組 的成員列表,如以下第二句和第三句分別返回 群“456班” 的成員列表和該群中名片為 “jack” 的成員列表:

注意第三句不允許是 bot.List(g, card='jack') 的格式。
List 接口的內(nèi)部執(zhí)行順序:

List 接口返回值的含義:

2、 bot.SendTo(contact, content) --> '向 xx 發(fā)消息成功'/'錯(cuò)誤:...'

(3) bot.GroupXXX(group, membs[, arg]) --> ['成功:...', '成功:...', '錯(cuò)誤:...']

(1) bot.List(tinfo, [cinfo]) --> [contact0, contact1, ..., ]/[]/None

示例:



注意上面第三句不允許是 bot.List(g, card='jack') 的格式。
List 接口的內(nèi)部執(zhí)行順序:

List 接口返回值的含義:

(2) bot.SendTo(contact, content) --> '向 xx 發(fā)消息成功'/'錯(cuò)誤:...'

(3) bot.GroupXXX(group, membs[, arg]) --> ['成功:...', '成功:...', '錯(cuò)誤:...']


注冊(cè)回調(diào)函數(shù)、被他人 @ 的通知、定制定時(shí)任務(wù)
注冊(cè)回調(diào)函數(shù)









定制定時(shí)任務(wù)
從 2.1.13 起, qqbot 中提供一個(gè)功能強(qiáng)大的函數(shù)裝飾器 -- QQBotSched 來(lái)定制定時(shí)任務(wù),示例代碼:




二維碼管理器、QQBot 配置及命令行參數(shù)
二維碼的顯示模式


配置文件的使用方法


郵箱模式的配置( mailAccount 和 mailAuthCode )

服務(wù)器模式的配置( httpServerIP 和 httpServerPort )

自動(dòng)登錄的 QQ 號(hào)碼( qq )

掉線后自動(dòng)重啟( restartOnOffline )

聯(lián)系人列表更新的間歇時(shí)間( fetchInterval )

聯(lián)系人列表獲取完成后再啟動(dòng)( startAfterFetch )

QQBot-term 服務(wù)器端口號(hào)( termServerPort )

如:


文本模式顯示二維碼(cmdQrcode)

調(diào)試模式( debug )
若 debug 項(xiàng)設(shè)置為 True ,則運(yùn)行過(guò)程中會(huì)打印調(diào)試信息。
需要被監(jiān)視的聯(lián)系人列表( monitorTables )

插件的配置( pluginPath 和 plugins )

命令行參數(shù)及配置的優(yōu)先級(jí)


其中:根配置 是固定的,用戶無(wú)法修改; 默認(rèn)配置 和 用戶配置 可由用戶在 v2.1.conf 文件中進(jìn)行修改;***,還可以在 命令行參數(shù) 中輸入配置。
smartqq 協(xié)議支持及限制


因 smartqq 協(xié)議的限制,以下問(wèn)題無(wú)解決辦法

參考資料
