以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  读取微信考勤  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121011)

--  作者:zoyong
--  发布时间:2018/6/27 16:08:00
--  读取微信考勤
.NET Framework 版本:2.0.50727.8784
Foxtable 版本:2018.3.9.1
错误所在事件:
详细错误信息:
远程服务器返回错误: (404) 未找到。

.NET Framework 版本:2.0.50727.8784
Foxtable 版本:2018.3.9.1
错误所在事件:窗口,QQ信息,考勤数据,Click
详细错误信息:
Error reading JObject from JsonReader. Path \'\', line 0, position 0.

代码:
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("GetQYAccessToken3")))     \'企业号应用
Dim jo As New JObject
jo("starttime") = t1
jo("endtime") = t2
hc.Content = jo.Tostring()
jo = JObject.Parse(hc.GetData)
Dim json As String = jo("data").ToString()
Dim ja As JArray = Jarray.Parse(json)
For i As Integer = 0 To ja.Count - 1
    Dim r As Row =Tables("微信打卡数据").AddNew()
    r("用户id") = ja(i)("userid").ToString()   \'
    r("规则名称") = ja(i)("groupname").ToString()   \'
    r("打卡类型")  = ja(i)("checkin_type").ToString()   \'
    r("异常类型") = ja(i)("exception_type").ToString()    \'
    r("打卡时间") = ja(i)("checkin_time").ToString()     \'
    r("打卡地点") = ja(i)("location_title").ToString()    \'
    r("地点详情") = ja(i)("location_detail").ToString()    \'
    r("wifi名称") = ja(i)("wifiname").ToString()   \'
    r("备注") = ja(i)("notes").ToString()         \'
    r("MAC地址") = ja(i)("wifimac").ToString()
    r("附件") = ja(i)("mediaids").ToString()
    
Next
Tables("微信打卡数据").save



--  作者:有点甜
--  发布时间:2018/6/27 16:15:00
--  

弹出返回的值看看,如

 

hc.Content = jo.Tostring()
msgbox(hc.GetData)
jo = JObject.Parse(hc.GetData)

--  作者:有点甜
--  发布时间:2018/6/27 16:22:00
--  

要发送的参数,一个也不能少

 

https://work.weixin.qq.com/api/doc#11196

 

 

请求示例:

  1. {
  2. "opencheckindatatype": 3,
  3. "starttime": 1492617600,
  4. "endtime": 1492790400,
  5. "useridlist": ["james","paul"]
  6. }

参数说明:

参数 必须 说明
access_token 调用接口凭证。必须使用打卡应用的Secret获取access_token
opencheckindatatype 打卡类型。1:上下班打卡;2:外出打卡;3:全部打卡
starttime 获取打卡记录的开始时间。Unix时间戳
endtime 获取打卡记录的结束时间。Unix时间戳
useridlist 需要获取打卡记录的用户列表
  1. 获取记录时间跨度不超过三个月
  2. 用户列表不超过100个。若用户超过100个,请分批获取
  3. 有打卡记录即可获取打卡数据,与当前”打卡应用”是否开启无关

--  作者:zoyong
--  发布时间:2018/6/27 16:24:00
--  
jo = JObject.Parse(hc.GetData)
Dim json As String = jo("data").ToString()
Dim ja As JArray = Jarray.Parse(json)


应该是这个代码问题,谈出是空白。

--  作者:有点甜
--  发布时间:2018/6/27 16:33:00
--  
认认真真看3楼,不要照搬代码,灵活变通啊。
--  作者:zoyong
--  发布时间:2018/6/27 16:46:00
--  
有点甜老师   你就帮忙修改好吧    我是真不会弄了
--  作者:有点甜
--  发布时间:2018/6/27 17:17:00
--  

在这里加上参数

 

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