QQBot 项目完全指南:打造智能QQ聊天机器人

【免费下载链接】qqbot QQBot: A conversation robot base on Tencent's SmartQQ 【免费下载链接】qqbot 项目地址: https://gitcode.com/gh_mirrors/qq/qqbot

QQBot 是一个基于腾讯 SmartQQ 协议的 Python QQ 机器人,可以在 Linux、Windows 和 Mac OSX 平台下运行。通过扩展插件,可以实现消息监控、自动推送、聊天机器人等多种功能。

项目介绍与安装

QQBot 支持 Python 2.7/3.4+ 环境,可以通过 pip 快速安装:

pip install qqbot

或者下载源码后进入项目目录运行:

pip install .

快速启动与使用

启动QQBot

在命令行中输入以下命令启动QQBot:

qqbot

首次启动时会自动弹出二维码图片,需要用手机QQ扫码授权登录。登录成功后,会将登录信息保存到本地,下次启动时可使用:

qqbot -q QQ号码

基本操作命令

QQBot启动后,在另一个控制台窗口可以使用qq命令进行操作:

# 列出所有好友
qq list buddy

# 给好友发送消息
qq send buddy 好友名称 消息内容

# 给群组发送消息  
qq send group 群名称 消息内容

插件系统与功能扩展

QQBot的核心功能通过插件系统实现,可以编写自定义插件来扩展功能。

基础消息响应插件

创建一个简单的聊天机器人插件:

# -*- coding: utf-8 -*-
def onQQMessage(bot, contact, member, content):
    if content == '-hello':
        bot.SendTo(contact, '你好,我是QQ机器人')
    elif content == '-stop':
        bot.SendTo(contact, 'QQ机器人已关闭')
        bot.Stop()

将代码保存为sample.py并放到插件目录,然后加载插件:

qq plug sample

定时任务插件

使用装饰器实现定时消息推送:

from qqbot import qqbotsched

@qqbotsched(hour='11,17', minute='55')
def mytask(bot):
    gl = bot.List('group', '456班')
    if gl is not None:
        for group in gl:
            bot.SendTo(group, '同志们:开饭啦啦啦啦啦啦!!!')

核心API接口

QQBot对象提供了丰富的API接口:

联系人查询接口

# 查询好友列表
buddies = bot.List('buddy')

# 查询特定群组
groups = bot.List('group', '群名称')

# 查询群成员
group = bot.List('group', '群名称')[0]
members = bot.List(group)

消息发送接口

# 向好友发送消息
bot.SendTo(buddy, '你好!')

# 向群组发送消息
bot.SendTo(group, '大家好!')

配置管理与高级功能

配置文件设置

QQBot的配置文件位于~/.qqbot-tmp/v2.x.conf,可以配置:

  • 服务器端口号
  • 邮箱接收二维码
  • 自动重启设置
  • 插件加载配置

二维码显示模式

支持多种二维码显示方式:

  • GUI模式:自动弹出图片
  • 邮箱模式:发送到指定邮箱
  • 服务器模式:HTTP服务器显示
  • 文本模式:命令行文本显示

联系人列表展示

程序运行流程

QQBot的运行流程包含多个回调函数节点:

程序运行流程图

实际应用案例

监控机器人

def onQQMessage(bot, contact, member, content):
    if '关键词' in content:
        # 记录消息日志
        log_message(contact, member, content)
        # 发送通知
        bot.SendTo(admin, f'收到关键词消息: {content}')

自动回复机器人

responses = {
    '天气': '今天天气晴朗,25℃',
    '时间': f'现在是{datetime.now().strftime("%H:%M")}',
    '帮助': '我可以回答天气、时间等问题'
}

def onQQMessage(bot, contact, member, content):
    if content in responses:
        bot.SendTo(contact, responses[content])

注意事项与限制

协议限制

由于SmartQQ协议的限制,QQBot存在以下限制:

  • 登录cookie 1-2天后失效,需要重新扫码
  • 无法发送图片、文件等多媒体消息
  • 无法获取联系人的实际QQ号码
  • 无法在群内真正@其他成员

开发注意事项

  • 回调函数必须使用正确的函数名和参数
  • 避免在插件中执行耗时操作
  • 不要在QQBot进程内调用自身的qq命令
  • 定时任务函数运行时间应尽量短

插件生态系统

QQBot拥有丰富的插件生态:

插件名称 功能描述 默认加载
sampleslots 回调函数示例
schedrestart 定时重启功能
miniirc IRC服务器功能
passwordlogin 用户名密码登录

技术实现细节

QQBot基于腾讯SmartQQ协议实现,参考了多个开源项目,提供了完整的消息收发、联系人管理、插件扩展等功能体系。

通过合理的配置和插件开发,可以构建出功能丰富的QQ机器人应用,满足各种自动化需求。

【免费下载链接】qqbot QQBot: A conversation robot base on Tencent's SmartQQ 【免费下载链接】qqbot 项目地址: https://gitcode.com/gh_mirrors/qq/qqbot

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