WPS (Wifi Positioning System)
loplat WPS(WiFi Positioning System) API 는 WIFI AP 정보를 바탕으로 정확한 위치를 반환합니다. 평균 15m 내외의 정확도로 전국 어디에서 휴대폰, 키즈폰 등 IoT 기기들의 위치정보를 확인할 수 있습니다.
API 사용을 위한 인증키는 dev@loplat.com 으로 요청부탁드립니다.
WPS 요청
WPS 요청은 POST를 사용하여 다음의 URL로 전송됩니다.
URL 주소
https://wps-backend-3q6nicdgla-uc.a.run.app/wps
Request Format
-
clientId
: 승인된 사용자 id -
clientSecret
: 승인된 사용자 secret value -
wifiAPs
: WiFi AP 정보의 배열{
"clientId": "wpstest",
"clientSecret": "wpstest",
"wifiAPs": [
{"bssid": "00:11:22:33:44:55:66", "ssid": "starbucks", "rss": -65, "frequency": 2452},
{"bssid": "22:33:44:55:66:77:88", "ssid": "olleh", "rss": -75, "frequency": 5765},
...
]
}
WiFi AP 정보 상세
bssid
: AP의 bssid(MAC)주소. 구분기호는 : (콜론) 필수ssid
: (string
) AP의 ssidrss
: (int
) 해당 AP로부터 수신된 신호 세기frequency
: (int
) AP의 주파수
WPS 응답 (Response)
"정상 (HTTP 상태코드 : 200)"
위치요청이 성공적인 경우, 위치(위도,경도)정보와 정확도(에러반경)을 JSON형태로 반환합니다.
location
: 기기의 예상 위도 및 경도. latitude와 longitude 및 floor 하위필드를 포함함.accuracy
: 예상 위치의 정확도(미터 단위).
{
"location": {
"lat": 37.502341,
"lng": 127.055941,
"floor": 1
},
"accuracy": 80.0
}
"오류"
오류의 경우, HTTP 상태코드가 오류로 설정되고 다음과 같은 정보가 JSON 형태로 전달됩니다.
reason
: 오류 이유code
: 오류 코드 값message
: 오류 상세 내용
{
"error": {
"reason": "badRequest",
"code": 400,
"message": "invalid json format"
}
}
오류종류
"Bad Request (HTTP 상태코드 : 400)"
리퀘스트 값 정보 혹은 형태 오류
"Forbidden (HTTP 상태코드 : 403)"
사용자 인증 실패
"Not Found (HTTP 상태코드 : 404)"
위치 인식 실패
Python 샘플 코드
def get_http_request():
return req
data = {
'clientId': 'wpstest',
'clientSecret': 'wpstest'
'wifiAPs': [{'bssid': '88:36:6c:13:21:10', 'ssid': 'buzzmetrix_2', 'rss': -61, 'frequency': 5765},
{'bssid': '64:e5:99:42:b8:f8', 'ssid': 'dale', 'rss': -36, 'frequency': 2452}
]
}
try:
url = 'https://wps-backend-3q6nicdgla-uc.a.run.app/wps'
req = urllib2.Request(url)
req.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(req, json.dumps(data))
string = response.read().decode('utf-8')
jresponse = json.loads(string)
print jresponse
except urllib2.HTTPError as e:
print e.code
error = e.read()
print error