Windows开发
安装NoneBot
-
配置电脑python环境
-
用pycharm创建一个项目,启用新的虚拟环境开发项目,避免依赖冲突
-
在pycharm内使用
Terminal
安装包管理工具nb-cli,Nonebot2也会自动安装完成(注意cmd内安装的话是本机的python的全局环境)
pip install nb-cli
- 接着使用nb命令创建bot项目
nb create
输入命令之后按引导操作生成一个项目,参考教程:视频教程
配置.env.*文件
.env
ENVIRONMENT=dev
.env.dev
HOST=127.0.0.1
PORT=52912 # 端口号
SUPERUSERS=["2169550948"] # 配置 NoneBot 超级用户即机器人qq号
NICKNAME=["ggh"] # 配置机器人昵称
COMMAND_STAR=["/"] # 配置命令起始字符
COMMAND_SEP=["."] # 配置命令分割字符
LOG_LEVEL=DEBUG # 日志打印级别
安装go-cqhttp
配置完成后,我们还需要安装go-cqhttp
,这个东西是用于帮助我们将自己编写的nonebot
机器人连接到我们的QQ
,相当于一个代理商吧
对于go-cqhttp
的操作,需要对config.yml
进行相应的配置,这里推荐一个安装配置go-cqhttp
的视频教程
也可参考go-cqhttp
的官方文档
这里列出几个必须配置的,有三个:uin
,password
,universal
account: # 账号相关
uin: # QQ账号
password: '' # 密码为空时使用扫码登录
# 连接服务列表
servers:
- ws-reverse:
# 反向WS Universal 地址
# 注意 设置了此项地址后下面两项将会被忽略
universal: ws://127.0.0.1:52912/onebot/v11/ws/
配置完成后,首先启动nonebot
的bot.py
启动程序,可以在编译器启动,也可在cmd窗口用命令行启动(注意,命令行启动必须在对应的目录下)
命令行启动输入:
nb run
或
python .\bot.py
再点击go-cqhttp.bat
启动它,会出现如下窗口,则代表成功连接到nonebot
机器人与QQ
命令行启动:
.\go-cqhttp.bat
插件开发
第一个插件
实现了一个简单的交互功能
from nonebot import on_command
from nonebot.adapters.onebot.v11 import Bot, Event
# "你好"是用户对机器人发送的指令名,priority是该指令的优先级,数字越小优先级越高
matcher = on_command("你好", priority=2)
@matcher.handle()
async def test_():
await matcher.send("hello master!") # 当用户给机器人发送:"你好"时,机器人回复:"hello master!"
# 这个与上面的作用等同
# @matcher.handle()
# async def test_(bot: Bot, event: Event):
# await bot.send(
# event=event,
# message="hello master!"
# )
定时任务
首先需要下载一个插件,是在当前项目环境中导入
nb plugin install nonebot_plugin_apscheduler
配置
.env.*
文件末尾添加
APSCHEDULER_AUTOSTART=true
APSCHEDULER_CONFIG={"apscheduler.timezone": "Asia/Shanghai"}
bot.py
文件的main
函数中添加
nonebot.init(apscheduler_autostart=True)
nonebot.init(apscheduler_config={
"apscheduler.timezone": "Asia/Shanghai"
})
接下来就可以开发定时任务了,下面是一个私聊给指定好友发送消息的定时任务
import nonebot
from nonebot import require
require("nonebot_plugin_apscheduler")
from nonebot_plugin_apscheduler import scheduler
# 以上都是导入对应的依赖,scheduler是一个定时器插件,配置参见官方文档
# 设定时间的要调用的函数名id
@scheduler.scheduled_job('cron', hour='17', minute='59', id='problem')
async def problem():
(bot,) = nonebot.get_bots().values() # 获取bot对象
await bot.send_msg(
# 也可设置群聊发送,详情见源码
mseeage_type="private",
user_id=int(3206945784), # 注意python类型转化
message="你好蛙!"
)
服务器
配置服务器环境
安装nb-cli
pip3 install nb-cli
创建bot项目
nb create
进程后台挂载
将Linux程序放在后台运行,这样程序不会随着连接断开关闭
https://blog.csdn.net/qq_41311259/article/details/118786015
标签:Bot,nb,bot,nonebot,cqhttp,apscheduler,初识,NoneBot,go From: https://www.cnblogs.com/RCLiu/p/16882122.html