Files
AstrBot/docs/zh/platform/lark.md
Weilong Liao aace90daab feat: supports scan QR code to configure feishu / lark (#8191)
* feat(lark): implement app registration and bot info retrieval

- Add app registration functionality for Lark and Feishu platforms, including endpoints and request handling.
- Introduce polling mechanism for app registration status.
- Create bot info retrieval functionality to fetch bot details after successful registration.
- Enhance dashboard with new UI components for one-click QR setup and manual setup options.
- Update internationalization files to support new features and actions.
- Add unit tests for app registration endpoint resolution and data handling.

* feat(weixin_oc): add WeChat login registration and QR code handling
2026-05-15 13:00:26 +08:00

152 lines
6.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 接入飞书
## 支持的基本消息类型
> 版本 v4.15.0。
| 消息类型 | 是否支持接收 | 是否支持发送 | 备注 |
| --- | --- | --- | --- |
| 文本 | 是 | 是 | |
| 图片 | 是 | 是 | |
| 语音 | 否 | 是 | |
| 视频 | 否 | 是 | |
| 文件 | 否 | 是 | |
主动消息推送:支持。
流式输出:支持。需要在飞书开发者后台为应用开通 `创建与更新卡片(cardkit:card:write)` 权限。
飞书客户端版本需 >= 7.20。低版本客户端将只显示标题和升级提示。
## 创建机器人
飞书Lark支持两种创建方式在 AstrBot 中扫码一键创建,或在飞书开发者后台手动创建企业自建应用。
### 方式一:扫码一键创建
需要版本 >4.25.0。
进入 AstrBot 管理面板,点击左边栏 `机器人`,然后点击 `+ 创建机器人`,选择 `lark(飞书)`
`选择创建方式` 中选择 `扫码一键创建`按需选择国内版或海外版然后使用手机飞书扫描页面中的二维码并确认。创建成功后AstrBot 会自动写入该应用的 `app_id``app_secret` 和域名配置。
> [!IMPORTANT]
> 通过扫码方式创建后,群聊下默认仅会接收 @ 机器人和通过唤醒前缀(例如 `/`)触发的消息。如果你希望机器人接收群聊中的所有消息,需要前往飞书开发者后台为应用开通额外权限。
>
> 可以将下面链接中的 `<APP_ID>` 替换为你的飞书应用 App ID 后打开,一键进入权限开通页:
>
> App ID 获取方式:回到 AstrBot 的 `机器人` 页,找到刚刚创建的飞书机器人,点击 `编辑`,弹出的对话框中可以看到 App ID。
>
> ```text
> https://open.feishu.cn/app/<APP_ID>/auth?q=contact:contact.base:readonly,im:message.p2p_msg:readonly,im:message.group_at_msg:readonly,im:message:send,im:message,im:message:send_as_bot,im:resource:upload,im:resource,cardkit:card:write,im:message.group_at_msg:readonly,im:message.group_msg&op_from=openapi&token_type=tenant
> ```
扫码创建完成后,建议继续检查后文的事件订阅、权限、版本发布和拉入群组步骤。
### 方式二:手动创建
前往 [开发者后台](https://open.feishu.cn/app) ,创建企业自建应用。
![创建企业自建应用](https://files.astrbot.app/docs/source/images/lark/image.png)
添加应用能力——机器人。
![添加应用能力](https://files.astrbot.app/docs/source/images/lark/image-1.png)
点击凭证与基础信息,获取 app_id 和 app_secret。
![获取 app_id 和 app_secret](https://files.astrbot.app/docs/source/images/lark/image-4.png)
## 配置 AstrBot
1. 进入 AstrBot 的管理面板
2. 点击左边栏 `机器人`
3. 然后在右边的界面中,点击 `+ 创建机器人`
4. 选择 `lark(飞书)`
5. 如果使用扫码一键创建,选择 `扫码一键创建` 并完成扫码;如果使用自己创建的企业自建应用,选择 `手动创建`
弹出的配置项填写:
- ID(id):随意填写,用于区分不同的消息平台实例。
- 启用(enable): 勾选。
- app_id: 获取的 app_id
- app_secret: 获取的 app_secret
对于 domain如果您使用国内版飞书保持默认即可如果您正在用国际版飞书请设置为 `https://open.larksuite.com`;如果您使用企业自部署飞书,请填写您的飞书实例的域名。
对于订阅方式,`socket` 代表使用「长连接」订阅方式,`webhook` 代表「将事件发送至开发者服务器」的订阅方式,后者需要您拥有公网服务器。一般来说使用 `socket` 即可,如果您使用国际版飞书或者企业自部署飞书,请选择 `webhook`。相应地,接下来的配置也会有所不同。
如果您选择了 `webhook` 方式,选择了之后,前往飞书的开发者后台,点击事件与回调,点击加密策略,填写 Encrypt Key。这不是必须的AstrBot 十分注重你的数据安全,所以请务必填写。填写后复制 `Encrypt Key``Verification Token` 到 AstrBot 配置的 `encrypt_key``verification_token` 处。
点击 `保存`
## 设置回调和权限
对于上面选择的订阅方式,接下来的步骤有所不同,请你根据实际选择的方式,跳转到对应的章节。
### `socket` 长连接方式
接下来,点击事件与回调,使用长连接接收事件,点击保存。**如果上一步没有成功启动,那么这里将无法保存。**
![设置事件与回调](https://files.astrbot.app/docs/source/images/lark/image-6.png)
### `webhook` 将事件发送至开发者服务器方式
> [!TIP]
> 为了更好地使用这种方式,请先参考 [统一 Webhook 模式](/use/unified-webhook.html) 做好相关配置。
在点击 `保存` 后,机器人卡片会显示「查看 Webhook 链接」,点击查看,复制回调 URL。
![](https://files.astrbot.app/docs/source/images/lark/webhook.png)
接下来,回到飞书的事件与回调页,点击「事件配置」,选择「将事件发送至开发者服务器」,将“请求地址”填写为刚刚复制的回调 URL点击保存。如果一切无误将不会报错。
### 设置事件
上一步事件配置完成后,点击添加事件,消息与群组,下拉找到 `接收消息`,添加。
![添加事件](https://files.astrbot.app/docs/source/images/lark/image-7.png)
点击开通以下权限。
![开通权限](https://files.astrbot.app/docs/source/images/lark/image-8.png)
再点击上面的`保存`按钮。
接下来,点击权限管理,点击开通权限,输入 `im:message,im:message:send_as_bot`。添加筛选到的权限。
再次输入 `im:resource:upload,im:resource` 开通上传图片相关的权限。
如果需要在群聊里使用,请额外开通 `im:message.group_at_msg:readonly``im:message.group_msg` 权限。
> [!TIP]
> 扫码一键创建的应用默认适合 @ 机器人和唤醒前缀触发。如果要接收群聊所有消息,请确认已经开通 `im:message.group_msg`。你也可以使用上文提供的权限开通链接快速进入对应页面。
如果需要使用流式输出,请额外开通 `创建与更新卡片(cardkit:card:write)` 权限。
最终开通的权限如下图:
![最终开通的权限](https://files.astrbot.app/docs/source/images/lark/image-11.png)
## 创建版本
创建版本。
![创建版本](https://files.astrbot.app/docs/source/images/lark/image-2.png)
填写版本号,更新说明,可见范围后点击保存,确认发布。
## 拉入机器人到群组
进入飞书 APP网页版飞书无法添加机器人点进群聊点击右上角按钮->群机器人->添加机器人。
搜索刚刚创建的机器人的名字。比如教程创建了 `AstrBot` 机器人:
![添加机器人](https://files.astrbot.app/docs/source/images/lark/image-9.png)
## 🎉 大功告成
在群内发送一个 `/help` 指令,机器人将做出响应。
![成功](https://files.astrbot.app/docs/source/images/lark/image-13.png)