Node.js 런타임을 사용하여 Cloud Functions에서 Google Workspace 부가기능을 만듭니다.
목표
- 환경을 설정합니다.
- Cloud 함수를 만들고 배포합니다.
- 부가기능을 만들고 배포합니다.
- 부가기능을 설치합니다.
기본 요건
- Google Cloud 프로젝트.
- Cloud 프로젝트에 결제를 사용 설정해야 합니다. 알아보기 방법 프로젝트의 결제 상태 확인
- Cloud SDK Cloud 프로젝트로 구성됩니다
환경 설정
Google Cloud 콘솔에서 Cloud 프로젝트 열기
- Google Cloud 콘솔에서 프로젝트 선택 페이지로 이동합니다.
- 사용할 Google Cloud 프로젝트를 선택합니다. 또는 프로젝트 만들기를 클릭하고 화면에 표시된 안내를 따릅니다. Google Cloud 프로젝트를 만드는 경우 프로젝트에 결제를 사용 설정해야 할 수도 있습니다.
OAuth 동의 화면 구성
Google Workspace 부가기능을 사용하려면 동의 화면을 구성해야 합니다. 구성 부가기능의 OAuth 동의 화면에는 Google 사용자에게 표시됩니다.
- Google Cloud 콘솔에서 메뉴 > API 및 서비스 > OAuth 동의 화면. 로 이동합니다.
- 사용자 유형으로 내부를 선택한 다음 만들기를 클릭합니다.
- 앱 등록 양식을 작성한 다음 저장하고 계속하기를 클릭합니다.
지금은 범위 추가를 건너뛰고 저장 후 계속을 클릭할 수 있습니다. 나중에 외부에서 사용하기 위해 앱을 만들 때 Google Workspace 조직에서 사용하는 경우 사용자 유형을 외부로 변경한 다음 앱에 필요한 승인 범위를 추가합니다.
- 앱 등록 요약을 검토합니다. 변경하려면 수정을 클릭합니다. 앱이 등록이 확인되면 대시보드로 돌아가기를 클릭합니다.
Cloud 함수 생성 및 배포
로컬 터미널에서 Cloud Functions, Cloud Build, Google Workspace Add-ons API:
gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
빈 디렉터리에 다음을 사용하여
function.js
파일을 만듭니다. 샘플 코드:/** * Cloud Function that loads the homepage for a * Google Workspace Add-on. * * @param {Object} req Request sent from Google * @param {Object} res Response to send back */ exports.loadHomePage = function addonsHomePage (req, res) { res.send(createAction()); }; /** Creates a card with two widgets. */ function createAction() { return { "action": { "navigations": [ { "pushCard": { "header": { "title": "Cats!" }, "sections": [ { "widgets": [ { "textParagraph": { "text": "Your random cat:" } }, { "image": { "imageUrl": "https://cataas.com/cat" } } ] } ] } } ] } }; }
함수를 배포합니다.
gcloud functions deploy loadHomePage --runtime nodejs12 --trigger-http
메시지가 표시되면 다음 인스턴스의 인증되지 않은 호출을 허용하지 않음을 함수를 사용하세요. 함수를 배포하는 데 몇 분 정도 걸릴 수 있습니다.
부가기능 배포 만들기
부가기능의 서비스 계정 이메일을 찾습니다.
gcloud workspace-add-ons get-authorization
서비스 계정에
cloudfunctions.invoker
역할을 부여합니다.gcloud functions add-iam-policy-binding loadHomePage \ --role roles/cloudfunctions.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL
배포된 함수의 URL을 가져옵니다. URL을 가져오려면 다음을 실행합니다. 명령어를 실행하고
httpsTrigger
섹션에서url
필드를 찾습니다.gcloud functions describe loadHomePage
다음 샘플 코드를 사용하여
deployment.json
파일을 만듭니다. 바꾸기URL
를 이전 단계로 넘어갑니다.{ "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"], "addOns": { "common": { "name": "My HTTP Add-on", "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png", "homepageTrigger": { "runFunction": "URL" } }, "gmail": {}, "drive": {}, "calendar": {}, "docs": {}, "sheets": {}, "slides": {} } }
배포를 만듭니다.
gcloud workspace-add-ons deployments create quickstart \ --deployment-file=deployment.json
부가기능 설치
개발 모드로 배포를 설치합니다.
gcloud workspace-add-ons deployments install quickstart
부가기능을 보려면 Gmail을 열거나 새로고침하세요. 포함 비커 아이콘을 찾으세요.
아이콘을 클릭하여 부가기능을 엽니다. 메시지가 표시되면 부가기능을 승인해야 합니다
선택사항: 삭제
계정에 요금이 청구되지 않도록 하려면 만든 날짜:
Google 계정에서 부가기능을 제거하려면 다음 안내를 따르세요.
gcloud workspace-add-ons deployments uninstall quickstart
이 빠른 시작에서 사용한 리소스에 대한 요금이 청구되지 않도록 하려면 Cloud 프로젝트:
gcloud projects delete PROJECT_ID
PROJECT_ID를 URL을 입력합니다. Cloud 프로젝트 ID는 다음에서 확인할 수 있습니다. GCP 콘솔에서 대시보드 페이지.
다음 단계
Google Workspace 부가기능에 더 많은 기능을 추가하려면 다음을 참고하세요. 다음 가이드를 참고하세요.