手把手教你搭建一个自己的QQ机器人 in Golang
作者:ssttkkl
QQ机器人是怎么回事呢?QQ相信大家都很熟悉,但是QQ机器人是怎么回事呢?QQ机器人,其实就是能够接收QQ消息并自动回复的机器人程序,这就是关于QQ机器人的事情了。
好了,今天要介绍的就是一个QQ机器人(bot)框架——mirai。mirai是一个在全平台下运行,提供QQAndroid和TIMPC协议支持的高效率机器人库。项目地址:https://github.com/mamoe/mirai
目前mirai支持通过大部分主流语言调用,本文将介绍如何使用Golang搭建属于你自己的bot。另外Python也可以写但是我懒得写了(要用到asyncio库,解释起来又要一堆篇幅了),感兴趣可以自行研究。
为什么要做这个1. 好玩
2. 真的好玩
3. 可以用来实践go语言,毕竟大家小学期不是刚学完吗(什么你没选?现在开始自学还来得及。你问为什么要学?看看下面这张图就懂了)
GetStarted
1. 在电脑上下载miraiOK一键启动器(https://github.com/LXY1226/miraiOK),并且装上mirai-api-http插件(https://github.com/project-mirai/mirai-api-http,在右边的releases下载jar文件)
2. 去看README配置好mirai-api-http
3. 运行miraiOK,输入loginQQ号密码进行登录(我这里WindowsDefender会报毒,应该是误报,信不过的话就把源码克隆下来自己编译)
4. 执行命令gogetgithub.com/Logiase/gomirai,用来为go下载gomirai库(https://github.com/Logiase/gomirai)
简单的小例子这是一个最简单的bot模板,适用于一问一答的方式。使用时把const一栏里的东西改成自己的东西,main函数内基本不需要变动,在onReceiveMessage函数里写机器人的应答代码。
这种直接通过看Demo上手的学习方式我愿称之为Demo式学习
packagemain import( "github.com/Logiase/gomirai" "github.com/Logiase/gomirai/message" "io/ioutil" "math/rand" "os" "os/signal") const( qq =123456 url ="http://127.0.0.1:3399" authKey="qwerty") varclient*gomirai.Clientvarbot*gomirai.Bot funcmain(){ interrupt:=make(chanos.signal,1) signal.Notify(interrupt,os.Interrupt) //初始化Bot部分 client=gomirai.NewClient("default",url,authKey) key,err:=client.Auth() iferr!=nil{ client.Logger.Fatal(err) } bot,err=client.Verify(qq,key) iferr!=nil{ client.Logger.Fatal(err) } deferfunc(){ err:=client.Release(qq) iferr!=nil{ client.Logger.Warn(err) } }() //启动一个goroutine用于接收消息 gofunc(){ err:=bot.FetchMessages() iferr!=nil{ client.Logger.Error(err) } }() //开始监听消息 fortrue{ select{ case
创建机器人
#创建机器人机器人是开发者开发技能的个人控制台,平台支持开发者创建多个机器人。每个机器人可以含有多个技能,每个公众号或小程序只能绑定一个机器人。
#1.首次创建首次接入平台,开发者需要使用个人微信先登录【微信对话开放平台】,然后点击首页的【开始使用】按钮,即可进入创建第一个机器人页面。
按规定填写“机器人名称”,“机器人ID”和“验证码”,点击“确认”,第一个机器人就创建成功了。
#2.新增机器人如果想要再新增一个机器人,开发者可以在当前机器人的显示框内,点击下拉列表>>新增机器人来创建新的机器人。
#3.管理权限平台还支持多人协作,技能共建。如果一个机器人,需要添加多个开发者进行管理或维护,机器人创建者可以到机器人设置-成员权限中,输入其他开发者的帐号id,填写备注名、分配角色权限,即可添加。添加后也可以在此更改权限/删除信息。
创建者:可执行所有权限,可设置管理员以及删除机器人
管理员:可对机器人进行测试、编辑以及发布,可设置编辑员和测试员。
编辑员:可对机器人进行测试、编辑
测试员:可对机器人进行测试
这里的用户id是指开发者扫描登录平台后的身份ID数字,在平台右上方用户信息处可以获取。
【酷QC++】如何利用酷Q制作一个机器人
——酷QAir教程
要想阅读本篇教程,读者需要基本的C++知识以及VisualStudio2010/2015/2017
首先,需要从官方网站下载软件https://cqp.cc/t/23253。下载后从“下载“/”Download“文件夹中找到其压缩包。解压。
然后,我们从Github中下载酷Q的SDK。
https://github.com/CoolQ/cqsdk-vc
解压发现.sln,是项目,使用VS打开。
使用Release编译。(这一步基本不会出现问题)
发现Release中出现了你编译出的dll。
在.cqsdk-vc-masterCQPdemo中找到com.example.democ.json。里面存放你的插件运行时的菜单,权限等信息。
然后,将dll和json一起拷贝到你解压酷Q软件目录下.酷QAirapp下。
这时打开酷Q软件,发现“应用目录“中没有我们的插件。于是我们打开开发者模式:
打开conf文件夹,找到CQP.cfg
打开CQP.cfg
在文件最后加入
[Debug]
DeveloperMode=1
然后重启酷Q。这时候可以看到我们的插件。
至此,demo制作完成。
以下是几个编写教程:
在每个事件函数中,SDK的demo均给了详细注释,笔者在此不再多言。
至于函数用法,这里有一篇教程:
https://cqp.cc/t/28730
最后,感谢酷Q开发者。