以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助,对接魔点人脸识别设备对接apptoken获取方法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=183936)

--  作者:夜点蚊香
--  发布时间:2022/11/19 21:19:00
--  求助,对接魔点人脸识别设备对接apptoken获取方法

1.3. 生成AppToken v2

  • 注意事项
  1. 建议开发者使用中控服务器统一获取和刷新app token,其他业务逻辑服务器所使用的app token均来自于该中控服务器,不在业务代码中调用,防止被恶意攻击者抓包,导致appKey和orgCode泄露;
  2. 目前app token的有效期通过返回的expires来传达,目前是7200秒之内的值
  • 请求地址
http://serverIP:8022/account/member/getOpenApiToken/v2
  • Method
post
  • Header
Content-Type: application/json
Accept: */*
  • Post data
{
  "orgCode":"string", //必填,机构码
  "appKey":"string"   //必填,appkey
}
  • Response
{
  "code":"string",     //返回码,0:成功、非0:失败,详见消息提示
  "message":"string",  //消息提示
  "data":{
    "appToken":"string",  //请求Token
    "expires":7200        //过期时间(秒),2小时失效,在旧token失效前,需要重新获取token
  }
}

狐表内的获取代码如何写.
[此贴子已经被作者于2022/11/19 21:19:26编辑过]

--  作者:夜点蚊香
--  发布时间:2022/11/20 7:31:00
--  帮忙看一下 报错内容 ,用 微信公众号的获取token的写法

Static CreateTime As Date \'记录最近一次生成access_token的时间
Static AccessTocken As String \'记录最近一次生成的access_token
Dim AppId As String = "71ADE2AB6552C541F28B363051B0EBCF" \'开发者ID
Dim AppSecret As String = "ZjIzZDExYzUtNzBhOC00N2Y4LWJhMjctMDU4MWM0OGFlNDkz" \'开发者密匙
Dim tp As TimeSpan = Date.Now - CreateTime
Dim url As String = "http://192.168.31.117:8022/account/member/getOpenApiToken/v2?Content-Type=application/json&orgCode=" & appid & "&appKey=" & AppSecret
Output.Show(url)
If tp.TotalSeconds > 3600 Then
    Dim hc As New HttpClient(CExp(url,AppId,AppSecret))
    Dim ret As String = hc.GetData()
    If ret = "" Then \'如果失败,再尝试一次
        hc.GetData()
    End If
    CreateTime = Date.Now()
    Dim jo As JObject = JObject.Parse(ret)
    If jo("errcode") Is Nothing Then
        AccessTocken = jo("access_token")
    Else
        MessageBox.show("获取access_token失败,原因:" & vbcrlf & jo("errmsg").ToString)
    End If
End If
Return AccessTocken


图片点击可在新窗口打开查看此主题相关图片如下:1668900618644.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2022/11/20 20:02:00
--  
Dim hc As New HttpClient("http://192.168.31.117:8022/account/member/getOpenApiToken/v2")
hc.ContentType = "application/json"
Dim jo As new JObject 
jo("orgCode") = “机构码
jo("appKey") = “appKey
hc.Content = jo.tostring
Dim ret As String = hc.GetData()
msgbox(ret)

--  作者:夜点蚊香
--  发布时间:2022/11/30 12:04:00
--  已经获取到 token 求助获取成员列表的写法

2.11. 成员列表

  • 请求地址
http://serverIP:8022/member/member/memberList
  • Method
post
  • Header
Content-Type: application/json
Accept: */*
Auth-Token: TOKEN
  • Post data
{
  "deptId":0,         //非必填,部门id
  "hasFace":0,        //必填,是否有录入底库:0-全部,1-有,2-无
  "needSubMember":0,  //必填,是否需要查询出子部门下的成员:1-是,2-否,
  "paginator":{       //非必填,分页器查询参数,不分页时不传,数据量大时最好分页查询
    "pageNum":0,      //非必填,paginator参数传参时必填,分页起始页数
    "pageSize":0      //非必填,paginator参数传参时必填,每页查询数量
  }
}
  • Response
{
  "code":"string",
  "message":"string",
  "data":{
    "list":[
      {
        "memberId":0,                //成员id
        "verifyFaceUrl":"string",    //成员底库照相对路径,访问时需要拼接:http://serverIp:8023/
        "memberName":"string",       //成员名称
        "memberMobilePre":"string",  //手机号前缀(v1.5.5新增)
        "memberMobile":"string",     //成员手机号
        "memberEmail":"string",      //成员邮箱
        "memberPosition":"string",   //成员职位
        "memberJobNum":"string",     //成员工号
        "accountGrade":1             //账号等级:1-超管;2-主管理员;3-子管理员;4-非管理员
      }
    ],
    "paginator":{
      "pageNum":0,    //当前页码
      "pageSize":0,   //每页条数
      "total":0       //总条数
    }
  }
}

