QQBot:基於SmartQQ協議的QQ機器人的簡單使用

1、介紹

QQBot 是一個用 python 實現的、基於騰訊 SmartQQ 協議的簡單 QQ 機器人,可運行在 Linux 和 Windows 平臺下,全部代碼集成在一個 qqbot.py 文件中。python

QQBot 能夠實現:
監控、收集 QQ 消息
自動消息推送
聊天機器人
經過 QQ 遠程控制電腦、智能家電數據庫

2、安裝方法

可用 pip 安裝,安裝命令:session

pip install qqbot

也能夠直接下載 qqbot.py 運行,但需先安裝 requests 庫。spa

3、使用方法

1. 啓動 QQBot
在命令行輸入: qqbot ,或直接運行qqbot.py: python qqbot.py 。啓動過程當中會自動彈出二維碼圖片(Linux下需安裝有 gvfs ,不然須要手動打開圖片),須要用手機 QQ 客戶端掃碼並受權登陸。啓動成功後,會將本次登陸信息保存到本地文件中,下次啓動時,能夠輸入: qqbot qq號碼,或:python qqbot.py qq號碼 ,則會先嚐試從本地文件中恢復會話信息(不須要手動掃碼),只有恢復不成功或登陸信息已過時時纔會須要手動掃碼登陸。命令行

2. 操做 QQBot
QQ 機器人啓動後,用另一個 QQ 向本 QQ 發送消息便可操做 QQBot 。目前提供如下命令:code

1) 列出 好友/羣/討論組:
    -List buddy/group/discuss

2) 向 好友/羣/討論組 發送消息:
    -SendTo buddy/group/discuss message

3) 中止 QQBot :
    -Stop()

4、登陸 QQ 機器人

from qqbot import QQBot
import qqbot

# QQBot 就是一個qq登陸的類
myqqbot = QQBot()   #實例化一個qq實例
myqqbot.Login()  #進行登陸,執行這條命令,系統會彈出一個二維碼,咱們掃碼登陸
myqqbot.pollForever()

5、 QQ機器人使用

1.獲取好友列表和羣組列表對象

from qqbot import QQBot
import qqbot

myqqbot = QQBot()   #實例化一個qq實例
myqqbot.Login('385395438')  # 掃碼登陸事後會在本地保存一個session信息,加上QQ號便可調用本地session進行登陸
# 1.使用腳原本查看好友和羣
user_list = myqqbot.List("buddy") # 得到的是全部的好友
for user in user_list:
    print(user)
group_list = myqqbot.List("group") # 得到的是全部的羣組
for group in group_list:
    print(group)

運行:
4262139-a682bd21b9f5f799.png
clipboard.png圖片

羣組列表

2.給某一個好友發送信息ip

# 2.給某一個好友發送信息
user = myqqbot.List("buddy", "LOL")[0]
myqqbot.SendTo(user, "LOL, 在嗎")

運行:
給單個好友發送QQ消息資源

3.給羣組發送消息

# 3.給某一個羣組發送信息
group = myqqbot.List("group", "谷歌中國")[0]
myqqbot.SendTo(group, "你們好,這是君惜的機器人")
# group_list = myqqbot.List("group")
# for group in group_list:
#    myqqbot.SendTo(group, "你們好,這是君惜的機器人")

運行:
給QQ羣組發送消息

4.退出QQ

# 4.退出QQ
myqqbot.Stop()   # 退出qq

5.自動回覆

# 5.自動回覆
# 自動回覆部分咱們須要調用一個監聽的方法


@qqbot.QQBotSlot
def onQQMessage(bot, contact, member, content):
    """
    :param bot:  qq對象
    :param contact: 發信人
    :param member: 發消息的對象,只對羣組有做用
    :param content: 內容
    """
    if content == "-hello":
        bot.SendTo(contact, "你也好啊, /齜牙")
    elif "@ME" in content and "簽到" in content:
        """
            當知足此條件就
            判斷該成員是否已經簽到過 調用數據庫查看用戶的信息 判斷條件 簽到時間
            進行簽到
                簽到時間 當前時間
                簽到次數 +1
                簽到積分 +2
            你已經簽到多少天,積分多少
        """
        bot.SendTo(contact, "/菜刀 咋地了?")
    elif "@ME" in content and "兌換" in content:
        """
            返回資源列表
        """
        bot.SendTo(contact,"/菜刀 咋地了?")

if __name__ == "__main__":
    qqbot.RunBot()

運行:
QQ自動回覆

相關文章
相關標籤/搜索