《钉钉应用开发者速成手册》之“API实战——同步打卡数据”

简介: 本教程指导你如何调用创建一个H5微应用,然后使用这个应用获取用户打卡结果。

准备工作

在开始本教程前,确保你已经完成了以下准备工作:

  • 你已经完成了钉钉开发者的注册与激活并拥有了子管理员和开发者权限。若尚未完成,请参考成为钉钉开发者
  • 已经安装了Java开发环境。若未安装,请访问Oracle官网下载。
  • 已下载并安装了IntelliJ IDEA工具。若未安装,请访问IntelliJ IDEA

创建Java工程并安装钉钉Java SDK

在本部分,你将创建一个Java工程并完成钉钉Java SDK的安装。

  1. 打开IntelliJ IDEA工具。
  2. 单击选择Projects,然后单击New Project
    image.png
  3. 参考下图,选择Maven项目和JDK版本,然后单击Next
    image.png
  4. 输入项目名称,然后单击Finish
    image.png
  5. 单击这里下载钉钉服务端Java SDK。
  6. 解压dingtalk-sdk-java.zip
  7. IntelliJ IDEA工具的顶部菜单栏中,选择File > Project Structure
    image.png
  8. 选择Project Settings > Libraries ,然后依次单击 “+”> Java
    image.png
  9. 选中下载的SDK,然后依次单击OK > Apply完成导入。
    image.png

创建应用

在本部分,你将在开发者后台创建一个H5微应用,并完成基础配置。

  1. 登录钉钉开发者后台

    说明
    只有管理员和子管理员可登录开发者后台。
  2. 开发者后台页面,单击应用开发,然后选择企业内部开发 > 小程序,最后单击创建应用
    image.png
  3. 在弹出的创建应用页面中填写基本信息,然后单击确定创建
  • 应用类型:选择H5微应用
  • 开发方式:选择企业自助开发

image.png

  1. 应用创建完成后,在凭证与基础信息页面,复制应用的AppKeyAppSecret备用。
    image.png
  2. 单击开发管理进入开发管理页面,然后单击修改,并根据以下内容配置开发信息。
  • 开发模式:选择开发应用
  • 服务器出口IP:输入调用钉钉服务端API时使用的IP即企业服务器的公网IP,多个IP请以英文逗号","隔开,支持带一个*号通配符的IP格式。可通过工具进行查看。
    本教程设置为127.0.0.1
  • 应用首页地址:输入应用首页URL,在移动端工作台点击应用图标会跳转到此页面。可输入后端服务部署的服务器的IP或域名。例如:http://公网IP:8080
    本教程设置为https://ding-doc.dingtalk.com/

image.png

  1. 单击权限管理进入权限管理页面,然后根据以下配置添加接口调用权限。
  1. 权限范围选择全部员工,然后单击添加接口权限
  2. 选择考勤权限,单击确认。
    image.png

获取调用凭证

在本部分,你将通过创建的应用的AppKeyAppSecret获取调用钉钉服务端API的调用凭证access_token。

  1. 如下图所示,在项目的src/test/java/目录下新建一个AccessTokenUtil测试类。
    image.png
  2. AccessTokenUtil类中添加以下代码,并运行。
    调用gettoken接口获取服务端API授权凭证access_token
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.request.OapiGettokenRequest;
import com.dingtalk.api.response.OapiGettokenResponse;
import com.taobao.api.ApiException;
public class AccessTokenUtil {
    public static String AppKey = "替换为你应用的AppKey";
    public static String AppSecret = "替换为你应用的AppSecret";
    public static String getToken() throws RuntimeException {
        try {
            DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
            OapiGettokenRequest request = new OapiGettokenRequest();
            request.setAppkey(AppKey);
            request.setAppsecret(AppSecret);
            request.setHttpMethod("GET");
            OapiGettokenResponse response = client.execute(request);
            String accessToken = response.getAccessToken();
            return accessToken;
        } catch (ApiException e) {
            throw new RuntimeException();
        }
    }
    public static void main(String[] args)throws ApiException{
        String accessToken = AccessTokenUtil.getToken();
        System.out.println(accessToken);
    }
}
  1. 调用成功的返回结果类似如下。
efcfb3d7f6aa3abxxx

获取考勤打卡记录

在本部分,你将通过服务端API的调用凭证access_token从钉钉后台获取考勤打卡记录。

  1. 如下图所示,在项目的src/test/java/目录下新建一个AttendanceDemo测试类。
    image.png
  2. AttendanceDemo类中添加以下代码,并运行。
    调用/attendance/list接口,获取企业内员工的实际打卡结果。
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiAttendanceListRequest;
import com.dingtalk.api.response.OapiAttendanceListResponse;
import com.taobao.api.ApiException;
import java.util.Arrays;
public class AttendanceDemo {
    /**
     * 获取考勤打卡记录
     *
     * @param args
     */
    public static void main(String args[]) {
        // 获取服务端接口调用凭证access_token
        String access_token = AccessTokenUtil.getToken();
        try {
            // 通过调用接口获取考勤打卡结果
            DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/attendance/list");
            OapiAttendanceListRequest request = new OapiAttendanceListRequest();
            // 查询考勤打卡记录的起始工作日
            request.setWorkDateFrom("2021-01-12 00:00:00");
            // 查询考勤打卡记录的结束工作日
            request.setWorkDateTo("2021-01-19 00:00:00");
            // 员工在企业内的userid列表,最多不能超过50个。
            request.setUserIdList(Arrays.asList("user123"));
            // 表示获取考勤数据的起始点
            request.setOffset(0L);
            // 表示获取考勤数据的条数,最大不能超过50条。
            request.setLimit(1L);
            OapiAttendanceListResponse response = client.execute(request, access_token);
            System.out.println(response.getBody());
        } catch (ApiException e) {
            e.printStackTrace();
        }
    }
}
  1. 调用成功的返回结果类似如下。
{
    "errcode": 0,
    "recordresult": [
        {
            "checkType": "OnDuty",
            "corpId": "dinge8a56572f80xxxx",
            "locationResult": "Normal",
            "baseCheckTime": 1610380800000,
            "groupId": -1,
            "timeResult": "Normal",
            "userId": "user123",
            "recordId": 54735159894,
            "workDate": 1610380800000,
            "sourceType": "ATM",
            "userCheckTime": 1610380800000,
            "planId": 180485053237,
            "id": 129082
        }
    ],
    "_record": "77964B20FC00",
    "hasMore": false,
    "errmsg": "ok"
}
  1. 此时,你就可以将打卡结果同步到自有的OA系统中了。

