WIL 19 ( Weeked I Learned ) - 23/07/02

용스·2023년 7월 2일
0

이번 회사 프로젝트를 진행하면서 Google Map API를 잠깐 다루어 볼 상황이 발생했다.

일반 URL은 무던하게 작업이 되었지만 문제는 Google Shorten URL이 문제였다.

일반적으로 Google 지도에서 서울역을 검색하고 URL 창을 복사하면 이렇게 긴 링크가 생성된다.

https://www.google.co.kr/maps/place/%EC%84%9C%EC%9A%B8%EC%97%AD/data=!4m10!1m2!2m1!1z7ISc7Jq47Jet!3m6!1s0x357ca266e3947003:0xe7be97c172b7af6a!8m2!3d37.555946!4d126.972317!15sCgnshJzsmrjsl62SAQ5zdWJ3YXlfc3RhdGlvbuABAA!16zL20vMDNubm03?entry=ttu

이 링크에서 위도 경도를 추출하기는 쉽다.

하지만 사용자가 공유 버튼으로 URL을 가져오게 되면 문제가 발생한다.

https://goo.gl/maps/Znr5oARRHF5jo5Ze7

여기서 어떻게 위도, 경도나 주소를 추적할 수 있지????

짧은 형식의 URL을 복사 붙여넣기 하면 자동으로 Redirection을 시켜준다.

근데...

이걸 아무리 공식 문서, 구글링을 해도 나오지 않는다는 것이었다.

고통 받고 있던 도중 다음과 Stack overflow에서 UrlFetchApp을 사용하라는 것이었다.

무지성으로 vscode에서 UrlFetchApp을 사용하려고 했으나.. 계속 실패..

자세히 살펴보니 Google Scripts라고 설명하고 있었다.

Google Scripts? = Google apps script

Google이 제공하는 클라우드 기반 스크립팅 언어입니다. 이 스크립팅 언어를 사용하면 G Suite 앱인 Google Sheets, Google Docs, Google Forms, Google Slides 등과 같은 Google 애플리케이션을 자동화하고 확장할 수 있습니다.

Google Apps Script를 사용하면 사용자 정의 함수를 만들어 Google Sheets에서 사용할 수도 있으며, Google Forms를 사용하여 데이터를 수집하고 처리할 수도 있습니다. 또한, Gmail의 스팸 메일을 자동으로 처리하거나, Google Calendar를 조작하여 일정을 자동으로 추가하는 등의 작업도 가능합니다.

그렇다고 한다..

이것도 모르고 계속 vscode에서 사용하려고 했으니 안될 수 밖에..

Google apps script 프로젝트 만들기

  1. Google apps script 접속 후, Start Scripting을 실행

  2. 새 프로젝트 실행

  1. 코드를 입력
    get으로 google apps script를 호출하기 위해서는 doGet이라 함수를 명명한다.
    post로 google apps script를 호출하기 위해서는 doPost라 함수를 명명한다.
    parameter로 가져오고 싶으면 e를 사용한다. e.parameter("get의 파라미터 명")

나는 get으로 URL만 가져올 것이기 때문에 doGet으로 코드를 간략하게 입력했다.

초기 프로젝트 화면

간략하게 코드 입력

  1. 실행 후 권한 승인
    4-1. 권한 검토 클릭

    4-2. 계정 선택

    4-3. 고급설정 클릭 후 ....으로 이동 클릭, 나의 경우 getShortenURL이다.

    4-4. 허용 클릭

    4-5. 실행 로그 확인

이렇게 긴 URL 형식을 알아낼 수 있다. 왠만한 shorten URL들을 넣어봤는데 어지간해서는 Long URL로 변환할 수 있는 듯 하다.

이제 외부에서 사용할 수 있도록 스크립트를 배포하자.

Google apps script 배포하기

  1. 우측 상단의 배포 클릭, 새배포 클릭

  2. 유형 선택 -> 웹 앱
    보면 다양한 형식으로 배포할 수 있는 듯 하다. 난 웹 앱으로 성공했으니 웹 앱 방식만 설명한다.
  3. 웹앱 액세스 권한이 있는 사용자를 모든 사용자 로 선택한다.
    모든 사용자가 좋지 않는 방법임을 알고 있다. 왜냐하면 웹앱 URL만 알면 언제든지 나의 웹앱을 사용할 수 있다는 거니까..
    근데 인증 방식을 바꾸고 나서는 CORS 에러를 수정할 수 없어 모든 사용자로 하였다.
  4. 배포된 URL을 복사 후 외부 프로젝트에 사용한다.

해당 방식 말고 shorten URL에 대한 좋은 방법이 있으면 다시 공유할 생각이다.

profile
일단 해보자

0개의 댓글