本文介绍在微信公众平台上如何使用高级接口开发获取用户地理位置的功能。
一、获取用户地理位置接口
开通了上报地理位置接口的公众号,用户在关注后进入公众号会话时,会弹框让用户确认是否允许公众号使用其地理位置。弹框只在关注后出现一次,用户以后可以在公众号详情页面进行操作。
用户同意上报地理位置后,每次进入公众号会话时,都会在进入时上报地理位置,上报地理位置以推送XML数据包到开发者填写的URL来实现。
推送XML数据包示例:
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[LOCATION]]></Event> <Latitude>23.137466</Latitude> <Longitude>113.352425</Longitude> <Precision>119.385040</Precision> </xml>
参数说明:
参数 |
描述 |
ToUserName |
开发者微信号 |
FromUserName |
发送方帐号(一个OpenID) |
CreateTime |
消息创建时间 (整型) |
MsgType |
消息类型,event |
Event |
事件类型,LOCATION |
Latitude |
地理位置纬度 |
Longitude |
地理位置经度 |
Precision |
地理位置精度 |
二、程序接收用户地理位置坐标
地理位置是一个事件消息,在方倍工作室的微信公众平台PHP SDK中,增加位置信息判断,然后获取用户的纬度和经度。
private function receiveEvent($object) { $contentStr = ""; switch ($object->Event) { case "subscribe": $contentStr = "欢迎关注方倍工作室"; break; case "LOCATION": $contentStr = "纬度 ".$object->Latitude." 经度".$object->Longitude; break; default: break; } $resultStr = $this->transmitText($object, $contentStr); return $resultStr; }
也可以把位置信息存到数据库,这样方便以后分析。
三、网页获取用户地理位置
请参考 微信公众平台开发(106) 网页获取用户地理位置 一文。