네이버 지도 즐겨찾기 데이터 가져오기
가져오기라고 했지만, 그냥 로그인한 상태에서 아래 URL을 호출하면 JSON 데이터를 반환합니다.
* 아래 주소는 변경되거나 안될 수도 있을 것 같습니다. 공식적으로 공개된 주소는 아니라서~
https://map.naver.com/v5/api/bookmark/sync
(24/05/23) URL 형식이 변경됐습니다.
네이버 로그인 상태에서 아래 URL 호출 시 전체 북마크 목록을 반환합니다.
JSON 데이터는 이런 식이구요.
{
"count": 20,
"myFolderCount": 19,
"followFolderCount": 1,
"folders": [
{
...
"shareId": "d7xxxxxxxxxxx",
...
},
{
...
"shareId": "x7xxxxxxxxxxx",
...
},
shareId가 각 목록 데이터를 가져오는 키값입니다.
아래 URL에서 {shareId} 부분에 shareId 값을 입력하면 최종 목록이 나옵니다.
https://pages.map.naver.com/save-pages/api/maps-bookmark/v3/shares/{shareId}/bookmarks?start=0&limit=5000&sort=lastUseTime
JSON 구조도 살짝 바뀌어서 파일 변환 시에는 그에 맞추어주면 될 것 같구요.
* 뭔가 쉽게 바로 접근해서 파일로 딱 만들어주고 싶었는데, 이게 로그인을 유지해야 하고 CORS를 피해가고 method 호출도 막혀 있어서 애매하네요. 좀 뚝딱거리다가 귀찮아서 포기 ㅠㅠ
JSON 구조는 아래와 같은 형식입니다. folderSync가 뭔지는 잘 모르겠고, bookmarks 항목 아래에 등록한 즐겨찾기가 표시됩니다. 네이버는 즐겨찾기를 1000개까지만 지원한다고 하더군요. 1000개 정도는 한 번에 반환하지 않을까 싶습니다.
실제 필요한 값은 displayname, address, px, py 값 정도가 아닐까 싶네요.
JSON 파일을 구글 스프레드시트로 옮기기
JSON 파일을 엑셀 파일로 만들어주는 서비스들이 있긴 한데, 용량 제한이 있고, 또 JSON 구조에 따라 잘 변환이 안되더군요. 그래서 찾아보았는데, 아예 구글 스프레드시트에서 스크립트를 사용해 JSON 파일에서 원하는 값을 옮기는 코드가 있더군요.
방법은 간단합니다.
1. 일단 구글 스프레드시트 파일을 만들고요
2. 도구 > 스크립트 편집기를 실행합니다.
가이드에 나와있는 대로 코드를 복사해 붙여 넣고 저장합니다.
3. 스프레드시트로 돌아가서 아래와 같이 함수를 입력합니다.
주소는 JSON 파일이 있는 주소를 지정해주어야 합니다. 스크립트 코드를 손보면 로컬에 있는 것도 불러올 수 있지 않을까 싶은데, 일단 작성된 코드는 원격지에 있는 파일을 호출합니다. 네이버 즐겨찾기 데이터 주소는 바로 접근하지 못하고요(로그인 인증 때문에). 어딘가 아무 곳이나 접근할 수 있는 서버에 올려주어야 합니다.
=ImportJSON("http://주소/a.json", "/my/bookmarkSync/bookmarks", "noInherit, noTruncate")
4. 그러면 해당 데이터를 시트에 표시해줍니다. 해당 시트를 편집하고 저장합니다.
함수에서 처리한 데이터를 복사해서 다른 시트에 옮겨놓고 편집하는 것이 좀 더 편할 겁니다.
5. 구글맵에서 지도 만들기를 선택하고 저장한 스프레드시트를 데이터로 지정해서 가져오기를 합니다.
Px 값이 경도, Py 값이 위도입니다. 주소를 지정해도 되는데, 네이버와 구글에 저장된 주소 정보가 다를 수 있으니, 그냥 위도, 경도로.
이렇게 하면 가져오기 끝입니다.