본문 바로가기
개발일기/파이썬

[python3.7] Kakao Rest API 사용해서 주소 좌표 변환 하기 (카카오 401에러처리)

by 프로그래머콩 2020. 3. 26.

클라이언트가 두 지점간의 거리(distance)를 프론트에 출력해달라고 요청했다

그런데 한쪽에는 좌표정보가 없고 주소 정보 뿐이라서 

주소를 이용해 좌표를 가져올 수 있는 간단한 방법이 필요 했고

KaKao Rest API 로컬(local)에서 주소-좌표 변환 기능을 이용하기로 했다.

 

 

KAKAO API 키 만들기

카카오 Developers에 계정이 없다면 계정을 만들고 나서

애플리케이션을 만들어야 한다.

( 웹 서비스의 경우 완성된 서비스가 아니더라도 일단 테스트 하는데 지장이 없었음 )

- 사이트 : https://developers.kakao.com/apps/new

IP 및 도메인 설정

설정하기전 카카오 API 401에러는 API키가 유효하지 않다는걸 의미함.

진짜 API키 오타났거나 아니면 허용되지 않은 IP로 접속했을때 나타났었음.

한~두시간 씨름하다가 아래와 같이 설정해주었더니 사라짐.

 

애플리케이션 추가했다면 

[일반]-[플랫폼 추가]에서 "웹" 추가

 

Rdirect URI 설정 후 저장

 

 

그리고 [고급]으로 들어가 

[허용 서버 IP 주소]에 유효 아이피 작성 후 저장

(127.0.0.1 안먹혔고, 실제 로컬 컴퓨터 IP주소 입력했더니 401 에러사라졌음)

 

 

Kakao Rest 로컬 API 주소 변환 소스
'''
 카카오 geodata 가져오기 
 error  구분은 if ( 'error_type' in r )
 위도, 경도 위치는 
 r['documents'][0]['road_address']['x']
 r['documents'][0]['road_address']['y']
'''
def getGPS_coordinate_for_KAKAO(address, MYAPP_KEY):

    headers = {
        'Content-Type': 'application/json; charset=utf-8',
        'Authorization': 'KakaoAK {}'.format(MYAPP_KEY)
    }
    address = address.encode("utf-8")

    p = urllib.parse.urlencode(
        {
            'query': address
        }
    )

    result = requests.get("https://dapi.kakao.com/v2/local/search/address.json", headers=headers, params=p)
    return result.json()

사용방법은

getGPS_coodinate_for_KAKAO(변환할 주소, Rest API 키)

 

결과값