1、  QQ机器人的使用场景

可以看官网上的详细介绍,比如QQ群的自动营销或者活跃群气氛,代替人工进行自动回复等。

QQ机器人的常用种类:常用的有两种:QQLite 和 QQPlus,两种框架大致相同,但是还是有一些不同的。

2、  QQ机器人的运行原理以及和插件的运行原理

QQ机器人类似于QQ客户端。分为QQ机器人核心和插件两大部分:

QQ机器人核心提供的功能是:收发信息/发送者的权限信息 和发送者所在的群信息等。

插件的功能则是对这些收到的信息进行处理后,由机器人核心将信息发送给群、好友等。比如对收到的信息指定指令进行业务逻辑处理。官方和很多开发者已经提供了很多相关插件,有免费的也有付费的。比如常见的签到系统、积分系统、群管系统,还有各种各种的游戏。

QQ 机器人传递消息的顺序是按照插件列表中对应的顺序进行转发,可以通过界面调整插件的优先级,消息被插件处理后就不会再转发给下个插件。

插件的排列顺序个人理解的是:对发送消息者进行黑名单过滤和身份验证之类的要放在前面,对收到数据进行处理的插件放在后面。

QQ机器人通过动态库的形式提供给插件开发者进行开发,具体的接口文档请参考官方的文档中心中的“插件开发手册”对应的文档(C#).主要的接口有以下五个必须实现,对应的:(http://www.qqlite.cn/document/index/index.html#T:QQLite.Framework.SDK.Plugin)

Install(安装插件)  :点击安装时候运行对应的函数

UnInstall(卸载插件)  :点击卸载时候运行对应的函数

Start(运行插件)  :插件的具体执行函数

Stop(停止运行) :点击停止运行后的执行函数

ShowForm(显示插件窗体,点击“设置”弹出)

3、  QQLite支持的开发语言

C#(插件开发手册部分)

提供的功能比较全面,建议使用C#

PHP/ ASP.net(接口事件和API事件部分)

优点:开发简单,熟悉PHP的可以很快上手,API较少

缺点:可以处理一些事件,但是插件接收到的参数较少,不建议用于复杂功能开发,如果只是见到的群消息一问一答还可以,若要区分发送消息者的权限,则无法做到。

其他:

(1)若使用PHP进行开发,需要依赖web接口插件,这个插件会把QQ机器人核心收到的消息全部以 post方式转发到这个web接口插件中对应的url 中,对应的是为接口事件部分对应的文档。

(2)若需要对收到的这个指令进行处理,则直接echo 数据,核心就会把echo 的数据返回给发送者;若不需要处理,则不要echo 数据,否则会影响其他插件对这个消息的处理。

http://www.qqlite.cn/document/index/index.html#webplugin

4、  QQLite 插件的开发流程(C#)

(1) 开发环境  Visual studio2010

(2) 最少的基础知识准备

QQLite 的开发手册的熟悉,一定要熟悉

C# 基础教程(如果没有学过C#,参考  http://www.runoob.com/csharp/csharp-tutorial.html)

(3)       开发步骤(建议新手直接在官方的插件的基础上进行修改,但是切记要修改命令空间,否则会把原有的web接口插件给替换掉)

(a)       打开VS2010,新建 visual C# àwindowsà类库à 确定(TestPlugin)

(b)       解决方案资源管理器(TestPlugin)—>右键选择属性

应用程序  QQLite.Plugin.TestPlugin

默认命名空间-> QQLite.Plugin.TestPlugin(QQLite 用于区分不同插件的标 识)

生成-> 目标平台:x86 输出路径:自定义,最好直接输出到和机器人exe

相同的目录下即可

(c) 右键 引用:添加引用—》从中选择出QQLite 机器人可执行文件目录下

的QQLite.Framework.dll ,然后选择”QQLite.Framework”,将复制本地设置为false

(d)       然后就是在start() 中进行编码,根据文档中心的插件开发手册,实现你所需要的功能

(e)       若需要使用mysql 连接数据库,则同上,引用QQLite 目录下的Mysql.data.dll 即可

(f)        根据文档中心的“插件开发手册“和需求进行开发

(g)       开发完成,才能vs 的菜单的“生成“中选择 “生成解决方案”或者重新生成解决方案,就可以在上面设置的输出路径中看到生成的dll文件

将DLL文件转化为QQLite 可以识别的格式:只需要dll 移动到 QQLite的可执行文件上,就会提示生成插件成功,在当前目录下就会有同名但是后缀名为 plugin 的文件,将这个文件放到plugin 目录下,然后,点击机器人操作界面右下角的重新加载插件,就会看到自己的插件了。

5、插件开发的注意点

(1)、   C#操作Mysql(增删改查)   这个属于C# 的范围,和QQLite 关系不大,使用google 搜索C# mysql 即可

注意点(a) 打开数据库连接的时候,要设置字符编码为utf8

string server = “127.0.0.1”;
string database=”test_db”;
uid=”root”;
password=”123456”;
string connectionString = “server=” + server + “;port=3306;database=” + database + “;User Id=” + uid + “;password=” + password + “;charset=utf8;”;

(b)如何插入数据记录

MySqlCommand cmd = connection.CreateCommand();
string insert_cluster_check_in_cfg = @”insert into cluster_cfg(cluster_id,check_status)value(‘{0}’,’{1}’);”;
insert_cluster_check_in_cfg = String.Format(insert_cluster_check_in_cfg, cluster_id, cluster_check_in_open);
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = insert_cluster_check_in_cfg;
cmd.ExecuteNonQuery();

(2)如何调试

程序开发过程肯定会遇到bug,下面就是调试的过程

(a)       将要调试的插件放在 机器人可执行文件下的plugin目录下,在机器人界面重新加载插件

(b)       VS 菜单à调试à调附加到进程à从可用进程中找到机器人对应的进程à点击附加

(c)       Vs 中,在需要打断点的地方打上断点,然后触发对应的指令即可

(d)       QQ机器人单次调试时间不宜过长,否则会导致重新需要重新登录

(e)       机器人的界面上的日志选项卡中,可以通过OnLog 打印日志,方便调试

(3)       发布群公告

发布群公告在插件开发手册中没有对应的现成接口,所以需要自己抓包(flidder)进行测试开发,完成这个功能所需要的数据都可以从机器人对应的接口中获得。

原理是:模拟QQ客户端发送公告的http请求,填充对应的字段,向对应的url 传递正确的数据即可

思路是:因为插件接收到的数据只有:sender 和对应的事件参数,从这两个参数中调试查找所需要的参数。

示例:

private string BuildRequest(Dictionary

qqlite 插件开发总结相关推荐

  1. QQlite 插件开发总结

    1.  QQ机器人的使用场景 可以看官网上的详细介绍,比如QQ群的自动营销或者活跃群气氛,代替人工进行自动回复等. QQ机器人的常用种类:常用的有两种:QQLite 和 QQPlus,两种框架大致相同 ...

  2. QQLite 插件开发 之 Sqlite 保存配置

    由于C#是半路出家,对QQLite 的开发更是零基础,只有官方文档可以参考.刚开始的时候 存储没有考虑便利性,都是使用 MySql 保存在服务端,因为要求用户安装插件的同时在本地安装mysql 数据库 ...

  3. QQLite 插件开发 之 html解析 CsQuery(C#)

    在使用C#开发QQLite插件过程中,需要从第三方获取数据,通常都是选择json等,但是这次由于数据由第三方提供,由不得商量,对方返回的Html,需要自己从html 中提取出需要的数据,然后使用. 解 ...

  4. ATS插件开发中内存泄露问题的解决方法探讨

    接触ATS开发已经有几年了,开发过内核的模块,也从事过插件的开发.内存泄露问题一直是一个困扰大多数ATS开发者的头疼的问题,下面说说我自己的感受和思考.这里这关注ATS插件开发这个话题.源码的exam ...

  5. jQuery插件开发 - 其实很简单

    [前言] jQuery已经被广泛使用,凭借其简洁的API,对DOM强大的操控性,易扩展性越来越受到web开发人员的喜爱,我在社区也发布了很多的jQuery插件,经常有人询问一些技巧,因此干脆写这么一篇 ...

  6. jquery 插件开发的作用域及基础

    2019独角兽企业重金招聘Python工程师标准>>> 之前一直有开发jquery插件的冲动,所以一直想学习如何进行插件开发,最近一个项目需要使用图片上传组件及自动无限下拉组件,百度 ...

  7. Nutch插件开发及发布流程

    2019独角兽企业重金招聘Python工程师标准>>>  一,插件开发流程: 1,Nutch开发客户端环境搭建 2,plugin的源代码则保存在/src/java/org/apach ...

  8. 深入理解 Mybatis 插件开发

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:风一样的码农 cnblogs.com/chenpi/p/10 ...

  9. 【直播回顾】蚂蚁金服高级开发工程师萧恺:IDEA 插件开发入门教程

    主讲人:萧恺(蚂蚁金服-支付宝事业群-高级开发工程师) 本名:肖汉松 讲师介绍: 热爱阅读,喜欢挑战,热衷尝试新的技术,关注技术背后的原理. 关注领域:Java 服务端开发,分布式系统 关注语言:Ja ...

最新文章

  1. 独家 | 深度学习 V.S. 谜题游戏
  2. ICML 2020 | 小样本学习首次引入领域迁移技术,屡获新SOTA结果
  3. Mozilla Labs Apps Developer Preview发布了
  4. matlab产生一列相同的数据,读取excel中的数据把第一列相同的所有行数据输出成一个excel...
  5. ubuntu权限管理
  6. 最好电脑操作系统_软件开发人员该如何选择笔记本电脑?朋克老师来教你
  7. 动态规划套路:最大子数组和
  8. ftp服务器新建虚拟目录,ftp服务器 虚拟目录
  9. 【转载】ACM中矩阵乘法的应用
  10. 设计原则在设计模式的应用
  11. formidable模块的使用
  12. hibernate之自定义持久化实现
  13. 英特尔核显自定义分辨率_核显也能60帧玩3A大作?原理很简单!8寸电脑掌机游戏测评...
  14. Windows操作系统中“源路径太长”问题的解决办法
  15. JS实现四舍五入保留两位小数
  16. 流式布局显示/日历显示
  17. QQ浏览器劫持video标签加载自己的广告(怎么解决?)
  18. 2021-07-27_TPM描述
  19. AI还原乾隆后妃样貌,延禧攻略众生相。
  20. 福田欧曼ETX驱动桥的设计(说明书+8张CAD图纸+开题报告+任务书+中期检查表+答辩相关材料)

热门文章

  1. 人工智能数据解决方案,如何基于AI打造零售企业新优势?
  2. 中软实习培训记录十一(0731)
  3. 数据库MySQL网课大纲
  4. jpeg如何转换成pdf
  5. python中国象棋github_GitHub 上最火的 Python 开源项目zz
  6. 数通IA实验题目topo
  7. 2022年软件行业就业分析及如何准备面试应聘
  8. 初级电工基础知识复习
  9. vuforia添加音效
  10. 单菌二三代数据组装神器-Unicycler