接人 Sentry 机器人
不区分项目平台, 配置一致
1.打开飞书客户端
2.点击 + 按钮,选择创建群组
3.创建群组,填写群名称,点击创建
4.打开对话框,点击 ⚙ 按钮
5.选择添加机器人
6.搜索 Sentry,并添加
7.添加后在群里 @Sentry助手,发送后,并点击 创建配置
8.点击复制按钮,并点击保存 webhook
9.选择项目
10.选择刚刚创建的项目,点击进入
11.进入项目设置页面
12.进入 webhook 设置页面
13.把飞书提供 webhook 地址 的填上,点击 Save Changes,然后点击测试插件,飞书会发送一条信息
14.飞书会推送一条信息,配置完成!!!
配置自定义消息模板
:::tip
由于默认飞书的 Sentry机器人 信息不清晰,可以使用 飞书捷径 + 自定义机器人 两种机器人来实现自定义消息模板
:::
上面 1-5 步一样
1.添加机器人,自行修改机器人名称、描述,下一步
2.拿到 webhook地址,安全配置自行选择
3.搜索 飞书捷径,并添加
4.找到 飞书捷径 机器人,点开 打开应用
5.创建飞书捷径,点击 选择触发器,选择 webhook
6.webhook地址 记录下来,添加在上面第 13 步的配置中,参数中填写下面数据(不需要改修改直接粘贴上去),点击确认完成配置
{"id": "2","project": "项目名","project_name": "项目名","url": "sentry错误详情链接","event": {"release": "版本号","environment": "英文环境名","extra": {"date": "日期","environment": "中文环境名","hash": "路由","origin": "域名","errTitle": "域名","errType": "request|try","request": {"message": "","url": "","method": "","status": 1,"body": {},"bodyText": "","data": {},"dataText": "","headers": {}},"scid": "scid","search": "域名参数"},"title": "错误信息","id": "1"}}
7.点击下面按钮进行分支判断
8.设置两个条件,注意第二个选择项目的区别
| 第一个条件配置 | 第二个条件配置 |
|---|---|
![]() |
![]() |
9.点击选择操作,选择 webhook 应用
10.配置设置选项
:::tip
请求方式: POST
URL: 为自定义机器人的 webhook 地址
数据类型: application/json
Data: 飞书消息卡片模板格式(具体说明点击 👆 链接)
Data 变量参数为上面 第6步 的数据格式
:::
:::danger
下面两个数据格式中 <event.xxx.xxx> 为选择的变量数据。
条件判断为 第8部 添加的值
:::
接口错误效果图
脚本错误效果图

- 接口报错数据格式
条件为: event.extra.errType(文本)等于 request
{"msg_type": "interactive","update_multi": true,"card": {"config": { "wide_screen_mode": true },"elements": [{ "tag": "markdown", "content": "**时间:** <event.extra.date>" },{ "tag": "markdown", "content": "**SCID:** <event.extra.scid>" },{ "tag": "markdown", "content": "**环境:** <event.extra.environment>" },{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**路由:**\n <event.extra.hash>" } }] },{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**域名:**\n <event.extra.origin>" } }] },{ "tag": "hr" },{ "tag": "markdown", "content": "**接口地址:**\n <event.extra.request.url>" },{"tag": "div","fields": [{ "is_short": true, "text": { "tag": "lark_md", "content": "**请求类型:**\n <event.extra.request.method>" } },{ "is_short": true, "text": { "tag": "lark_md", "content": "**状态码:**\n <event.extra.request.status>" } }]},{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**请求体:**\n <event.extra.request.bodyText>" } }] },{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**响应数据:**\n <event.extra.request.dataText>" } }] },{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**错误信息:**\n <event.title>" } }] },{ "tag": "action", "actions": [{ "tag": "button", "text": { "tag": "plain_text", "content": "查看详情" }, "url": "<event.url>", "type": "danger" }] },{ "tag": "hr" },{ "elements": [{ "content": "[来自Sentry](<event.url>)", "tag": "lark_md" }], "tag": "note" }],"header": { "template": "red", "title": { "content": "<event.extra.errTitle>", "tag": "plain_text" } }}}
- 脚本报错数据格式
条件为: event.extra.errType(文本)不包含 request
{"msg_type": "interactive","update_multi": true,"card": {"config": { "wide_screen_mode": true },"elements": [{ "tag": "markdown", "content": "**时间:** <event.extra.date>" },{ "tag": "markdown", "content": "**SCID:** <event.extra.scid>" },{ "tag": "markdown", "content": "**环境:** <event.extra.environment>" },{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**路由:**\n <event.extra.hash>" } }] },{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**域名:**\n <event.extra.origin>" } }] },{ "tag": "div", "fields": [{ "is_short": false, "text": { "tag": "lark_md", "content": "**错误信息:**\n <event.title>" } }] },{ "tag": "action", "actions": [{ "tag": "button", "text": { "tag": "plain_text", "content": "查看详情" }, "url": "<event.url>", "type": "danger" }] },{ "tag": "hr" },{ "elements": [{ "content": "[来自Sentry](<event.url>)", "tag": "lark_md" }], "tag": "note" }],"header": { "template": "red", "title": { "content": "<event.extra.errTitle>", "tag": "plain_text" } }}}


