Springboot整合钉钉SDK并调用钉钉API

Springboot整合并调用钉钉SDK

在做企业内部考勤的时候需要调取钉钉的打卡和考勤信息,这里写一下调用的测试方法

首先是官方的文档连接 - >

https://developers.dingtalk.com/document/app/server-api-overview

获取钉钉的APP_KEY

public static String APP_KEY = "企业申请的KRY";

获取钉钉的APP_SECRET

public static String APP_SECRET = "企业申请的秘钥";

拿到上面的内容使我们就可以去看API进行接口调用

当然 , 前提是要先下载并配置好钉钉的maven或者下载jar

我们就先以钉钉提供的获取指定日期用户考勤数据为例子

首先 要通过上面两个变量获取钉钉的Token认证

/**
     * 不通过redis的方式获取 钉钉的token认证
     *
     * @author NEON
     * @date 2021/5/26 19:17
     */
    public static String getAccessToken(){
        String token = null;
        try {
            DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
            OapiGettokenRequest request = new OapiGettokenRequest();
            request.setAppkey(APP_KEY);
            request.setAppsecret(APP_SECRET);
            request.setHttpMethod("GET");
            OapiGettokenResponse response = client.execute(request);
            token = response.getAccessToken();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return token;
    }

直接封装成Util类

然后 , 我们通过文档提供的案例调用方法

/**
     * @description -> 获取指定日期用户考勤数据
     * @author NEON
     * @date 2021/5/26 10:54
     */
    public static String getUserAttendanceDetails() throws ApiException {
        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/attendance/getupdatedata");
        OapiAttendanceGetupdatedataRequest req = new OapiAttendanceGetupdatedataRequest();
        req.setUserid("你要传入的钉钉ID");
        req.setWorkDate(StringUtils.parseDateTime("2021-04-07 09:00:00"));
        OapiAttendanceGetupdatedataResponse rsp = client.execute(req, getAccessToken());
        System.out.println(rsp.getBody());
        return rsp.getBody();
    }

然后我们查看获取的结果

{
    "errcode": 0,
    "result": {
        "approve_list": [],
        "attendance_result_list": [{
            "check_type": "OffDuty",
            "class_id": 11111111,
            "group_id": 11111111,
            "location_method": "MAP",
            "location_result": "Normal",
            "plan_check_time": "2021-04-07 18:00:00",
            "plan_id": 11111111,
            "record_id": 11111111,
            "source_type": "USER",
            "time_result": "Normal",
            "user_address": "网络科技有限公司",
            "user_check_time": "2021-04-07 22:40:46"
        }, {
            "check_type": "OnDuty",
            "class_id": 11111111,
            "group_id": 11111111,
            "location_method": "MAP",
            "location_result": "Normal",
            "plan_check_time": "2021-04-07 09:00:00",
            "plan_id": 11111111,
            "record_id": 11111111,
            "source_type": "AUTO_CHECK",
            "time_result": "Normal",
            "user_address": "网络科技有限公司",
            "user_check_time": "2021-04-07 08:53:05"
        }],
        "check_record_list": [{
            "base_accuracy": "0.0",
            "base_address": "网络科技有限公司",
            "record_id": 11111111,
            "source_type": "USER",
            "user_accuracy": "11111111.0",
            "user_check_time": "2021-04-07 22:40:46",
            "user_latitude": "11111111.11111111",
            "user_longitude": "11111111.11111111",
            "valid_matched": true
        }, {
            "base_accuracy": "0.0",
            "base_address": "网络科技有限公司",
            "record_id": 11111111,
            "source_type": "AUTO_CHECK",
            "user_accuracy": "11111111.0",
            "user_check_time": "2021-04-07 08:53:05",
            "user_latitude": "11111111.11111111",
            "user_longitude": "11111111.11111111",
            "valid_matched": true
        }],
        "class_setting_info": {
            "rest_time_vo_list": [{
                "rest_begin_time": 11111111,
                "rest_end_time": 11111111
            }]
        },
        "corpId": "11111111",
        "userid": "11111111",
        "work_date": "2021-04-07 09:00:00"
    },
    "success": true,
    "request_id": "11111111"
}

可以看到其实Java调用钉钉API接口是非常方便的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容