历史版本2 :参数进行分组后再从接口循环取数 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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,如下图所示:


2.4 使用打卡应用的Secret获取access_token


2.5 获取月报开始和结束时间



2.6 根据成员分组批量循环取数