本文介紹在微信公眾平台上如何使用高級接口開發獲取用戶地理位置的功能。
一、獲取用戶地理位置接口
開通了上報地理位置接口的公眾號,用戶在關注后進入公眾號會話時,會彈框讓用戶確認是否允許公眾號使用其地理位置。彈框只在關注后出現一次,用戶以后可以在公眾號詳情頁面進行操作。
用戶同意上報地理位置后,每次進入公眾號會話時,都會在進入時上報地理位置,上報地理位置以推送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) 網頁獲取用戶地理位置 一文。