Node.js로 Google Workspace 부가기능 빌드

Node.js 런타임을 사용하여 Cloud Functions에서 Google Workspace 부가기능을 만듭니다.

목표

  • 환경을 설정합니다.
  • Cloud 함수를 만들고 배포합니다.
  • 부가기능을 만들고 배포합니다.
  • 부가기능을 설치합니다.

기본 요건

환경 설정

Google Cloud 콘솔에서 Cloud 프로젝트 열기

  1. Google Cloud 콘솔에서 프로젝트 선택 페이지로 이동합니다.

    Cloud 프로젝트 선택

  2. 사용할 Google Cloud 프로젝트를 선택합니다. 또는 프로젝트 만들기를 클릭하고 화면에 표시된 안내를 따릅니다. Google Cloud 프로젝트를 만드는 경우 프로젝트에 결제를 사용 설정해야 할 수도 있습니다.

OAuth 동의 화면 구성

Google Workspace 부가기능을 사용하려면 동의 화면을 구성해야 합니다. 구성 부가기능의 OAuth 동의 화면에는 Google 사용자에게 표시됩니다.

  1. Google Cloud 콘솔에서 메뉴 로 이동합니다. > API 및 서비스 > OAuth 동의 화면.

    OAuth 동의 화면으로 이동

  2. 사용자 유형으로 내부를 선택한 다음 만들기를 클릭합니다.
  3. 앱 등록 양식을 작성한 다음 저장하고 계속하기를 클릭합니다.
  4. 지금은 범위 추가를 건너뛰고 저장 후 계속을 클릭할 수 있습니다. 나중에 외부에서 사용하기 위해 앱을 만들 때 Google Workspace 조직에서 사용하는 경우 사용자 유형외부로 변경한 다음 앱에 필요한 승인 범위를 추가합니다.

  5. 앱 등록 요약을 검토합니다. 변경하려면 수정을 클릭합니다. 앱이 등록이 확인되면 대시보드로 돌아가기를 클릭합니다.

Cloud 함수 생성 및 배포

  1. 로컬 터미널에서 Cloud Functions, Cloud Build, Google Workspace Add-ons API:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. 빈 디렉터리에 다음을 사용하여 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  3. 함수를 배포합니다.

    gcloud functions deploy loadHomePage --runtime nodejs12 --trigger-http
    

    메시지가 표시되면 다음 인스턴스의 인증되지 않은 호출을 허용하지 않음을 함수를 사용하세요. 함수를 배포하는 데 몇 분 정도 걸릴 수 있습니다.

부가기능 배포 만들기

  1. 부가기능의 서비스 계정 이메일을 찾습니다.

    gcloud workspace-add-ons get-authorization
    
  2. 서비스 계정에 cloudfunctions.invoker 역할을 부여합니다.

    gcloud functions add-iam-policy-binding loadHomePage \
        --role roles/cloudfunctions.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. 배포된 함수의 URL을 가져옵니다. URL을 가져오려면 다음을 실행합니다. 명령어를 실행하고 httpsTrigger 섹션에서 url 필드를 찾습니다.

    gcloud functions describe loadHomePage
    
  4. 다음 샘플 코드를 사용하여 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": {}
      }
    }
    
  5. 배포를 만듭니다.

    gcloud workspace-add-ons deployments create quickstart \
        --deployment-file=deployment.json
    

부가기능 설치

  1. 개발 모드로 배포를 설치합니다.

    gcloud workspace-add-ons deployments install quickstart
    
  2. 부가기능을 보려면 Gmail을 열거나 새로고침하세요. 포함 비커 아이콘을 찾으세요.

  3. 아이콘을 클릭하여 부가기능을 엽니다. 메시지가 표시되면 부가기능을 승인해야 합니다

선택사항: 삭제

계정에 요금이 청구되지 않도록 하려면 만든 날짜:

  1. Google 계정에서 부가기능을 제거하려면 다음 안내를 따르세요.

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. 이 빠른 시작에서 사용한 리소스에 대한 요금이 청구되지 않도록 하려면 Cloud 프로젝트:

    gcloud projects delete PROJECT_ID
    

    PROJECT_ID를 URL을 입력합니다. Cloud 프로젝트 ID는 다음에서 확인할 수 있습니다. GCP 콘솔에서 대시보드 페이지.

다음 단계

Google Workspace 부가기능에 더 많은 기능을 추가하려면 다음을 참고하세요. 다음 가이드를 참고하세요.