본문 바로가기

Apps Script로 엑셀 데이터와 Google Groups 자동화하기 (1)

Apps Script로 엑셀 데이터와 Google Groups 자동화하기 (1)

 

요즘 NGO에서 웹 개발 봉사활동가로 참여하고 있는데(여건이 되는 한 계속 할 예정), 어느날 아래와 같은 부탁을 받았다.

Apps script는 처음 써 봐서 삽질을 많이 했지만, 결국 해결되었고 비슷한 상황에 처한 분들께는 도움이 될 수 있을 것 같아서 흐름도 간단히 정리할 겸 블로그에 작성해본다.

 

 

구현 기능

 

1.  엑셀 스프레드 시트에서 수정한 데이터를 구글 그룹스로 동기화

2. 반대로 구글 그룹스에서 수정된 데이터를  엑셀 스프레드 시트로 동기화

 

 

구현 화면

 

  • 엑셀 시트에 버튼을 만들어서 양방향으로 동기화를 시킬 수 있도록 했다.
    1. 그룹스 -> 엑셀 : 그룹스의 회원 목록을 엑셀 시트로 불러오기  
    2. 엑셀 -> 그룹스 : 엑셀 스프레드 시트에서 신규 회원 추가, 기존 회원 삭제, 기존 회원 정보 수정(역할) 후 그룹스로 데이터 동기화 

 

엑셀 스프레드 시트에서 신규 회원 추가를 하고 '데이터 업데이트시키기' 버튼을 눌렀을 때, 그룹스에 업데이트 된 화면

 

구현 과정 

 

1. Google workspace 세팅

 

 

Google Workspace에서 개발  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 Google Workspace에서 개발 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Google

developers.google.com

 

 

~ 사족 ~

  • 1 단계 ) 우선 나는 ***.org 소속이었기 때문에 내 아이디로 프로젝트를 생성했을 때 상위 org 폴더를 선택하여 진행했다.
    (그룹스 서비스를 사용하고 있는 곳)
  • 2 단계 ) 필요한 API를 담는다. 하지만, 나중에 특정 api 사용하게 되면 해당 api 독스를 보면서 바로바로 추가도 가능하다.
  • 3 단계 ) 액세스 토큰 등의 이야기이니 알고 있다면 넘어가도 된다.
  • 4 단계 ) 기능 사용 대상은 NGO 내부 관리자들이기 때문에 사용자 유형은 내부로 선택했다.
  • 5 단계 ) 그룹스 데이터에 액세스해야 하기 때문에 서비스 계정을 만들고 key를 JSON 형태로 다운받았다.

 

추가로 서비스 계정의 도메인 전체 위임을 설정하고 범위를 설정했다. (범위는 위에서 언급한 것처럼 기능 구현하면서 넣어도 된다.)

 

일단 세팅 자체는 어렵지 않으니 이렇게 설정하고, 남은 것은 서비스 계정으로 액세스 토큰을 발급받아서 실제로 필요한 API를 호출하는 것만 하면 된다.

 

범위 설정?

 

범위에 대해 부연설명을 하자면 내가 쓰고자 하는 Google API는 아래와 같다.

  • 즉, 그룹에 있는 사용자 추가, 정보 수정, 삭제 등 메서드 (DOCS)
  • 다시 말해서 나중에 범위를 설정해도 괜찮다는 뜻! 하지만 미리해두면 효율적이다. 

 

  • 읽다보면 끝에 아래와 같은 OAuth 범위가 필요하다고 뜬다.
  • 아래와 같이 해당되는 범위를 골라서 서비스 계정의 OAuth 설정과 도메인 전체 위임에 추가해주면 된다.

728x90
⬆︎