Skip to content
On this page

API

API 是实现适配器部分基础逻辑的基础,你也可以调用 API 来进一步完成你的业务逻辑。

api 属性位于 AmiyaBotinstance 属性下。

python
bot = AmiyaBot(...)

await bot.instance.api.get_me()

请注意

不用的适配器下,api 的方法不尽相同,在创作多平台机器人时,请注意可能产生的影响。

引入 API 类以注解变量

我们强烈建议在使用不同的适配器时,引入相应的 API 类注解 api 属性。它们通常在适配器模块的 api 模块下。

python
from amiyabot.adapters.tencent.qqGuild.api import QQGuildAPI
# from amiyabot.adapters.cqhttp.api import CQHttpAPI
# from amiyabot.adapters.kook.api import KOOKAPI


api: QQGuildAPI = bot.instance.api
await api.get_me()

共同的方法

api 实际上是调用了不同平台提供的接口。在不同平台下,调用接口的鉴权规则也不一样。所有适配器的 api 都存在以下三个方法,参数也是一样的。方法内部实现了不同平台的鉴权规则,你只需要直接调用接口即可。

get

参数名类型释义默认值
urlstr接口 url
paramsUnion[dict, None]get 参数
**kwargsrequest 参数

post

参数名类型释义默认值
urlstr接口 url
payloadUnion[dict, None]post 参数
is_form_databool是否使用 form 表单提交(仅 QQ 频道拥有此参数)
**kwargsrequest 参数

request

可以使用除 get、post 以外的一些 method 调用接口。

参数名类型释义默认值
urlstr接口 url
methodstr请求 method
payloadUnion[dict, None]请求参数
**kwargsrequest 参数
python
res = await bot.instance.api.post('/interface', {...})

为什么没有 headers 参数

方法内部实现了不同平台的鉴权规则,控制了 headers 的内容,你不需要手动控制。如果你希望自己实现请求,请使用 👉 进阶指南 - HTTP 请求

api 的返回

参考 进阶指南 - HTTP 请求 - 返回值