使用平台接口
在 KiramiBot 中,除了使 用事件响应器操作发送文本消息外,我们还可以直接通过使用协议适配器提供的方法来使用平台特定的接口,完成发送特殊消息、获取信息等其他平台提供的功能。同时,在部分无法使用事件响应器的情况中,例如定时任务,我们也可以使用平台接口来完成需要的功能。
调用平台 API
在 KiramiBot 中,我们可以通过 Bot
对象来调用协议适配器支持的平台 API,来完成更多的功能。
获取 Bot
在调用平台 API 之前,我们首先要获得 Bot 对象。有两种方式可以获得 Bot 对象。
在事件处理流程的上下文中,我们可以直接使用依赖注入 Bot 来获取:
from kirami.typing import Bot
@weather.got("location", prompt="请输入地名")
async def got_location(bot: Bot, location: ArgPlainText):
...
在其他情况下,我们可以通过 KiramiBot 提供的方法来获取 Bot 对象:
from kirami import get_bot
# 获取当前所有 Bot 中的第一个
bot = get_bot()
# 获取指定 ID 的 Bot
bot = get_bot("bot_id")
调用 API
在获得 Bot 对象后,我们可以通过 Bot 的实例方法来调用平台 API:
# 通过 bot.api_name(**kwargs) 的方法调用 API
result = await bot.get_user_info(user_id=12345678)
# 通过 bot.call_api(api_name, **kwargs) 的方法调用 API
result = await bot.call_api("get_user_info", user_id=12345678)
注意
实际可以使用的 API 以及参数取决于平台提供的接口以及协议适配器的实现,KiramiBot 使用 OneBotV11 协议,支持的 API 可以参考 OneBotV11 API。