QQ消息

QQ机器人的实现基于NoneBot
NoneBot是一个基于酷Q的python异步QQ机器人框架
酷Q实现了一个无头QQ客户端
所有事件(收到消息、通知等)会通过酷Q的HTTP API插件
NoneBot仅支持python3.6.1+

安装NoneBot pip install nonebot(只能在windows上运行)
在论坛找到最新的酷Q Air https://cqp.cc/b/news
下载酷Q Air图灵版
安装cool-httP-api
https://github.com/richardchien/cool-http-air/releases
下载io.github.richardchien.coolqhttpapi.cpk
放到酷Q Air的app文件夹里
注意如果酷Q启动时报错说插件加载失败,或者系统弹窗提示缺少DLL文件
请参考:https://cqhttp.cc/docs/4.12/#/

QQ机器人实现代码
运行CQA.exe(登陆最好使用小号,防止大号被封)
登录后会有一个悬浮框且在工具栏会有图标
在应用管理中开启HTTP API
配置HTTP API
在data/app/io.github.richardchien.coolqhttpapi/config/下可以看到。一个以登录QQ号命名的.json文件
打开文件找到下面三个配置,修改为
ws_reverse_api_url:‘ws://127.0.0.1:8080/ws/api/’
ws_reverse_event_url:‘ws://127.0.0.1:8080/ws/event/’
use_ws_reverse:true

编写一个主启动程序,保存为main.py文件
import nonebot
if name==‘main’:
nonebot.init()
nonebot.load_builtin_plugins()
nonebot.run(host=‘127.0.0.1’,port=8080)
运行该文件并启动酷Q机器人,python确定已启动

用另一个账号给机器账号发一条指令:/echo 你好,时间 机器人会回一段相同的话:你好,世界

新建一个config.py文件,放在和main.py同一个位置
from nonebot.default_cOnfig import *
SUPERUSERS={123123123} #括号里填账号
创建一个MyBot文件夹,在里面创建一个plugins文件夹,在里面创建一个bot.py文件

修改main.py文件
import nonebot
import config
from os import path
if ‘name’==‘main’:
nonebot.init(config)
nonebot.load_plugins(
path.join(path.dirname(file),‘MyBot’,‘plugins’)
‘MyBot.plugins’
)
nonebot.run(host=‘127.0.0.1’,port=8080)

找到plugins文件夹里的bot.py文件,加入以下内容
import nonebot
bot=nonebot.get_bot()
@bot.on_message(‘private’) #收到私聊消息后
async def_(ctx):
print(ctx)

@bot.on_message(‘group’) #收到群聊消息后
async def_(ctx):
print(ctx)

处理加群信息
from nonebot import on_request,RequestSession
#将函数注册为群请求处理器
@on_request(‘group’)
async def_(session:RequestSession):
#验证消息是否符合要求
if session.ctx[‘comment’]==‘暗号’:
#验证消息正确,同意入群
await session.approve()
return
#验证消息错误,拒绝入群
await session.reject(‘请说暗号’)

接受新人入群消息
from nonebot import on_notice,NoticeSession
#将函数注册为群成员增加处理器
@on_notice(‘group_increase’)
async def_(session:NoticeSession):
print(‘有新人来了’)

发送私聊消息
@bot.on_message(‘private’)
async def_(ctx):
msg=ctx[‘raw_message’]
user_id=ctx[‘user_id’]
await bot.send_private_msg(user_id=userQQ,message=msg)
#bot.send_private_msg(user_id=对方rQQ,message=具体消息)

发送群聊消息
@bot.on_message(‘group’)
async def_(ctx):
user_id=ctx[‘user_id’]
if user_id==233333
group_id=cxt[‘group_id’]
await bot.send_group_msg(group_id=groupQQ,message=‘WHO’)
#bot.send_group_msg(group_id=群号,message=具体消息)

欢迎新成员(对于有session的,可以直接session.send())
@on_notice(‘group_increase’)
async def_(session:NoticeSession):
await session.send(‘Welcome’)

发布群公告
bot._send_group_notice(group_id=群号,title=群公告标题,content=群公告内容)

群组设置禁言
@bot.on_message(‘group’)
async def_(ctx):
msg=ctx[‘raw_message’]
if ‘xxx’ in msg:
group_id=ctx[‘group_id’]
user_id=ctx[‘user_id’]
await bot.set_group_ban(group_id=groupQQ,user_id=userQQ,duration=15*60)
#bot.set_group_ban(group_id=群号,user_id=QQ号,duration=以秒为单位的禁言时间)

群组踢人
bot.set_group_kick(group_id=groupQQ,user_id=userQQ,reject_add_request=True)
#bot.set_group_kick(group_id=群号,user_id=要踢的QQ号)
#reject_add_request=是否不允许再加群

学习链接:https://www.bilibili.com/video/BV197411f7Rp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python发送QQ消息,可以使用qqbot库。qqbot是一个基于QQ协议的机器人框架,可以通过它来进行QQ消息的发送和接收。 首先,需要安装qqbot库。可以通过在命令行中输入以下命令来安装qqbot: ``` pip install qqbot ``` 安装完成后,可以创建一个Python脚本,并使用以下代码来发送QQ消息: ```python from qqbot import QQBot # 创建一个自定义的QQBot class MyQQBot(QQBot): def onStartupComplete(self): # 在QQBot启动完成后,向指定QQ号发送一条消息 self.send('group', u'群号/好友QQ号', u'你好,我是QQBot!') # 创建一个QQBot实例并启动 myqqbot = MyQQBot() myqqbot.login() # 使用QQ号和密码登录QQ myqqbot.run() # 运行QQBot ``` 以上代码中,我们创建了一个自定义的QQBot类,继承了qqbot库中的QQBot类,并在onStartupComplete方法中编写需要执行的操作。在这个例子中,我们在QQBot启动完成后,向指定的QQ号发送了一条消息。 需要注意的是,在进行消息发送之前,需要先在`self.send()`方法中指定消息的类型和接收方的QQ号。消息类型可以是`group`或`buddy`,分别代表群组消息和好友消息。接收方的QQ号可以是群组号或好友的QQ号。 另外,在实际使用时,需要先登录QQBot,可以使用自己的QQ号和密码登录。登录成功后,就可以通过`myqqbot.run()`来启动QQBot,并开始发送QQ消息。 以上就是使用Python发送QQ消息的简单示例。当然,要实现更复杂的功能,还需要进一步了解qqbot库的使用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值