# 飞书机器人使用指南
基于飞书开放平台事件回调与 API 进行机器人适配,目前仅适配企业自建应用。
# 安装 NoneBot 飞书 适配器
pip install nonebot-adapter-feishu
1
# 创建应用与启用应用“机器人”能力
TIP
此部分可参考飞书开放平台-快速开发机器人-创建应用 (opens new window)部分的文档。
# 开启应用权限
应用拥有所需权限后,才能调用飞书接口获取相关信息。如果需要用到所有飞书平台的 API,请开启所有应用权限。
在仅群聊功能的情况下,需要为应用开启用户、消息、通讯录和群聊权限组所有权限。
# 配置飞书事件订阅
TIP
在添加事件订阅时请注意,带有**(历史版本)字样的事件的格式为不受支持的旧版事件格式**,请使用对应的新版事件(不带历史版本字样)作为替代。
目前,飞书适配器支持以下事件:
事件名称 | 事件描述 |
---|---|
接收消息 | 机器人接收到用户发送的消息。 |
消息已读 | 用户阅读机器人发送的单聊消息。 |
群解散 | 群组被解散。 |
群配置更改 | 群组配置被修改后触发此事件,包含:群主转移、群基本信息修改、群权限修改。 |
机器人进群 | 机器人被添加至群聊。 |
机器人被移出群 | 机器人被移出群聊。 |
用户进群 | 新用户进群。 |
撤销拉用户进群 | 撤销拉用户进群。 |
用户被移出群 | 用户主动退群或被移出群聊。 |
# 在 NoneBot 配置中添加相应配置
在 .env
文件中添加以下配置
APP_ID=<yourAppId>
APP_SECRET=<yourAppSecret>
VERIFICATION_TOKEN=<yourVerificationToken>
1
2
3
2
3
复制所创建应用**“凭证和基础信息”**中的 App ID 、 App Secret 和 “事件订阅” 中的 Verification Token ,替换上面相应的配置的值。
此外,对于飞书平台的事件订阅加密机制,飞书适配器也提供 ENCRYPT_KEY
配置项。
ENCRYPT_KEY=<yourEncryptKey>
1
当此项不为空时,飞书适配器会认为用户启用了加密机制,并对事件上报中的密文进行解密。
对于Lark(飞书平台海外版) (opens new window) 的用户,飞书适配器也提供实验性支持,仅需要在配置文件中添加 IS_LARK=true
即可。
IS_LARK=true
1
# 注册飞书适配器
在 bot.py
中添加:
from nonebot.adapters.feishu import Bot as FeishuBot
driver.register_adapter("feishu", FeishuBot)
1
2
3
2
3
# 编写一个适用于飞书适配器的插件并加载
插件代码范例:
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)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
以上代码注册了一个对飞书平台适用的say
指令,并会提取/say
之后的内容发送到事件所对应的群或私聊。
大功告成!现在可以试试向机器人发送类似/say Hello, Feishu!
的消息进行测试了。