Springboot 集成 飞书群消息
前情概要
公司项目想要加入一个系统错误推送功能,方便线上项目运维,可选择的消息通知渠道很多,比如邮箱、短信、微信、飞书等等,但是邮箱每天有发送数量上限,而且还有其他必须要使用邮箱发送的功能,所以为了不影响必要功能的运行,邮箱不可取,短信需要收费,微信……好吧,微信不是公司的主要使用工具,所以选来选去最后选中了飞书。
执行步骤
1、添加飞书企业应用
第一步
创建企业自建应用
飞书开放平台 → 管理员后台 → 创建应用 → 类型选“企业自建”。
第二步
添加“机器人”能力
应用详情 → 添加能力 → 勾选“机器人”→ 保存。
第三步
获取凭证信息(App Id和App Secret)
基础信息-凭证与技术信息-凭证应用
第四步
配置机器人
在 PC 端把该机器人拉进群 → 群设置 → 群机器人 → 点击机器人 → 复制 “Webhook 地址”
2、java配置
### 将上一步复制的信息配置到 .yaml文件中
feishu:appId: ***appSecret: ***errorWebhook: ***
3、调用
public boolean sendNotification(Throwable throwable, ErrorContext context) {if (!isAvailable()) {return false;}try {String content = buildContent(throwable, context);Map<String, Object> contentMap = new HashMap<>();contentMap.put("text", content);Map<String, Object> body = new HashMap<>();body.put("msg_type", "text");body.put("content", contentMap);restTemplate.postForObject(webhookUrl, body, String.class);log.info("Successfully sent error notification via Feishu");return true;} catch (Exception e) {log.error("Error sending notification via Feishu channel", e);return false;}}
遇见的问题
- 发送消息报403
原因:群里没有机器人
解决方案:拉机器人进群 - 部分ip调用报报错
原因:公司开了“IP 白名单”
解决方案:把服务器出口 IP 填到应用后台“安全设置-IP 白名单”。