1. 概述编辑
1.1 应用场景
公司内部使用企业微信,行政部门想要统计每月员工的打卡数据,将这些数据取出至指定数据库使用。
1.2 接口信息
首先将「通讯录同步」的企业微信人员 userid 和 department 信息从接口中取出,使用 获取成员ID列表 接口直接获取用户的 userid 和 department 数据。
然后通过打卡应用 Secret 调用 获取打卡月报数据 接口,获取指定员工指定时间段内的打卡月报统计数据。
1.3 实现思路
2. 操作步骤编辑
2.1 获取 access_token 并设置为参数
2.1.1 获取access_token
由于获取月报打卡数据首先需要企业微信成员用户的 userid,因此需要为了使用 获取成员ID列表 接口获取成员ID,需要先获取 acces_token,获取 access_token 是调用企业微信 API 接口的第一步,相当于创建了一个登录凭证,其它的业务 API 接口,都需要依赖于 access_token 来鉴权调用者身份。
使用参数赋值节点,在节点信息中修改名称为「获取token」,选择数据源类型为「API」,将企业微信接口 获取 access_token url 和参数写入对应位置,:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET,如下图所示:
注:corpsecret 一定要是通讯录管理secret,详情参见:通讯录管理
点击「数据预览」即可看到获取的 access_token,如下图所示:
2.1.2 将 access_token 设置为参数
为了便于后续其他接口使用获取到的 token 值,因此将其设置为参数。
点击「输出参数」设置参数名为 access_token1,将 access_token 设置为参数,如下图所示:
2.2 获取成员ID
通过 获取成员ID列表 接口,获取所有的企业微信成员 userid 和 department。
新增「数据转换」节点,在节点信息中可以修改名称。进入数据转换编辑界面,新增API 输入算子,将企业微信接口 获取成员ID列表url 和参数写入对应位置:https://qyapi.weixin.qq.com/cgi-bin/user/list_id?access_token=${token},并取出$.dept_user 数组,如下图所示:
点击数据预览即可看到取出的 userid 和 department 数据,如下图所示:
2.3 将成员分组
由于 获取打卡月报数据 接口 useridlist 用户列表参数,最多可传输100个用户,如果当前企业有超过100个用户,需要先对从获取成员ID列表接口中读取的数据对成员进行分组,再循环读取成员月报打卡数据。
在 API 输入后新增 SparkSQL 节点,输入一下语法,即将 userid 分成两组,并命名为 group_id:
SELECT userid , ceil(row_number() OVER (ORDER BY userid ) / 2) as group_id
FROM API输入
注1:如果用户数较多,可以将 SparkSQL 中 2 调大,减少分组次数。
注2:API输入表需要点击输入源,不能手动输入。
点击「数据预览」获取到新的分组列 group_id,如下图所示: