企业提倡一起运动,用钉钉计步方式督促大家积极锻炼,需要对大家的步数做统计,而钉钉后台只能保存近期一个月的运动数据,所以需要调用钉钉提供的开放API获取运动数据并保存在自己的服务器。

    //获取部门列表    public static List<ht> getDepart() throws Exception{try {//获取当前日期StringCalendar cal = Calendar.getInstance();cal.add(Calendar.DATE,-1);String yesterday = new SimpleDateFormat( "yyyyMMdd").format(cal.getTime());List<ht> htlist=new ArrayList<ht>();CorpHealthStepinfoListbyuseridResponse rsp;CorpHealthStepinfoListbyuseridRequest req = new CorpHealthStepinfoListbyuseridRequest();DingTalkClient client= new DefaultDingTalkClient("https://eco.taobao.com/router/rest");JSONObject forj;JSONObject json;JSONArray jr;//获取access tokenString accessToken = AuthHelper.getAccessToken();// 获取部门列表String parentId = "1";List<Department> list = DepartmentHelper.listDepartments(accessToken, parentId);//log("成功获取部门列表", list);for (int i = 0; i < list.size(); i++) {   CorpUserList userList = UserHelper.getDepartmentUser(AuthHelper.getAccessToken(), list.get(i).getId(), null, null, null);String str= new String();String str1= new String();if(userList.getUserlist().size() <= 50 && userList.getUserlist().size()!=0 )//有部门没人,userlist is null{for(int k=0;k<userList.getUserlist().size();k++){if(k==0){str=userList.getUserlist().get(k).getUserid().toString();}else{str=str+","+userList.getUserlist().get(k).getUserid().toString();}}req.setUserids(str);  //员工userid列表,最多传50个req.setStatDate(yesterday);//时间,注意时间格式是YYMMDDrsp = client.execute(req, accessToken);json= JSONObject.parseObject(rsp.getBody()).getJSONObject("dingtalk_corp_health_stepinfo_listbyuserid_response").getJSONObject("result").getJSONObject("stepinfo_list");jr=json.getJSONArray("basic_step_info_vo");if(jr!=null){for(int z=0;z<jr.size();z++){ht ht=new ht();forj=jr.getJSONObject(z);ht.setDepa(list.get(i).getName().toString());ht.setStat_date(forj.get("stat_date").toString());ht.setStep_count(forj.get("step_count").toString());ht.setUserid(forj.get("userid").toString());htlist.add(ht);}}}else if(userList.getUserlist().size()>50 &&  userList.getUserlist().size()<=100 ){for(int k=0;k<50;k++){if(k==0){str=userList.getUserlist().get(k).getUserid().toString();}else{str=userList.getUserlist().get(k).getUserid().toString()+","+str;}}req.setUserids(str);  //员工userid列表,最多传50个req.setStatDate(yesterday);//时间,注意时间格式是YYMMDDrsp = client.execute(req, accessToken);json= JSONObject.parseObject(rsp.getBody()).getJSONObject("dingtalk_corp_health_stepinfo_listbyuserid_response").getJSONObject("result").getJSONObject("stepinfo_list");jr=json.getJSONArray("basic_step_info_vo");if(jr!=null){for(int z=0;z<jr.size();z++){ht ht=new ht();forj=jr.getJSONObject(z);ht.setDepa(list.get(i).getName().toString());ht.setStat_date(forj.get("stat_date").toString());ht.setStep_count(forj.get("step_count").toString());ht.setUserid(forj.get("userid").toString());htlist.add(ht);}}for(int d=50;d<userList.getUserlist().size();d++){if(d==50){str1=userList.getUserlist().get(d).getUserid().toString();}else {str1=str1+","+userList.getUserlist().get(d).getUserid().toString();}}req.setUserids(str1);  //员工userid列表,最多传50个req.setStatDate(yesterday);//时间,注意时间格式是YYMMDDrsp = client.execute(req, accessToken);json= JSONObject.parseObject(rsp.getBody()).getJSONObject("dingtalk_corp_health_stepinfo_listbyuserid_response").getJSONObject("result").getJSONObject("stepinfo_list");//得到的结果需要用到json拆分。jr=json.getJSONArray("basic_step_info_vo");if(jr!=null){for(int z=0;z<jr.size();z++){ht ht=new ht();forj=jr.getJSONObject(z);ht.setDepa(list.get(i).getName().toString());ht.setStat_date(forj.get("stat_date").toString());ht.setStep_count(forj.get("step_count").toString());ht.setUserid(forj.get("userid").toString());htlist.add(ht);}}}}return htlist;  } catch (OApiException e) {e.printStackTrace();}return null;}

