微信企业号开发之地理位置获取

1.官方文档说明

上报地理位置事件

成员同意上报地理位置后,每次在进入应用会话时都会上报一次地理位置,或在进入应用会话后每5秒上报一次地理位置。企业可以在管理端修改应用的以上设置。上报地理位置时,微信会将此事件推送到企业应用在管理端设置的URL(以下假设该URL为http://api.3dept.com)。

  • 请求说明

Http请求方式: POST

http://api.3dept.com/?msg_signature=ASDFQWEXZCVAQFASDFASDFSS&timestamp=13500001234&nonce=123412323

  • 参数说明
<xml>
   <ToUserName><![CDATA[toUser]]></ToUserName>
   <FromUserName><![CDATA[FromUser]]></FromUserName>
   <CreateTime>123456789</CreateTime>
   <MsgType><![CDATA[event]]></MsgType>
   <Event><![CDATA[LOCATION]]></Event>
   <Latitude>23.104105</Latitude>
   <Longitude>113.320107</Longitude>
   <Precision>65.000000</Precision>
   <AgentID>1</AgentID>
</xml>

参数说明
ToUserName企业号CorpID
FromUserName成员UserID
CreateTime消息创建时间(整型)
MsgType消息类型,此时固定为:event
Event事件类型,此时固定为:LOCATION
Latitude地理位置纬度
Longitude地理位置经度
Precision地理位置精度
AgentID企业应用的id,整型。可在应用的设置页面查看

管理中心的回调模式中有个上报地理位置设置:

可以选择进入应用上报一次,或者5秒钟上报一次。

2.处理

解析xml然后读取地理位置,存入数据库中,方便下次调用(我试了放入httpsession中,可是下次并不能取到。。。)

<span style="white-space:pre">			</span>Map<String, String> requestMap = MessageUtil.parseXml(sMsg);
			String fromUserName = requestMap.get("FromUserName");
			String toUserName = requestMap.get("ToUserName");
			String msgType = requestMap.get("MsgType");
			if (requestMap.get("Latitude")!=null) {
				X=requestMap.get("Latitude");
				Y=requestMap.get("Longitude");
				System.out.println("------------------维度:"+X+"经度:"+Y+"-------------");
			}

这里X Y就是所需要的维度和经度

3.作用

可以用维度和经度获取城市代号,调用天气Api,也可以用来监测企业员工的位置,今天你有没有迟到或者早退啊



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值