ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
使用说明 --- 目前可以使用以下几种方式调用API: 1. 在插件在向服务端传递事件数据时,服务端在响应数据中加入需要的调用的API信息,但这样无法获取API的调用结果,另外,该方式会主动屏蔽调用GET类中声明的相关API。 2. 通过HTTP协议调用插件接口,该方式支持所有API,可以获取到调用结果,但需要配置插件的动态交互设置后使用 ( 配置参见「 配置文件说明 - httpSocket 」),并且服务端要能够**以主动连接方式**成功连到插件端口 ( 即插件所在的主机要有所谓的公网IP ) 。 3. 在插件使用「 定时任务 」功能轮询服务端时调用,此方式与传递事件数据时的使用方法与使用限制一致。 所有API均支持异步调用,调用方法请见「异步调用」。 本篇大部分内容针对第二种使用方式进行说明。 请求说明 --- 请求地址:`schema://ip:port/` | 参数 | 说明 | | --- | --- | | schema | 使用协议,目前仅支持`http`,不支持`https`,如需使用,需要自行加装中间件(如`nginx`)进行反向代理。 | | ip | 插件所使用的主机IP,主要是相对于服务端来说所使用的IP地址,需要服务端能够主动连接成功访问。 | | port | 插件使用的监听端口 | 例如: 插件使用的监听端口是`9999`,因为服务端程序 ~~(PHP)~~ 运行在同一主机上,所以使用的IP地址即`127.0.0.1`或`localhost`,因此请求地址为:`http://127.0.0.1:9999/` ### **请求方式** 为了减少处理步骤,强制 **使用`POST`方式** 调用API接口 ### **数据格式** 仅支持`JSON` ### **编码方式** `UTF-8` ### **数据说明** 所有API均需要**提交参数`fun`**,值为该API的英文描述名 提交的参数**区分大小写**,**没有给出参数默认值时,表示该参数不可空** 如果开启了 数据校验 功能,请注意额外提交`authTime`和`authToken`这两个检验参数,具体说明请参考「提交说明 - 校验参数说明」 接口响应说明 --- 对于任意请求: ### **HTTP状态码** * `200`:表示成功调用了API,**但不能保证调用结果是正确的**。 * `400`:表示处理时出现错误。 * `403`:表示缺少API所需信息。 * `404`:表示调用了不存在的API。 * `405`:表示使用了接口不支持的协议,如`GET`、`HEAD`。 * `406`:表示无法解析请求,或为非支持的数据格式,如`XML`。 * `500`:表示处理时出现错误 > 如果开启 **数据校验** 功能,在出错的情况下会响应以下状态码 * `401`:表示缺少校验参数,或传递的校验参数有误 * `408`:表示该请求超过有效时间 因设计问题,部分情况下状态码可能与本规则设定不符,**请以`errMsg`参数为准** ### **响应数据格式** 响应数据为JSON格式: ~~~ { "status":0, "errMsg":"", "result":"", "request":{ "handle":12345, "text":{ "fun":"xxx" } } } ~~~ 字段说明: | 字段名 | 数据类型 | 说明 | | --- | --- | --- | | status | int | 状态码,`0`表示成功,`非0` 表示失败 | | errMsg | string | 错误原因,成功调用接口时为`null` | | result | ```string```/```array```/```object``` | 执行结果,部分API的返回值不存在此字段 | | request | ```object``` | 本次请求的相关信息 | | request.handle | ```int``` | 请求绑定的句柄 | | request.text | ```object```/```string``` | 请求内容 | * ```status```只有```-400```~```-600```之间的值为接口错误码,并请会在```errMsg```中返回错误原因;不在此范围内的错误码为酷Q错误码,请参考「[官方文档](https://docs.cqp.im/dev/v9/errorcode/)」 * **API说明中将不再描述```status```,```errMsg```与```request```字段信息** * 若**字段名为 ```a.xx``` 格式**,则**表示这是一个子属性**