go-cqhttp的api调用函数库

使用《署名—非商业性使用—相同方式共享 4.0 协议国际版》(CC BY-NC-SA 4.0)进行授权。
https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.zh-Hans

本文在格式和语言表达上也借鉴了兔兔老师的json.lua第三方库的下载及使用和Hikari Sakurai老师的JSON 牌堆编写:从入门到进阶
但是技术力远没有两位大佬高x

@简律纯 的要求写成的一个函数库,配合API|go-cqhttp帮助中心的说明可以更便捷地调用api。
希望能为各位的脚本编写带来帮助。

PS
其实就是一个低技术力的库罢了,要是能给大佬们帮上忙我就太荣幸了

一.配置http通信

本函数库仅支持http.posthttp.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_typestring-消息类型, 支持private、group,分别对应私聊、群组,如不传入,则根据传入的*_id参数判断
user_idint64-对方 QQ 号 ( 消息类型为 private 时需要 )
group_idint64-群号 ( 消息类型为 group 时需要 )
messagemessage-要发送的内容
auto_escapebooleanflase消息内容是否作为纯文本发送 ( 即不解析 CQ 码 ) , 只在 message 字段是字符串时有效

那么你可以这么传入参数:gapi.http_post(“send_msg”, “group”, nil, 971050440, “test,test~”).

然后,在调用这个函数时,骰娘便会向群聊971050440(☃️ssJSKFJDJ♬)发送一条信息: “test,test”。

这个函数会返回两个值,一个是此函数调用成功与否的布尔值,另一个是API|go-cqhttp帮助中心 中有说明的响应json数据,你可以设置变量来接收并发送它们。

    说点什么吧...