# 飞书机器人使用指南 基于飞书开放平台事件回调与 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= APP_SECRET= VERIFICATION_TOKEN= ``` 复制所创建应用**“凭证和基础信息”**中的 **App ID** 、 **App Secret** 和 **“事件订阅”** 中的 **Verification Token** ,替换上面相应的配置的值。 此外,对于飞书平台的事件订阅加密机制,飞书适配器也提供 **Encrypt Key** 配置项。 ``` ENCRYPT_KEY= ``` 当此项不为空时,飞书适配器会认为用户启用了加密机制,并对事件上报中的密文进行解密。 对于**Lark(飞书平台海外版)**的用户,飞书适配器也提供实验性支持,仅需要在配置文件中将 **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!`的消息进行测试了。