QQ消息

news/2024/11/20 21:44:42/

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


http://www.ppmy.cn/news/803573.html

相关文章

给QQ群发送消息

地址: http://d.web2.qq.com/channel/send_qun_msg2 方式:POST 参数: r {"group_uin":2393471267,"content":"[\"33333\",[\"font\",{\"name\":\"\\u5b8b\\u4f53\",\&…

简易消息管理器EventCenter

/** 日期:2017年7月4日* 功能说明:消息中心,添加侦听,移除侦听,消息分发* */using System;using System.Collections;using System.Collections.Generic;using UnityEngine;namespace BOFramework{/// /// 消息类&…

rtems 的消息与消息队列管理器

作者 Ray RTEMS版权所有,转载请注明来源www.rtems.net,作者Ray 14.1: 介绍 消息管理器提供任务间通信和使用 RTEMS 消息队列同步的能力。由消息管理器提供的函数是: rtems_message_queue_create-创建一个消息队列 rtems_message_queue_ident-获取消息队列…

QQ接收消息

打开终端输入cd空格拖进新建的工程. 然后输入pod init ,打开新建工程的文件夹, 里面就会有Podfile 文件,打开将下面的粘贴里面,输入pod install下载完成关闭 pod ‘RongCloudIM/IMLib’, ‘~> 2.8.3’ pod ‘RongCloudIM/IMKit’, ‘~> 2.8.3’ 然后导入头文件在appdeleg…

qq消息发射器

保存为名字.vbs双击即可,会直接粘贴你剪切板的内容到你聚焦的窗口。   结束方式:在任务管理器里结束wscript   Set WshShell WScript.CreateObject("WScript.Shell")   WshShell.AppActivate ""   for i1 to 100   WScr…

Qmsg酱实现QQ消息自由推送

官网传送门Qmsg官网 登录Qmsg网站。 添加需要接收消息的QQ号。 调用接口(查看接口文档)发送GET或POST请求。 发送消息非常简单,只需要向您的接口地址发一个GET或者POST(推荐)请求即可。 参数:msg:消息内容qq&#…

Windows超级管理器

Windows超级管理器 Windows超级管理器是一款系统管理软件,该软件功能十分全面,提供了全面的系统检测,高效地帮助用户查看及了解计算机参数配置,并附带了多个实用的工具,有效地检测出电脑存在错误或无用的文件并清理&a…

腾讯QQ分享消息

腾讯QQ分享消息 准备工作实现QQ分享创建实例分享给好友实现回调 准备工作 下载SDK资源包和相关文档&#xff0c;把*.jar包放在libs目录下&#xff0c;并点击更新同步按钮Sync project 文档来源 配置Amanifest.xml文件&#xff0c;添加相关权限和回调活动 <uses-permission…