mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-12-18 09:25:46 +08:00
📝 add register adapter doc
This commit is contained in:
parent
3b1dd6d5db
commit
7690f0e640
93
website/docs/guide/tutorial/register-adapter.md
Normal file
93
website/docs/guide/tutorial/register-adapter.md
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 6
|
||||||
|
description: 协议适配器的功能与使用
|
||||||
|
|
||||||
|
options:
|
||||||
|
menu:
|
||||||
|
weight: 26
|
||||||
|
category: guide
|
||||||
|
---
|
||||||
|
|
||||||
|
# 使用适配器
|
||||||
|
|
||||||
|
:::tip 提示
|
||||||
|
如何**安装**协议适配器请参考 [安装协议适配器](../start/install-adapter.md)
|
||||||
|
:::
|
||||||
|
|
||||||
|
## 协议适配器的功能
|
||||||
|
|
||||||
|
由于 NoneBot 的跨平台特性,需要支持不同的协议,因此需要对特定的平台协议编写一个转换器。
|
||||||
|
|
||||||
|
协议适配器即是充当中间人的转换器,它将驱动器所收到的数据转换为可以被 NoneBot 处理的事件 Event,并将事件传递给 NoneBot。
|
||||||
|
|
||||||
|
同时,协议适配器还会处理 API 调用,转换为可以被驱动器处理的数据发送出去。
|
||||||
|
|
||||||
|
## 注册协议适配器
|
||||||
|
|
||||||
|
NoneBot 在默认情况下并不会加载任何协议适配器,需要自己手动注册。下方是个加载协议适配器的例子:
|
||||||
|
|
||||||
|
```python title=bot.py
|
||||||
|
import nonebot
|
||||||
|
from your_adapter_package import Adapter
|
||||||
|
|
||||||
|
nonebot.init()
|
||||||
|
driver = nonebot.get_driver()
|
||||||
|
driver.register_adapter(Adapter)
|
||||||
|
|
||||||
|
nonebot.run()
|
||||||
|
```
|
||||||
|
|
||||||
|
加载步骤如下:
|
||||||
|
|
||||||
|
### 导入协议适配器
|
||||||
|
|
||||||
|
首先从你需要的协议适配器的包中导入适配器类,通常为 `Adapter`
|
||||||
|
|
||||||
|
```python title=bot.py {2}
|
||||||
|
import nonebot
|
||||||
|
from your_adapter_package import Adapter
|
||||||
|
|
||||||
|
nonebot.init()
|
||||||
|
driver = nonebot.get_driver()
|
||||||
|
driver.register_adapter(Adapter)
|
||||||
|
|
||||||
|
nonebot.run()
|
||||||
|
```
|
||||||
|
|
||||||
|
### 获得驱动器实例
|
||||||
|
|
||||||
|
加载协议适配器需要通过驱动器来进行,因此,你需要先初始化 NoneBot,并获得驱动器实例。
|
||||||
|
|
||||||
|
```python title=bot.py {4,5}
|
||||||
|
import nonebot
|
||||||
|
from your_adapter_package import Adapter
|
||||||
|
|
||||||
|
nonebot.init()
|
||||||
|
driver = nonebot.get_driver()
|
||||||
|
driver.register_adapter(Adapter)
|
||||||
|
|
||||||
|
nonebot.run()
|
||||||
|
```
|
||||||
|
|
||||||
|
### 注册
|
||||||
|
|
||||||
|
获得驱动器实例后,你需要调用 `register_adapter` 方法来注册协议适配器。NoneBot 会通过协议适配器的 `get_name` 方法来获得协议适配器的名字。
|
||||||
|
|
||||||
|
:::warning 注意
|
||||||
|
你可以多次调用来注册多个协议适配器,但不能注册多次相同的协议适配器,发生这种情况时 NoneBot 会给出一个警告并忽略这次注册。
|
||||||
|
:::
|
||||||
|
|
||||||
|
```python title=bot.py {6}
|
||||||
|
import nonebot
|
||||||
|
from your_adapter_package import Adapter
|
||||||
|
|
||||||
|
nonebot.init()
|
||||||
|
driver = nonebot.get_driver()
|
||||||
|
driver.register_adapter(Adapter)
|
||||||
|
|
||||||
|
nonebot.run()
|
||||||
|
```
|
||||||
|
|
||||||
|
:::danger 警告
|
||||||
|
协议适配器需要在 NoneBot 启动前进行注册,即 `nonebot.run()` 之前,否则会出现未知的错误。
|
||||||
|
:::
|
Loading…
Reference in New Issue
Block a user