乾坤机器人吧 关注:22贴子:111
  • 0回复贴,共1

乾坤机器人开发教程|乾坤SDK详解

只看楼主收藏回复

# 学习内容简介
本教程主要实现:
下载乾坤SDK
熟悉乾坤SDK基本结构
编写基础功能收发消息
编译和发布插件
详细内容:
乾坤群发、私聊 功能的使用
学会发送: 文本、图片、语音、卡片
# 联系我们
如果你有机器人开发问题或有需求,可与我们进行交流
[QQ机器人开发交流群](http://u.720life.cn/s/07de3f38)
# 声明
本教程非乾坤官方教程,为作者学习易语言过程的知识总结,将主要内容整理、汇总后,形成本教程。
致力于进行技术交流,帮助新人快速入门,少走弯路。
请在遵守中华人民共和国法律、腾讯相关规定和乾坤框架相关说明下进行使用
如您使用本技术,进行包括但不限于如下行为,软件作者并不知情,不承担任何法律风险
1.违法行为
2.违法腾讯规定
3.违法乾坤框架规定
# 教程内容
## 下载插件SDK
首先需要下载乾坤官方提供的易语言SDK,
[易语言SDK]([img pic_type=1 width= height=]http://u.720life.cn/s/172dd422)</p><p>
</p><p>解压文件后文件如下:</p><p>![1.乾坤sdk详解.png[/img]
](
)
sdk模版20200216 文件是Demo源代码,可以在此文件上进行修改
## SDK介绍
sdk模版20200216.e文件详情,打开后看到左侧是乾坤SDK提供的API信息,所有的代码都从这里开始编写的
![乾坤SDK初步预览.png](
)
demo文件是一个完整文件,可以直接编译生成dll插件,如下图所示(注意生成文件一定要以IR.dll结尾否则会报错,本插件为com.baidu.http://www.IR.dll)
![插件编译和发布.png](
)
将文件放到plugin下,运行乾坤程序。
![1.运行乾坤程序.png](
)
登录QQ后,点击 载入插件,查看到插件的基本信息,如下图所示
![1.运行乾坤程序.png](
)
![1.运行乾坤程序.png](
)
![1.运行乾坤程序.png](
)
![1.运行乾坤程序.png](
)
![1.运行乾坤程序.png](
)
![1.运行乾坤程序.png](
)
![1.运行乾坤程序.png](
)
第一次加载插件,是禁用状态,需要点击右键菜单进行启用
![启动插件.png](
)
这样我们的插件 就可以正常工作了
## 开发功能
### 修改插件配置信息
修改 配置信息 在函数 IR_Create 中
![插件配置信息.png](
)
### 群消息监控
别人在QQ群里发 良心,机器人回答 良心开发机器人
IR_群消息 进行开发,传递参数如下所示
![群消息处理.png](
)
编写代码如下:
.版本 2
.子程序 IR_群消息, 整数型, , 群消息
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息子类型, 整数型, , 暂时没用,预留
.参数 IRC_消息来源, 文本型, , 消息来源群号
.参数 IRC_触发对象_主动, 文本型, , 发送该条消息人QQ
.参数 IRC_触发对象_被动, 文本型
.参数 IRC_消息内容, 文本型
.参数 IRC_消息序号, 文本型, , 此参数暂定用于消息撤回
.参数 IRC_消息ID, 文本型, , 此参数暂定用于消息撤回
.局部变量 气泡, 整数型
错误位置 = 6
气泡 = 取随机数 (1, 400)
.如果真 (IRC_消息内容 = “良心”)
API.发消息 (IRC_机器人QQ, #IRC_群, IRC_消息来源, “”, “良心开发机器人”, 气泡, 0)
.如果真结束
返回 (#IRC_继续)
API是全局变量,需要进行定义:
![定义全局变量.png](
)
其他参数,根据API的定义进行填写即可,编译插件进行测试,在群里发送良心 会看到机器人回复消息
![群消息测试.png](
)
### 好友消息监控
好友给机器人发 你好,机器人回复 良心机器人给你打招呼
IR_私聊消息 进行开发,完整代码如下:
.版本 2
.子程序 IR_私聊消息, 整数型, , 私聊消息
.参数 IRC_机器人QQ, 文本型, , 机器人QQ
.参数 IRC_消息类型, 整数型, , 1 好友消息 4 群临时会话 5 讨论组临时会话
.参数 IRC_消息来源, 文本型, , 视情况而定如消息类型不为1,则为群号或讨论组ID
.参数 IRC_触发对象_主动, 文本型, , 私聊对象
.参数 IRC_消息内容, 文本型, , 内容
.局部变量 气泡, 整数型
错误位置 = 5
气泡 = 取随机数 (1, 400)
.如果真 (IRC_消息内容 = “你好”)
API.发消息 (IRC_机器人QQ, IRC_消息类型, “”, IRC_触发对象_主动, “良心机器人给你打招呼”, 气泡, 0)
.如果真结束
返回 (#IRC_继续)
同样也是使用API.发消息 函数,只是这次我们传递的不是群号,而是好友QQ
### 别人加机器人好友时机器人同意
别人加机器人好友时,自动同意
IR_请求添加好友 具体代码如下:
.版本 2
.子程序 IR_请求添加好友, 整数型, , 好友事件-被请求添加好友
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息类型, 整数型, , 消息类型暂时固定101
.参数 IRC_触发对象_主动, 文本型, , 请求人QQ
.参数 IRC_触发对象_被动, 文本型, , 被添加QQ
.参数 IRC_消息内容, 文本型, , 附加信息
.参数 IRC_原始信息, 文本型
错误位置 = 14
Api_HandleEvent (IRC_机器人QQ, IRC_消息类型, IRC_触发对象_主动, , #IRC_请求处理_同意, “”, )
返回 (#IRC_继续)
### 别人拉机器人入群自动同意
IR_请求入群 函数,与添加机器人好友功能相似,只是传入的参数不同
.版本 2
.子程序 IR_请求入群, 整数型, , 群事件-入群请求
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息类型, 整数型, , 213他人申请入群 214自己被邀请入群 215某人被邀请入群 219已进群
.参数 IRC_消息来源, 文本型, , 来源群号
.参数 IRC_触发对象_主动, 文本型, , 来源QQ 214、215时这里为邀请人QQ
.参数 IRC_触发对象_被动, 文本型, , 215时这里为被邀请人QQ
.参数 IRC_消息内容, 文本型, , 附加信息
.参数 IRC_原始信息, 文本型
错误位置 = 13
.如果真 (IRC_消息类型 = 214) ' 有人邀请机器人入群
Api_HandleEvent (IRC_机器人QQ, IRC_消息类型, IRC_触发对象_主动, IRC_消息来源, #IRC_请求处理_同意, “”)
.如果真结束
返回 (#IRC_继续)
### 有人退群时 发提示消息
IR_群成员减少 函数 有人退群时发消息,代码如下:
.版本 2
.子程序 IR_群成员减少, 整数型, , 群事件-群成员减少
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息类型, 整数型, , 201/群员离开 202/群员被踢 216/群解散
.参数 IRC_消息来源, 文本型, , 来源群号
.参数 IRC_触发对象_主动, 文本型, , 操作者QQ(仅类型为202、203时存在)
.参数 IRC_触发对象_被动, 文本型, , **作QQ
错误位置 = 11
API.发消息 (IRC_机器人QQ, #IRC_群, IRC_消息来源, “”, “QQ:” + IRC_触发对象_被动 + “ 离开了我们”, 0, 0)
返回 (#IRC_继续)
### 有人加群时,私聊新人
IR_群成员增加 函数
有人加群时,私聊新人 代码如下:
.版本 2
.子程序 IR_群成员增加, 整数型, , 群事件-群成员增加
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息类型, 整数型, , 212/某人被批准入群
.参数 IRC_消息来源, 文本型, , 来源群号
.参数 IRC_触发对象_主动, 文本型, , 操作者QQ
.参数 IRC_触发对象_被动, 文本型, , **作QQ
错误位置 = 12
API.发消息 (IRC_机器人QQ, #IRC_群临时会话, IRC_消息来源, IRC_触发对象_被动, “欢迎加入了我们队伍 我是良心自助机器人”, 0, 0)
返回 (#IRC_继续)
### 群消息撤回
机器人支持撤回群成员的消息(机器人需要是管理员)
并且给出了样例代码,将其整合 我们做这样的一个功能
群成员发送 良心是坏蛋 则撤回消息,代码如下:
IR_群消息 中加入
.版本 2
.子程序 IR_群消息, 整数型, , 群消息
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息子类型, 整数型, , 暂时没用,预留
.参数 IRC_消息来源, 文本型, , 消息来源群号
.参数 IRC_触发对象_主动, 文本型, , 发送该条消息人QQ
.参数 IRC_触发对象_被动, 文本型
.参数 IRC_消息内容, 文本型
.参数 IRC_消息序号, 文本型, , 此参数暂定用于消息撤回
.参数 IRC_消息ID, 文本型, , 此参数暂定用于消息撤回
.局部变量 气泡, 整数型
错误位置 = 6
气泡 = 取随机数 (1, 400)
.如果真 (IRC_消息内容 = “良心是坏蛋”)
API.撤回消息 (IRC_机器人QQ, IRC_消息来源, IRC_消息序号, IRC_消息ID)
### 契约机器人发送图片功能
机器人发送图片非常简单,样例发送网络图片方法
有人在群里发送 良心联系方法 则机器人返回一张图片
.版本 2
.子程序 IR_群消息, 整数型, , 群消息
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息子类型, 整数型, , 暂时没用,预留
.参数 IRC_消息来源, 文本型, , 消息来源群号
.参数 IRC_触发对象_主动, 文本型, , 发送该条消息人QQ
.参数 IRC_触发对象_被动, 文本型
.参数 IRC_消息内容, 文本型
.参数 IRC_消息序号, 文本型, , 此参数暂定用于消息撤回
.参数 IRC_消息ID, 文本型, , 此参数暂定用于消息撤回
.局部变量 气泡, 整数型
错误位置 = 6
气泡 = 取随机数 (1, 400)
.如果真 (IRC_消息内容 = “良心联系方式”)
API.发消息 (IRC_机器人QQ, #IRC_群, IRC_消息来源, “”, API.发送图片 (IRC_机器人QQ, #IRC_群, IRC_消息来源, 网页_访问 (“
”)), 0, 0)
.如果真结束
测试效果:
![发网络图片测试.png](
)
发送本地图片,本地图片只需要自己构造代码发送即可 ,详细代码如下:
.版本 2
.子程序 IR_群消息, 整数型, , 群消息
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息子类型, 整数型, , 暂时没用,预留
.参数 IRC_消息来源, 文本型, , 消息来源群号
.参数 IRC_触发对象_主动, 文本型, , 发送该条消息人QQ
.参数 IRC_触发对象_被动, 文本型
.参数 IRC_消息内容, 文本型
.参数 IRC_消息序号, 文本型, , 此参数暂定用于消息撤回
.参数 IRC_消息ID, 文本型, , 此参数暂定用于消息撤回
.局部变量 气泡, 整数型
.局部变量 name, 文本型
错误位置 = 6
气泡 = 取随机数 (1, 400)
.如果真 (IRC_消息内容 = “本地图片”)
name = 应用目录 + “\test.png”
.如果真 (写到文件 (name, 网页_访问 (“
”)))
API.发消息 (IRC_机器人QQ, #IRC_群, IRC_消息来源, “”, “[IR:pic=” + name + “]”, 0, 0)
.如果真结束
### 契约机器人发语音
发语音更多时候是为了防止消息被屏蔽,同时也可以让群成员看起来 正像是一个真人,所以备受喜爱的一个功能 ,实现上也非常的方便
样例代码:发送语音 4个字 则发送一条语音 详细代码如下:
.版本 2
.子程序 IR_群消息, 整数型, , 群消息
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息子类型, 整数型, , 暂时没用,预留
.参数 IRC_消息来源, 文本型, , 消息来源群号
.参数 IRC_触发对象_主动, 文本型, , 发送该条消息人QQ
.参数 IRC_触发对象_被动, 文本型
.参数 IRC_消息内容, 文本型
.参数 IRC_消息序号, 文本型, , 此参数暂定用于消息撤回
.参数 IRC_消息ID, 文本型, , 此参数暂定用于消息撤回
.局部变量 气泡, 整数型
.局部变量 name, 文本型
错误位置 = 6
气泡 = 取随机数 (1, 400)
.如果真 (IRC_消息内容 = “发送语音”)
name = 应用目录 + “\test.mp3”
.如果真 (写到文件 (name, 网页_访问 (“http://shop.720life.cn/static/mypic/13/17.mp3”)))
API.发消息 (IRC_机器人QQ, #IRC_群, IRC_消息来源, “”, “[IR:Voi=” + name + “]”, 0, 0)
### 契约机器人发卡片
机器人支持发送xml和json格式的代码,简称卡片功能
实现简单的功能,发送我的卡片,机器人返回一个卡片代码
.版本 2
.子程序 IR_群消息, 整数型, , 群消息
.参数 IRC_机器人QQ, 文本型
.参数 IRC_消息子类型, 整数型, , 暂时没用,预留
.参数 IRC_消息来源, 文本型, , 消息来源群号
.参数 IRC_触发对象_主动, 文本型, , 发送该条消息人QQ
.参数 IRC_触发对象_被动, 文本型
.参数 IRC_消息内容, 文本型
.参数 IRC_消息序号, 文本型, , 此参数暂定用于消息撤回
.参数 IRC_消息ID, 文本型, , 此参数暂定用于消息撤回
.局部变量 气泡, 整数型
.局部变量 name, 文本型
错误位置 = 6
气泡 = 取随机数 (1, 400)
.如果真 (IRC_消息内容 = “发送卡片”)
name = 网页_访问S (“http://shop.720life.cn/static/mypic/13/17.txt”) ' 获得json代码
API.发消息 (IRC_机器人QQ, #IRC_群, IRC_消息来源, “”, name, 0, 2) ' 最后一个参数值: 2 表示json; 1表示xml
# 完整源代码下载地址
[乾坤SDK详解样例代码](http://u.720life.cn/s/2e8ac48c)
更多乾坤插件 参考 http://bbs.720life.cn/thread-36.htm


1楼2020-08-01 10:39回复