掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在很多場景我們需要判斷用戶當前所處城市位置,但如果是直接獲取用戶的地理坐標雖然更為精確,不管是app還是網(wǎng)頁都需要取得用戶授權(quán)。某些場景下,我們希望不打擾用戶,同時對精確度要求也不高,只需要市一級或者區(qū)縣一級的精度即可,這個時候我們就可以用戶的網(wǎng)絡(luò)IP進行定位。
利用用戶的IP進行定位在網(wǎng)絡(luò)上有很多開放的接口服務(wù),今天我們以騰訊的位置服務(wù)來分享。騰訊位置服務(wù)IP定位API接口有如下特點:
1、不僅支持IPv4,IP定位支持IPv6地址定位;
2、可自動識別局域網(wǎng)內(nèi)網(wǎng)ip;
3、IP定位精度范圍不是固定的,最高精確到區(qū)/縣,最低精確到國家(國內(nèi)ip基本全部能精確到區(qū)/縣);
4、免費配額較高,個人賬號日免費請求次數(shù)最高為1萬(并發(fā)5),企業(yè)賬號日免費請求次數(shù)最高為30萬(500并發(fā)),且注冊為企業(yè)賬號非常簡單,只需要提供營業(yè)執(zhí)照副本即可。
接口地址:
https://apis.map.qq.com/ws/location/v1/ip
請求參數(shù):
返回參數(shù):
返回示例:
下面分享一段示例代碼:
class QqMap{ private $url='https://apis.map.qq.com'; private $key='key'; private $sk='sk'; ? /** ? * ip定位 ? * @param string $ip ip地址 * @return string */ public function ip2area($ip){ $path='/ws/location/v1/ip'; $data=[ 'ip'=>$ip, 'key'=>$this->key ]; $data['sig']=$this->sign($path,$data); $url=$this->url.$path.'?'.$this->formatBizQueryParaMap($data); $res=@file_get_contents($url); } /** * 得到簽名 * @param string $path 路徑 * @param array $data 請求參數(shù) * @return string */ private function sign($path,$data){ $string=$this->formatBizQueryParaMap($data); return md5($path.'?'.$string.$this->sk); } /** * 將數(shù)組轉(zhuǎn)成url字符串 * @param array $paraMap * @return string */ function formatBizQueryParaMap($paraMap){ $buff = ""; ksort($paraMap); foreach ($paraMap as $k => $v){ $buff .= strtolower($k) . "=" . $v . "&"; } $reqPar=''; if (strlen($buff) > 0){ $reqPar = substr($buff, 0, strlen($buff)-1); } return $reqPar; } }
上述示例代碼應(yīng)用于如下在創(chuàng)建應(yīng)用key時選擇“簽名校驗”的場景,所以需要簽名,如果使用域名白名單或授權(quán)IP方式就不需要進行簽名。
如何創(chuàng)建應(yīng)用獲取應(yīng)用key?
1、第一步:進去應(yīng)用管理端,地址為:https://lbs.qq.com/dev/console/application/mine。
2、第二步:創(chuàng)建一個應(yīng)用。
3、第三步:添加Key。
其中WebServiceAPI可以有三種安全機制,分別如下:
a、域名白名單:就是填寫域名白名單,僅白名單內(nèi)的域名才可以發(fā)起請求,如果不填就不限制。
b、授權(quán)IP:就是填寫IP白名單,僅白名單內(nèi)的IP才可以發(fā)起請求,如果不填就不限制。
c、簽名校驗:如上述示例代碼就是使用這種方式,需要通過SK參與生成簽名,然后再通過簽名發(fā)起網(wǎng)絡(luò)請求。
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流