以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]读取企业微信打卡数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135150)

--  作者:shissx
--  发布时间:2019/5/18 18:54:00
--  [求助]读取企业微信打卡数据
太菜,看不懂API的用法,照葫芦画瓢抄帮助可以正确使用通讯录的部门和成员,但是打卡记录没有帮助,搜索论坛也找不到可以直接使用的代码,抄了一段如下,3天了还是没读出来。。。希望老大能帮下忙

Dim st As New Date(1970,1,1,8,0,0)
Dim t1 As Integer = CInt((Date.Today.AddDays(-100)  - st).TotalSeconds()) \'时间戳开始时间
Dim t2 As Integer = CInt((Date.Now - st).TotalSeconds()) \'时间戳结束时间
Dim ur As String = "https://qyapi.weixin.qq.com/cgi-bin/checkin/getapprovaldata?access_token={0}"
Dim hc As New HttpClient(CExp(ur,Functions.Execute("GetQYAccessToken"),1))
Dim jo As New JObject
jo("starttime") = t1
jo("endtime") = t2
jo("opencheckindatatype") = 3 \' 是 打卡类型.1:上下班打卡;2:外出打卡;3:全部打卡
Dim ja As New Jarray \'定义数组
ja.Add("用户1")
ja.Add("用户2")
jo("useridlist") = ja

hc.Content = jo.Tostring()
jo = JObject.Parse(hc.GetData)
Dim json As String = jo("data").ToString()
Dim ja As JArray = Jarray.Parse(json)

MessageBox.Show(ja.Tostring)

--  作者:有点甜
--  发布时间:2019/5/19 17:22:00
--  

执行到这里,报什么错?

 

Dim st As New Date(1970,1,1,8,0,0)
Dim t1 As Integer = CInt((Date.Today.AddDays(-100)  - st).TotalSeconds()) \'时间戳开始时间
Dim t2 As Integer = CInt((Date.Now - st).TotalSeconds()) \'时间戳结束时间
Dim ur As String = "https://qyapi.weixin.qq.com/cgi-bin/checkin/getapprovaldata?access_token={0}"
Dim hc As New HttpClient(CExp(ur,Functions.Execute("GetQYAccessToken"),1))
Dim jo As New JObject
jo("starttime") = t1
jo("endtime") = t2
jo("opencheckindatatype") = 3 \' 是 打卡类型.1:上下班打卡;2:外出打卡;3:全部打卡
Dim ja As New Jarray \'定义数组
ja.Add("用户1")
ja.Add("用户2")
jo("useridlist") = ja

hc.Content = jo.Tostring()
output.show(hc.GetData)

--  作者:shissx
--  发布时间:2019/5/20 14:16:00
--  
添加附件打不开。。。
提示错误的对话框是:

运行错误
.NET Framework 版本:2.0.50727.5420
Foxtable 版本:2019.4.12.1
错误所在事件:
详细错误信息:
远程服务器返回错误: (404) 未找到。


--  作者:laipiwen
--  发布时间:2019/5/20 14:38:00
--  
以下是引用shissx在2019/5/20 14:16:00的发言:
添加附件打不开。。。
提示错误的对话框是:

运行错误
.NET Framework 版本:2.0.50727.5420
Foxtable 版本:2019.4.12.1
错误所在事件:
详细错误信息:
远程服务器返回错误: (404) 未找到。
 
Dim ur As String = "https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckindata?access_token={0}"


--  作者:有点甜
--  发布时间:2019/5/20 14:53:00
--  

1、我测试没问题;

 

2、贴出你 Functions.Execute("GetQYAccessToken") 返回的值看看。


--  作者:shissx
--  发布时间:2019/5/20 15:47:00
--  
提示错误:
{"errcode":301024,"errmsg":"get checkin data time error, hint: [1558338305_2_b7d868a556eb458841d8441fcb606325], more info at https://open.work.weixin.qq.com/devtool/query?e=301024","checkindata":[]}

[此贴子已经被作者于2019/5/20 16:00:57编辑过]

--  作者:有点甜
--  发布时间:2019/5/20 15:53:00
--  
  1. 获取记录时间跨度不超过一个月
  2. 用户列表不超过100个。若用户超过100个,请分批获取
  3. 有打卡记录即可获取打卡数据,与当前”打卡应用”是否开启无关

 

https://work.weixin.qq.com/api/wap/doc/index#14630

 


--  作者:有点甜
--  发布时间:2019/5/20 15:55:00
--  

改成比如

 

Dim st As New Date(1970,1,1,8,0,0)
Dim t1 As Integer = CInt((Date.now.AddMonths(-1)  - st).TotalSeconds()) \'时间戳开始时间
Dim t2 As Integer = CInt((Date.Now - st).TotalSeconds()) \'时间戳结束时间
output.show(t1)
output.show(t2)
 
或者
 
Dim st As New Date(1970,1,1,8,0,0)
Dim t1 As Integer = CInt((Date.now.AddDays(-10)  - st).TotalSeconds()) \'时间戳开始时间
Dim t2 As Integer = CInt((Date.Now - st).TotalSeconds()) \'时间戳结束时间
 
[此贴子已经被作者于2019/5/20 15:55:24编辑过]

--  作者:shissx
--  发布时间:2019/5/20 16:02:00
--  
谢谢,问题已经解决!
[此贴子已经被作者于2019/5/20 18:39:26编辑过]

--  作者:石四
--  发布时间:2019/11/22 15:13:00
--  
Dim st As New Date(1970,1,1,8,0,0)
Dim t1 As Integer = CInt((Date.Today.AddDays(-5)  - st).TotalSeconds()) \'时间戳开始时间
Dim t2 As Integer = CInt((Date.Now - st).TotalSeconds()) \'时间戳结束时间
Dim ur As String = "https://qyapi.weixin.qq.com/cgi-bin/checkin/getapprovaldata?access_token={0}"
Dim hc As New HttpClient(CExp(ur,Functions.Execute("GetQYAccessToken1"),1))
Dim jo As New JObject
jo("starttime") = t1
jo("endtime") = t2
jo("opencheckindatatype") = 3 \' 是 打卡类型.1:上下班打卡;2:外出打卡;3:全部打卡
Dim ja As New Jarray \'定义数组
ja.Add("sunny")
ja.Add("ShuiXian")
jo("useridlist") = ja

hc.Content = jo.Tostring()
output.show(hc.GetData)

同样的问题:返回404!
怎么解决的?