从钉钉后台API获取企业通讯录以后,获取每个人的钉钉运动步数相关推荐

  1. android获取机主手机号,Android中 获取手机通讯录和手机机主手机号码——诺诺涂鸦记忆...

    目标:获取手机通讯录联系人的姓名和手机号码,屏幕座机和其他非手机号码,避免号码重复 (注:我只给出了代码思路和用法示例,大家可以自己调用方法debug运行看结果或者自行编写显示结果的代码,根据需要进行 ...

  2. 从钉钉后台API获取企业通信录

    现在很多企业都在使用钉钉办公,这样一来从钉钉获取最新的企业通讯录就非常方便,钉钉开放平台有关于开发的很多介绍. //获取部门成员public static List<contacts> g ...

  3. 钉钉企业内部应用获取登录用户信息

    1.创建企业内部应用 首先在钉钉开放平台注册企业内部应用. 选择[企业内部开发] 创建H5微应用 填写相关信息 企业内部H5微应用创建完成 2.接口开发前准备 开发前必读 了解不同应用所能支持的能力 ...

  4. 钉钉第三方企业应用,获取用户信息

    第一步:首先打开钉钉开发者后台登陆,选择"应用开发"->"第三方企业应用"->"小程序",点击"创建应用". ...

  5. 钉钉企业内部应用 - 获取考勤打卡结果

    本文是根据钉钉官方文档归纳所出,最后有 PHP 测试成功的 demo. 概述 钉钉登录是基于 OAuth2.0 协议标准构建的钉钉 OAuth2.0 授权登录系统. 在进行钉钉 OAuth2.0 授权 ...

  6. 不合法的偏移量 钉钉接口_你还不知道钉钉服务端API全局错误码吗?

    -1 系统繁忙 服务器暂不可用,建议稍后再重试1次,最多重试3次 0 请求成功 接口调用成功 88 鉴权异常 地址不存在,检查下url是否和文档里写的一致 404 请求的URI地址不存在 服务器暂不可 ...

  7. 不合法的偏移量 钉钉接口_钉钉服务端api接口使用

    /* *发送工作通知消息 */ router.post('/api/dingtalkserve/asyncsend_v2', async ({ request, response, session } ...

  8. 钉钉的想象力,向企业服务第一平台进阶

    作者 | 曾响铃 文 | 响铃说 时近年末,钉钉7.0版本在杭州重磅发布. 两年一个大版本,这一次钉钉正试图向更高的维度进化: 第一,在完成一家企业的组织数字化和业务数字化后,钉钉开始将重点突破到企业 ...

  9. 企业微信_通讯录管理,获取部门列表部门成员及详情

    企业微信H5_通讯录管理,获取部门列表部门成员及详情 文章目录 一.POSTMAN调试 1. 获取access_token 2. 获取部门列表 3. 获取部门成员 4. 获取部门成员详情 5. 获取成 ...

最新文章

  1. python __init__ (初始化对象时候自动调用) 与代表class对象自身的self
  2. 「干货」谷歌大脑:元学习最新进展与挑战(40 PPT下载)
  3. matlab缺少某些变量,总提示缺少变量或函数
  4. Win32ASM学习[23]:RadASM快捷键
  5. linux 视频学习
  6. 用计算机画出方格表,方格造型图_怎么做这种颜色相间的方格图(有图)_彩妆阁...
  7. 转载:向 XPath 中添加自定义函数
  8. tomcat 服务器启动异常 报错
  9. 中兴软件笔试 c语言,【中兴通讯员工笔试试题及答案】 - 面试网
  10. DirectX 9的安装与配置
  11. 几部科幻小说的评价和感想
  12. 儿童学习与发展指南《倾听与表达》篇
  13. python拟合函数_python拟合函数
  14. 37Java流程控制-打印三角形及debug练习
  15. 汉诺塔python非递归实现,[Python3 练习] 006 汉诺塔2 非递归解法
  16. gis 六边形网格_ArcGIS中实现指定面积蜂窝(正六边形)方法
  17. 1. 将数据导入到前置数据库中(MySQL)
  18. 码教授M01和J42项目答辩胜利结束,广阔天空任你们闯荡!
  19. 2022年奢侈品行业研究报告
  20. 某企业数据治理解决方案PPT

热门文章

  1. 凌晨 计算机博士,凌晨三点,被我的博士老婆喊起来写程序……
  2. 腾讯微信客服电话号码是多少
  3. 使用 Dva 开发复杂 SPA
  4. 绘图神器draw.io(写文必备)
  5. JVM,DVM,ART
  6. 软件工程和软件开发过程
  7. Mac - was compiled with optimization - stepping may behave oddly; variables may not be available.
  8. 让IE支持placeholder属性
  9. 数学建模竞赛在中国的蝗虫式增长
  10. 变换模型——仿射变换和透射变换