mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-11-04 00:46:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 飞书机器人使用指南
 | 
						||
 | 
						||
基于飞书开放平台事件回调与 API 进行机器人适配,目前仅适配企业自建应用。
 | 
						||
 | 
						||
## 安装 NoneBot 飞书 适配器
 | 
						||
 | 
						||
```bash
 | 
						||
pip install nonebot-adapter-feishu
 | 
						||
```
 | 
						||
 | 
						||
## 创建应用与启用应用“机器人”能力
 | 
						||
 | 
						||
::: tip
 | 
						||
此部分可参考[飞书开放平台-快速开发机器人-创建应用](https://open.feishu.cn/document/home/develop-a-bot-in-5-minutes/create-an-app)部分的文档。
 | 
						||
 | 
						||
:::
 | 
						||
 | 
						||
## 开启应用权限
 | 
						||
 | 
						||
应用拥有所需权限后,才能调用飞书接口获取相关信息。如果需要用到所有飞书平台的 API,请开启所有应用权限。
 | 
						||
 | 
						||
在仅群聊功能的情况下,需要为应用开启用户、消息、通讯录和群聊权限组所有权限。
 | 
						||
 | 
						||
## 配置飞书事件订阅
 | 
						||
 | 
						||
::: tip
 | 
						||
 | 
						||
在添加事件订阅时请注意,带有**(历史版本)**字样的事件的格式为**不受支持的旧版事件格式**,请使用对应的**新版事件(不带历史版本字样)作为替代**。
 | 
						||
 | 
						||
:::
 | 
						||
 | 
						||
目前,飞书适配器支持以下事件:
 | 
						||
| 事件名称 | 事件描述|
 | 
						||
| ---- | ---- |
 | 
						||
|接收消息|机器人接收到用户发送的消息。|
 | 
						||
|消息已读|用户阅读机器人发送的单聊消息。|
 | 
						||
|群解散|群组被解散。|
 | 
						||
|群配置更改|群组配置被修改后触发此事件,包含:群主转移、群基本信息修改、群权限修改。|
 | 
						||
|机器人进群|机器人被添加至群聊。|
 | 
						||
|机器人被移出群|机器人被移出群聊。|
 | 
						||
|用户进群|新用户进群。|
 | 
						||
|撤销拉用户进群|撤销拉用户进群。|
 | 
						||
|用户被移出群|用户主动退群或被移出群聊。|
 | 
						||
 | 
						||
## 在 NoneBot 配置中添加相应配置
 | 
						||
 | 
						||
在 `.env` 文件中添加以下配置
 | 
						||
 | 
						||
```
 | 
						||
APP_ID=<yourAppId>
 | 
						||
APP_SECRET=<yourAppSecret>
 | 
						||
VERIFICATION_TOKEN=<yourVerificationToken>
 | 
						||
```
 | 
						||
 | 
						||
复制所创建应用**“凭证和基础信息”**中的 **App ID** 、 **App Secret** 和 **“事件订阅”** 中的 **Verification Token** ,替换上面相应的配置的值。
 | 
						||
 | 
						||
此外,对于飞书平台的事件订阅加密机制,飞书适配器也提供 `ENCRYPT_KEY` 配置项。
 | 
						||
 | 
						||
```
 | 
						||
ENCRYPT_KEY=<yourEncryptKey>
 | 
						||
```
 | 
						||
 | 
						||
当此项不为空时,飞书适配器会认为用户启用了加密机制,并对事件上报中的密文进行解密。
 | 
						||
 | 
						||
对于[Lark(飞书平台海外版)](https://www.larksuite.com) 的用户,飞书适配器也提供**实验性**支持,仅需要在配置文件中添加 `IS_LARK=true` 即可。
 | 
						||
 | 
						||
```
 | 
						||
IS_LARK=true
 | 
						||
```
 | 
						||
 | 
						||
## 注册飞书适配器
 | 
						||
 | 
						||
在 `bot.py` 中添加:
 | 
						||
 | 
						||
```python
 | 
						||
from nonebot.adapters.feishu import Bot as FeishuBot
 | 
						||
 | 
						||
driver.register_adapter("feishu", FeishuBot)
 | 
						||
```
 | 
						||
 | 
						||
## 编写一个适用于飞书适配器的插件并加载
 | 
						||
 | 
						||
插件代码范例:
 | 
						||
 | 
						||
```python
 | 
						||
from nonebot.plugin import on_command
 | 
						||
from nonebot.typing import T_State
 | 
						||
from nonebot.adapters.feishu import Bot as FeishuBot, MessageEvent
 | 
						||
 | 
						||
helper = on_command("say")
 | 
						||
 | 
						||
 | 
						||
@helper.handle()
 | 
						||
async def feishu_helper(bot: FeishuBot, event: MessageEvent, state: T_State):
 | 
						||
    message = event.get_message()
 | 
						||
    await helper.finish(message, at_sender=True)
 | 
						||
```
 | 
						||
 | 
						||
以上代码注册了一个对飞书平台适用的`say`指令,并会提取`/say`之后的内容发送到事件所对应的群或私聊。
 | 
						||
 | 
						||
大功告成!现在可以试试向机器人发送类似`/say Hello, Feishu!`的消息进行测试了。
 | 
						||
 |