恭喜

你已完成本教程的全部内容!

现在你已经拥有一个可以正常运行的钉钉应用。你也可以在其中添加其他功能,参考应用开发了解更多。

相关文章
|
14天前
|
JSON 搜索推荐 API
Lazada Item_review API接口的开发应用与收益
Lazada作为东南亚领先的电商平台,通过其丰富的API接口为第三方开发者提供了强大的工具。其中,Lazada商品评论列表API(item_review API)尤为重要,能够实时获取商品评论数据,帮助开发者了解用户反馈、优化商品策略、提高购物体验和建立品牌形象,从而在电商行业中实现显著的收益。本文将深入探讨该API的开发应用及其多方面的价值。
48 14
|
16天前
|
供应链 搜索推荐 安全
唯品会Vip商品详情 API 接口:开发应用与收益深度剖析
唯品会Vip商品详情API接口,作为电商数据交互的枢纽,提供详尽的商品信息与动态数据,助力开发者、商家及市场分析者洞察市场趋势、优化商品推荐、提升用户体验,从而实现销售额增长、利润空间拓展及用户忠诚度加固,推动电商行业创新发展。
56 16
|
14天前
|
搜索推荐 数据挖掘 API
Suning商品详情API接口的开发应用与收益
在电商迅猛发展的时代,API接口技术成为连接不同系统的桥梁,为电商平台提供高效的数据交换能力。苏宁易购的商品详情API接口,为商家和开发者带来诸多便利和收益,包括商品信息获取、选品上架、竞品分析、个性化推荐、自动化管理和运营效率提升等方面,助力商家优化销售策略,提高用户体验,降低运营成本,增强市场竞争力,促进业务创新。
41 2
|
18天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
42 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
9天前
|
存储 搜索推荐 安全
介绍几个常用的电商API接口及其应用场景。(一篇文章全清楚)
电商API接口是电商平台高效运营的核心技术支撑,涵盖商品管理、订单管理、支付、客户管理、营销推广和数据分析六大模块。商品管理API实现商品信息的精准上传与动态调整;订单管理API确保订单全流程透明可控;支付API保障交易安全便捷;客户管理API通过数据分析提供个性化服务;营销推广API助力精准营销;数据分析API为决策提供数据支持。各API协同工作,推动电商行业创新发展,构建智能便捷的电商生态。
87 12
|
3天前
|
供应链 搜索推荐 API
1688榜单商品详细信息API接口的开发、应用与收益
1688作为全球知名的B2B电商平台,为企业提供丰富的商品信息和交易机会。为满足企业对数据的需求,1688开发了榜单商品详细信息API接口,帮助企业批量获取商品详情,应用于信息采集、校验、同步与数据分析等领域,提升运营效率、优化库存管理、精准推荐、制定市场策略、降低采购成本并提高客户满意度。该接口通过HTTP请求调用,支持多种应用场景,助力企业在电商领域实现可持续发展。
39 4
|
2天前
|
监控 搜索推荐 API
京东按图搜索京东商品(拍立淘)API接口的开发、应用与收益
京东通过开放商品详情API接口,尤其是按图搜索(拍立淘)API,为开发者、企业和商家提供了创新空间和数据支持。该API基于图像识别技术,允许用户上传图片搜索相似商品,提升购物体验和平台竞争力。开发流程包括注册账号、获取密钥、准备图片、调用API并解析结果。应用场景涵盖电商平台优化、竞品分析、个性化推荐等,为企业带来显著收益,如增加销售额、提高利润空间和优化用户体验。未来,随着数字化转型的深入,该API的应用前景将更加广阔。
26 1
|
3天前
|
安全 API 数据安全/隐私保护
速卖通AliExpress商品详情API接口深度解析与实战应用
速卖通(AliExpress)作为全球化电商的重要平台,提供了丰富的商品资源和便捷的购物体验。为了提升用户体验和优化商品管理,速卖通开放了API接口,其中商品详情API尤为关键。本文介绍如何获取API密钥、调用商品详情API接口,并处理API响应数据,帮助开发者和商家高效利用这些工具。通过合理规划API调用策略和确保合法合规使用,开发者可以更好地获取商品信息,优化管理和营销策略。
|
10天前
|
监控 供应链 搜索推荐
阿里妈妈商品详情API接口:开发、应用与收益的深度剖析
阿里妈妈是阿里巴巴旗下的数字营销平台,其商品详情API接口为开发者提供了获取淘宝、天猫等电商平台商品详细信息的工具。本文介绍了该接口的开发流程、应用场景及带来的收益,揭示了其在电商生态中的重要地位。
67 6
|
10天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
63 6

热门文章

最新文章