이번 프로젝트에서 구글 설문지를 이용한 프로젝트를 진행 하게 되었습니다.
아쉽게도 구글 설문지 (Google Forms) API는 존재 하지 않았습니다.
대신, Google Apps Script 라는게 있더라구요! 뭔지 조금 살펴 보았습니다.
구글에서는 Apps Script 라는 Google 자체 스크립트를 편집하여 API를 만들수 있는 기능을 제공 합니다.
해당 기능을 이용하여 구글 API 에서는 따로 존재하지 않지만 예제로 설문조사 리스트를 가져오는 API를 만들어 보려 합니다.
현재 보유 중인 설문지 리스트 입니다.
하나는 회사에서 공유된 설문지가 있고, 나머지 두개는 샘플로 그냥 추가 해 보았습니다.
그 다음, 구글 App Script 콘솔을 실행합니다.
일단 새 프로젝트를 만들어야 겠죠?
좌측 상단의 새 프로젝트를 클릭합니다.
빈 프로젝트가 생성 되었습니다.
이제 내 구글 설문지들을 가져오는 코드를 작성해 봅시다.
Apps Script의 레퍼런스를 참조해서 코드를 작성해 줍니다.
developers.google.com/apps-script/reference
Google AppScript는 Google Form 뿐만 아니라 Calendar, Maps, Spreadsheet 등 다양한 레퍼런스를 제공해 줍니다.
오늘 목적은 일단 Google Form List를 출력하는 것인데..
Google Form 들은 Google Dirve에 저장이 되어서 그 중 Drive에 관련된 레퍼런스를 참조하여 아래와 같은 코드를 입력해 줍니다.
script Services-> Base -> MimeType쪽을 참조하여 아래와 같은 코드를 작성 해 줍니다.
한가지 주의 해야 할 점은 let 형식의 변수 선언을 아직 지원 하지 않기 때문에 var 형태로 작성해 줍니다.
function getGoogleFormsList() {
var files = DriveApp.getFilesByType(MimeType.GOOGLE_FORMS);
var returnFormList = []
while (files.hasNext()) {
var file = files.next();
returnFormList.push({
'name':file.getName(),
'id':file.getId(),
'url':file.getUrl()
})
}
console.info(returnFormList) // 기존의 console.dir 정도의 기능을 수행 합니다.
return returnFormList
}
작성 이후에는 상단의 저장 아이콘을 클릭하여 저장해 줍니다.
저장 이후에는 상단 아이콘 셋에서 실행 및 디버그 기능들이 활성화 됩니다.
실행 하여 결과값을 확인 해 봅시다!
실행 버튼을 누르게 되면 oAuth focus쪽 권한 때문인지, 승인이 필요 하다는 알림이 발생 합니다.
계정 선택 창에서 원하는 계정을 클릭 후 확인하지 않은 앱 경고창이 뜨게 되는데 고급 ->제목 없는 프로젝트로 이동(안전하지 않음)을 눌러 줍니다.
위와 같은 화면이 뜨는 이유는 아직 정식 배포를 하지 않은 개발 단계이기 때문이므로, 크게 신경쓰지 않으셔도 됩니다.
그 후에 아래와 같이 Google Oauth API를 사용 할 때 처럼 권한 관련된 창이 뜨게 됩니다.
하단 실행 로그에, 내가 가지고 있던 모든 설문지 양식이 출력 되는 것을 확인 할 수 있습니다.
해당 API를 배포 하기 위해, 우측 상단의 배포->새배포 버튼을 눌러 줍니다.
새 배포를 누르게 되면 위와 같은 모달창이 뜨게 됩니다.
외부 API를 이용할 것이기 떄문에 API 실행 파일을 눌러주세요.
처음 만들때는 Google Cloud Platform 프로젝트로 전환해야 한다는 알림 메시지가 뜹니다.
프로젝트 유형 변경 버튼을 눌러줍니다.
다음 화면에서도 프로젝트 변경 버튼을 눌러줍니다.
프로젝트를 변경 하면, Google Cloud Platform에서 연결될 프로젝트를 선택 할 수 있는 화면이 하단에 표현 됩니다.
여기서 부터 Google Cloud Platform을 만들어 보셨으면 건너 해당 부분은 그냥 훑고 넘어 가셔도 됩니다.
아직 Google Cloud Platform을 만들어 보지 않은 분들을 위해 설명 하면서 넘어가겠습니다.
일단, 1단계에셔 여기 버튼을 눌러서 Google Cloud Platform 화면으로 이동해 주세요.
그 후, 새 프로젝트를 생성해 줍니다.
테스트로 진행하기 때문에 프로젝트 이름은 식별하기 쉽게 적어주시면 됩니다.
프로젝트가 생성된 이후에는,
좌측 API 및 서비스에서 라이브러리를 선택해 줍니다.
해당 화면에서 검색 부분에 App Script를 검색하여 사용을 눌러줍니다.
사용자 인증 정보를 만들 때에는 일단 테스트 이기 때문에 필수 값들만 지정 해 줍니다.
이 때, oAuth 인증 정보 시에 일단 저희는 google drive에 접근 해야 하기 때문에 해당 권한을 필수적으로만 추가해 주시면 됩니다.
개인적으로, 다른 계정으로 로그인 했을 때 계정이 소유한 설문조사 리스트만 가져오게 하기 위해서 테스트용 API 키를 OAuth2.0 도 발급 하였습니다.
위 페이지에서 OAuth 클라이언트에서 다운로드 아이콘을 클릭하여 JSON 파일을 하나 다운로드 해 줍니다.
client_secret_<ID>.apps.googleusercontent.com.json 파일이 다운로드 됩니다.
해당 파일은 통신시에 사용 할 것 이므로, 꼭 보관해 주세요.
이후에 다시 API 생성 페이지로 돌아가 2단계에서 방금 생성한 GCP 프로젝트 번호를 입력해 줍니다. (최초 대시보드에 출력 되어 있습니다.)
이후에 프로젝트 설정을 눌러 줍니다.
다시 Apps Script 대시 보드에서 배포 버튼을 눌러주시고 이전과 동일하게 구성 해 주시면
위와 같이 변경 되어 있는걸 확인 해 주실 수 있습니다.
이제 배포 버튼을 눌러 줍시다.
이제 외부 프로젝트에서 방금 생성한 API를 호출 할 수 있게 되었습니다.
다음에는 내가 만든 Google App Script API를 외부 서비스에서 호출 하는 방법을 알아보도록 하겠습니다.
'Programming' 카테고리의 다른 글
[laravel] laravel8.x social login(google login, kakao login, naver login) (0) | 2020.12.18 |
---|---|
Google App Script 시작하기(2) - 외부 프로젝트에서 내가 만든 Google App Script API 호출하기 (0) | 2020.12.17 |
[NVM] NVM을 이용하여 node.js 버전 관리하기 (0) | 2020.12.14 |
국가별 ISO, 전화번호 코드 Excel (3) | 2020.06.12 |
CKEditor5 - Web Editor CKEditor5 이미지 업로드 (14) | 2020.03.13 |