最近在折腾用API获取钉钉考勤记录。
被一个钉钉官方未说明的坑折腾了一个半死。
坑在何处
在这个页面,钉钉列出了获取考勤报表的API接口及说明,以及示例。
在上面截图中,红圈里的就是坑所在。
实际上,column_id_list这个参数有列数限制(不能超过20列)。但是钉钉官方没给出这个限制的说明。
为什么我会踩这个坑呢?是因为我想把钉钉考勤报表里的所有列都拿到(虽然没必要,但是我懒得去筛)。这样我得到了43个列id。
然后我把这43个列id喂给这个api接口,最开始测试用的是一两个列id,一点都没问题。当我把所有43个列id喂进去之后,钉钉就报错了,说:
{
"errcode":41,
"errmsg":"Invalid arguments:column_id_list",
"request_id":"8pmnftzv57ju"
}
只说参数出错,但是没说什么错。把我这个python不熟练的家伙弄了个一头雾水,检查代码一遍又一遍,测试一次又一次,就是不知道问题出在什么地方。
直到我突发奇想,把43个参数一个一个地删除,然后喂给接口……
终于删除到只剩20个的时候,不再报错了……
还有一个不是坑的坑
to_date这个参数,钉钉官方给的说明是它和from_date的差值不能超过31天,但实际上是可以超过31天的:
不过钉钉官方的API Explorer却又不能超过31天的限制:
不知道为什么会这样。也许就是一个乱字吧。