5.22 飞书自建应用创建机器人 其二 创建应用 冲刺第八天
接上文
1.点事件与回调
2.点
3.订阅方式选择将事件发送到服务器:
4.填写一个有效可返回的接口,飞书会向该接口发送消息,3秒内无回应则判断连接错误
(注意
每个应用只能配置一个请求地址,该应用订阅的所有事件都会发送到该请求地址。
该请求地址必须是 IPv4 公网地址。点击保存后,飞书服务器会向请求地址推送一个 application/json;charset=utf-8 格式的 POST 请求,用于验证所配置的请求地址的合法性。该 POST 请求中会携带一个 challenge 字段,应用需要在 1 秒内,将接收到的 challenge 值原样返回给飞书开放平台,否则,平台将报“Challenge code 没有返回”的错误)
5.后端要求:
1.引入maven坐标
`
2.启动类中将扩展实例注入到ioc容器:
@Bean
public ServletAdapter getServletAdapter() {
return new ServletAdapter();
}
3.重写这个类:
import com.lark.oapi.core.utils.Jsons;
import com.lark.oapi.event.EventDispatcher;
import com.lark.oapi.service.contact.v3.ContactService;
import com.lark.oapi.service.contact.v3.model.P2UserCreatedV3;
import com.lark.oapi.service.im.v1.ImService;
import com.lark.oapi.service.im.v1.model.P1MessageReadV1;
import com.lark.oapi.service.im.v1.model.P2MessageReadV1;
import com.lark.oapi.service.im.v1.model.P2MessageReceiveV1;
import com.lark.oapi.sdk.servlet.ext.ServletAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class EventController {
//1. 注册消息处理器
private final EventDispatcher EVENT_DISPATCHER = EventDispatcher.newBuilder("verificationToken",
"encryptKey")
.onP2MessageReceiveV1(new ImService.P2MessageReceiveV1Handler() {
@Override
public void handle(P2MessageReceiveV1 event) {
System.out.println(Jsons.DEFAULT.toJson(event));
System.out.println(event.getRequestId());
}
}).onCustomizedEvent("这里填入你要自定义订阅的 event 的 key,例如 out_approval", new CustomEventHandler() {
@Override
public void handle(EventReq event) {
System.out.println("body:" + new String(event.getBody()));
System.out.println("plain:" + event.getPlain());
}
})
.build();
//2. 注入 ServletAdapter 实例
@Autowired
private ServletAdapter servletAdapter;
//3. 创建路由处理器
@RequestMapping("/webhook/event")
public void event(HttpServletRequest request, HttpServletResponse response)
throws Throwable {
//3.1 回调扩展包提供的事件回调处理器
servletAdapter.handleEvent(request, response, EVENT_DISPATCHER);
}
}
4今日计划工作
开发返厂管理、调拨记录、报废记录三个模块基础接口
实现备件调拨审核 / 驳回、报废单据审核 / 驳回流程
开发返厂备件修复确认、直接报废业务逻辑
今日完成内容
返厂单据新增、厂家信息关联查询、修复结果确认接口完成
备件调拨(原库位→新库位)、报废申请单审核驳回全套接口开发
所有流转单据操作日志统一入库,记录操作人员与时间
遇到困难
备件调拨、报废、返厂操作后,库存数据同步更新易出现数据不一致
解决方案
库存更新加事务控制,所有单据审核通过后统一更新库存台账,事务失败自动回滚库存数据

浙公网安备 33010602011771号