go-cqhttp的api调用函数库
本文在格式和语言表达上也借鉴了兔兔老师的json.lua第三方库的下载及使用和Hikari Sakurai老师的JSON 牌堆编写:从入门到进阶
但是技术力远没有两位大佬高x
应 @简律纯 的要求写成的一个函数库,配合API|go-cqhttp帮助中心的说明可以更便捷地调用api。
希望能为各位的脚本编写带来帮助。
PS
其实就是一个低技术力的库罢了,要是能给大佬们帮上忙我就太荣幸了
一.配置http通信
本函数库仅支持http.post与http.get两种api调用方式,所以在使用前请配置好http通信。
参考配置:
- http: # HTTP 通信设置
address: 127.0.0.1:15700 # HTTP监听地址
timeout: 5 # 反向 HTTP 超时时间, 单位秒,<5时将被忽略
long-polling: # 长轮询拓展
enabled: false # 是否开启
max-queue-size: 2000 # 消息队列大小,0 表示不限制队列大小,谨慎使用
middlewares:
<<: *default # 引用默认中间件
你可以像这样把它加到dicegocq整合包,config.yml文件中写好的ws通信下方:
随后重启框架,使gocq启用http通信
请注意,这个15700
代表着http调用api时的端口,如果有改动,请打开(等下将会说到的)gocq_api.lua文件并手动修改http_port的值。
二.下载与安装
在把库更新为单个lua文件之后这节就变得好水
你可以点击这里来下载这个库。
然后,将下载的压缩包解压,你会得到一个名叫gocq_api的lua文件。
接下来只要把gocq_api.lua扔进diceqq/plugin文件夹里面,对你的骰娘使用system load指令就好了。
当然,如果你希望的话,gocq_api.lua也可以放进diceki/lua文件夹里。
如果你是只一名想要下载与安装这个库的骰主,就不必再往下看。
三.调用函数
安装完成后,想要在插件中调用这个库,只需要一行这样的代码:
gapi = require("gocq_api")
然后,你就可以使用gapi.http_get()和gapi.http_post()来调用go-cqhttp的api函数了。
这个变量名,也就是gapi,当然也一样可以换成其他的,只要你能记得住就可以了。
三.函数介绍
本库包含两个函数:
- http_post(“终结点”,参数1,参数2……)
- http_get(“终结点”,参数1,参数2……)
两个函数分别对应了两种api调用方法:post与get。两种方法的差异请参考 API|go-cqhttp帮助中心 。
api参数请严格按照 API|go-cqhttp帮助中心中的排列顺序,即从上到下,按序传入,否则可能会出现错误。
例如,如果在帮助中心中的内容如下:
终结点:/send_msg
字段名 | 数据类型 | 默认值 | 说明 |
message_type | string | - | 消息类型, 支持private、group,分别对应私聊、群组,如不传入,则根据传入的*_id参数判断 |
user_id | int64 | - | 对方 QQ 号 ( 消息类型为 private 时需要 ) |
group_id | int64 | - | 群号 ( 消息类型为 group 时需要 ) |
message | message | - | 要发送的内容 |
auto_escape | boolean | flase | 消息内容是否作为纯文本发送 ( 即不解析 CQ 码 ) , 只在 message 字段是字符串时有效 |
那么你可以这么传入参数:gapi.http_post(“send_msg”, “group”, nil, 971050440, “test,test~”).
然后,在调用这个函数时,骰娘便会向群聊971050440(☃️ssJSKFJDJ♬)发送一条信息: “test,test”。