网站支付界面怎么做,用什么自己做网站,网络系统软件应用与维护,网站子目录是什么钉钉之前的accessToken是公司级别的#xff0c;现在的accessToken是基于应用的#xff0c;接口的权限也是基于应用的。所以第一步是在钉钉开放平台#xff08;https://open-dev.dingtalk.com/#xff09;创建一个应用。 创建好应用之后#xff0c;因为我们后续还需要调用钉…钉钉之前的accessToken是公司级别的现在的accessToken是基于应用的接口的权限也是基于应用的。所以第一步是在钉钉开放平台https://open-dev.dingtalk.com/创建一个应用。 创建好应用之后因为我们后续还需要调用钉钉不少服务端api这些api都要求这个应用被授予了相应的权限所以我们先给当前这个应用授予足够多的权限全部都勾上。 在进行事件订阅之前需要完成代码接入才会展示事件列表所以现在转到事件订阅的文档先进行代码接入https://open.dingtalk.com/document/orgapp/develop-stream-mode-push-server
这块参考官方文档就行了。 Stream模式支持多个应用多个实例同时监听Stream事件会被随机平均投递到任意一个应用中。
接入成功之后回到上面创建的应用点击事件订阅菜单
选择Stream模式推送再点“已完成接入验证连接通道”
验证成功之后下面的事件就会展示出来
如果只需要监听考勤相关的事件经过我的验证只需要监听下面2个事件就行
员工打卡的触发场景包括员工上下班打卡补卡申请通过坑如果当天无排班不会触发这个事件。无排班的场景1.对于固定上下班钉钉默认只会初始化未来15天的排班超过15天都是休息这点可参考钉钉APP的考勤日历。这样就会导致。2. 节假日即节假日的补卡不会触发这个事件需要再去监听审批完成事件。以上内容都是开发过程中发现问题之后提工单给钉钉的开发人员得到的回复不是杜撰的。 因为钉钉Stream事件返回的数据结构与考勤接口返回的数据不一致如果需要更多的信息需要对接钉钉考勤相关的接口。
所以我目前对于这块的设计是这样的
接收到打卡事件之后拿到userId和打卡时间拿这2个参数再去查询考勤详情数据https://open.dingtalk.com/document/orgapp/obtain-the-attendance-update-data相当于Stream事件只作为我去钉钉拉取数据的一个触发器请假、加班、出差、外出事件也是一个意思拿到请假时间范围之后去查询这段时间的考勤数据
如果发现有些请假类型的数据没有收到推送或者通过https://open.dingtalk.com/document/orgapp/queries-the-column-value-of-the-attendance-report 查到某个字段的value是null需要检查以下配置 把带薪年休假啥的都加进来 消息推送失败的处理方案
钉钉默认的推送失败处理方案https://open.dingtalk.com/document/orgapp/obtain-the-event-list-of-failed-push-messages
我们只需要写一个SpringTask任务定时拉取就行
要注意的一点是这个接口的数据需要通过getBody读取
public JSONArray getStreamCallBackFailedResult() {DingTalkClient client new DefaultDingTalkClient(https://oapi.dingtalk.com/call_back/get_call_back_failed_result);OapiCallBackGetCallBackFailedResultRequest req new OapiCallBackGetCallBackFailedResultRequest();req.setHttpMethod(GET);OapiCallBackGetCallBackFailedResultResponse rsp;try {rsp client.execute(req, getAccToken());if (Objects.equals(SUCCESS_CODE, rsp.getErrcode())) {JSONObject body JSON.parseObject(rsp.getBody());return body.getJSONArray(failed_list);}} catch (ApiException e) {log.warn([请求钉钉接口失败]获取推送失败的数据, e);}return null;
}调用量的问题
Stream推送量和付费API调用量都是需要收费的有免费的额度使用的时候需要注意