--  作者:有点蓝
--  发布时间:2022/11/30 13:28:00
--  
Dim hc As New HttpClient("http://192.168.31.117:8022/member/member/memberList")
hc.ContentType = "application/json"
hc.Headers.Add("Auth-Token","Auth-Token")
hc.Accept= "*/*"
Dim jo As new JObject 
jo("deptId") = 0
jo("hasFace") = 0
……
hc.Content = jo.tostring
Dim ret As String = hc.GetData()
msgbox(ret)

--  作者:夜点蚊香
--  发布时间:2022/11/30 14:35:00
--  帮忙看一下,报错信息
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:
详细错误信息:
如果设置 ContentLength>0 或 SendChunked==true,则必须提供请求正文。  在 [Begin]GetResponse 之前通过调用 [Begin]GetRequestStream,可执行此操作。

代码如下
Dim hc As New HttpClient("http://192.168.31.117:8022/member/member/memberList")
hc.C
hc.Headers.Add("Token",Functions.Execute("魔点apptoken"))
hc.Accept= "*/*"
Dim jo As new JObject 
jo("deptId") = 0
jo("hasFace") = 0
jo("needSubMember") = 2
hc.Content = jo.tostring
Dim ret As String = hc.GetData()
msgbox(ret)

--  作者:有点蓝
--  发布时间:2022/11/30 14:50:00
--  
hc.Headers.Add("Auth-Token",Functions.Execute("魔点apptoken"))
--  作者:夜点蚊香
--  发布时间:2022/11/30 14:56:00
--  改过来了,还是报错
Dim hc As New HttpClient("http://192.168.31.117:8022/member/member/memberList")
hc.C
hc.Headers.Add("Auth-Token",Functions.Execute("魔点apptoken"))
hc.Accept= "*/*"
Dim jo As new JObject 
jo("deptId") = 0
jo("hasFace") = 0
jo("needSubMember") = 2
hc.Content = jo.tostring
Dim ret As String = hc.GetData()
msgbox(ret)

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:
详细错误信息:
如果设置 ContentLength>0 或 SendChunked==true,则必须提供请求正文。  在 [Begin]GetResponse 之前通过调用 [Begin]GetRequestStream,可执行此操作。
[此贴子已经被作者于2022/11/30 14:57:21编辑过]

--  作者:有点蓝
--  发布时间:2022/11/30 14:59:00
--  
找对方要.net的实例
--  作者:夜点蚊香
--  发布时间:2022/11/30 18:50:00
--  求助照片上传的base64码 怎么弄

2.9. 上传人脸照片

  • 请求地址
http://serverIP:8022/member/file/saveImage
  • Method
post
  • Header
Content-Type: application/json
Accept: */*
Auth-Token: TOKEN
  • Post data
{
  "image":"string",         //必填,人脸照片base64码
  "memberJobNum":"string" , //必填,工号,30位以下数字和字母组合,不能重复
  "endFlag":0,              //必填,是否是最后一张标识:1-是,2-否;单张默认传1。批量调此接口上传照片时,应该只在最后一张传1,其他的传2,避免触发大量设备同步事件
  "count":0,                //必填,批次内上传图片总数量,单张图片上传默认传1
  "jobNum":"string",        //必填,上传图片任务序列号(类似订单号),保证内部唯一
  "currentNum ":1           //当前是上传第几张
  "needAutoSave ":1         //是否需要自动保存到对应成员:1-是,2-否
}
  • Response
{
  "code":"string",
  "message":"string",
  "data":{
    "fileName":"string",  //底库存档路径(v1.5.7已废弃)
    "flag":true,          //保存标识:true成功,false失败
    "queryKey":"string",  //录入结果查询码。由于人脸录入比较耗时,该API如2秒内没有返回录入结果,需要利用该查询码结合查询接口查询后确认。建议查询间隔5秒。
    "result":"string",    //保存结果:成功时为图片url,失败时为失败原因(失败时可能为空)
    "memberJobNum":"string"  //如校验有重复人脸,此处返回重复人员的工号
  }
}