Google Workspace Events API를 사용하여 일정 구독하기

이 페이지에서는 Google Workspace Events API를 간략하게 설명하고 API를 사용하여 Google Workspace 전반에서 이벤트를 구독하는 방법을 설명합니다.

Google Workspace 이벤트는 리소스 생성, 업데이트 또는 삭제와 같은 Google Workspace 리소스의 변경사항을 나타냅니다. 앱에서 Google Workspace 리소스를 구독하여 관심 있는 관련 이벤트를 수신할 수 있습니다.

앱에서 이벤트를 수신하는 방법

앱에서 Google Workspace 이벤트를 수신하려면 Google Workspace Events API를 사용하여 Google Workspace 리소스 구독을 만듭니다.

Google Workspace Events API를 통해 이벤트를 전송하는 방법을 보여주는 그림
그림 1. Google Workspace Events API가 Chat 앱에 이벤트를 전송하는 방법의 예

다음 예에서 Google Workspace Events API가 구독을 통해 Google Chat 앱에 이벤트를 전송하는 방법은 다음과 같습니다.

  1. Chat 앱이 Chat 스페이스를 구독합니다.
  2. Chat 스페이스가 변경됩니다. 예를 들어 스페이스에 새 메시지가 게시됩니다.
  3. Chat은 구독에 대한 알림 엔드포인트 역할을 하는 Google Cloud Pub/Sub의 주제에 이벤트를 전달합니다. 이벤트에는 변경사항에 대한 데이터가 포함됩니다. 예를 들어 새 메시지에 관한 이벤트의 경우 이벤트에는 생성된 Message 리소스에 대한 세부정보가 포함됩니다.
  4. 채팅 앱은 이벤트가 포함된 Google Cloud Pub/Sub 메시지를 처리하고 필요한 경우 조치를 취합니다.

중요한 용어

다음은 Google Workspace Events API에서 사용되는 일반적인 용어 목록입니다.

Google Workspace 이벤트

Google Workspace 리소스에 대한 변경사항 이벤트는 CloudEvents 사양을 사용하여 형식이 지정되며 구독 이벤트 또는 수명 주기 이벤트일 수 있습니다.

구독 이벤트
모니터링 중인 Google Workspace 리소스에 대한 변경사항(예: Google Chat 스페이스의 새 메시지) 변경된 리소스에 관해 수신할 세부정보의 양을 지정할 수 있습니다. 자세한 내용은 Google Workspace 이벤트의 구조를 참고하세요.
수명 주기 이벤트
Google Workspace 구독에 관한 이벤트입니다. 수명 주기 이벤트는 정기 결제 이벤트의 누락을 방지할 수 있도록 정기 결제의 문제와 정기 결제 상태를 알려줍니다. 기본적으로 정기 결제는 항상 수명 주기 이벤트를 수신합니다. 자세한 내용은 Google Workspace 구독의 수명 주기 이벤트를 참고하세요.
Google Workspace 구독

Google Workspace 애플리케이션의 리소스를 모니터링하는 이름이 지정된 항목 정기 결제는 Subscription 리소스로 표현됩니다. 구독은 다음 정보로 정의됩니다.

대상 리소스
모니터링할 Google Workspace 리소스입니다. 이 리소스는 Google Workspace 구독의 targetResource 필드에 표시됩니다. 각 구독은 하나의 리소스만 모니터링할 수 있습니다. Google Workspace Events API가 지원하는 Google Workspace 리소스를 보려면 지원되는 Google Workspace 이벤트를 참고하세요.
이벤트 유형
대상 리소스에 대해 알림을 받을 변경 유형입니다. 예를 들어 Google Chat 스페이스를 구독한 경우 스페이스 및 하위 리소스에 대한 이벤트(예: 멤버십, 메시지)를 수신할지 선택할 수 있습니다.
알림 엔드포인트
Google Workspace 구독이 이벤트를 수신하는 엔드포인트입니다. Google Workspace Events API는 Google Cloud Pub/Sub 주제를 알림 엔드포인트로 지원합니다. Google Cloud Pub/Sub 사용에 대한 자세한 내용은 Google Cloud Pub/Sub 문서를 참조하세요.
페이로드 옵션
변경된 리소스에 대해 수신하려는 이벤트 데이터입니다.

지원되는 Google Workspace 이벤트

앱이 이벤트를 수신할 수 있는 이벤트는 정기 결제의 타겟 리소스에 따라 다릅니다. 다음 표에는 가능한 각 타겟 리소스에 지원되는 이벤트가 나와 있습니다.

대상 리소스 방식 지원되는 이벤트 제한사항 (해당하는 경우)
Google Chat
Google Chat 스페이스

특정 스페이스를 구독하려면 다음 단계를 따르세요.

//chat.googleapis.com/spaces/SPACE_ID

사용자가 참여자인 모든 스페이스를 구독하려면 다음 단계를 따르세요.

//chat.googleapis.com/spaces/-

  • 메시지
  • 멤버십
  • 리액션
  • 공백

자세한 내용은 Google Chat 이벤트 구독하기를 참고하세요.
구독을 승인하는 Google Chat 사용자는 Google Workspace 또는 Google 계정을 통해 스페이스의 구성원이어야 합니다.
Google Chat 사용자 //cloudidentity.googleapis.com/users/USER_ID
  • 멤버십

자세한 내용은 Google Chat 이벤트 구독하기를 참고하세요.

정기 결제는 정기 결제를 승인한 사용자에 대한 이벤트만 수신합니다. 사용자는 다른 사용자를 대신하여 정기 결제를 승인할 수 없습니다.

Google Meet
Google Meet 회의 공간 //meet.googleapis.com/spaces/SPACE_ID
  • 연맹
  • 참여자 세션
  • 녹화
  • 스크립트

자세한 내용은 Google Meet 이벤트 구독하기를 참고하세요.
Google Meet 사용자 //cloudidentity.googleapis.com/users/USER_ID
  • 연맹
  • 참여자 세션
  • 녹화
  • 스크립트

자세한 내용은 Google Meet 이벤트 구독하기를 참고하세요.

구독은 사용자가 다음 중 하나에 해당하는 회의 공간에 관한 이벤트를 수신합니다.

  • 회의 공간 소유자
  • 회의 공간과 연결된 Google Calendar 일정의 주최자입니다.

Google Workspace 이벤트의 구조

Google Workspace 이벤트는 이벤트 데이터를 설명하는 업계 표준 방법인 CloudEvents 사양을 따릅니다. Google Workspace 이벤트에는 다음이 포함됩니다.

  • CloudEvent의 속성
  • 이벤트로 인해 변경된 Google Workspace 리소스에 대한 데이터

다음 섹션에서는 Google Workspace 이벤트의 속성 및 데이터 구조를 설명합니다.

CloudEvent 속성

Google Workspace 이벤트에는 다음과 같은 필수 CloudEvents 속성이 포함됩니다.

속성 설명 예시

datacontenttype

이벤트에서 전달된 데이터 유형입니다.

application/json

id

CloudEvent의 식별자입니다.

spaces/AAAABBBBBBB/spaceEvents/ABCDEFGHIJKLMNO

source

이벤트의 소스입니다. Google Workspace 이벤트의 경우 구독의 전체 리소스 이름입니다. //workspaceevents.googleapis.com/subscriptions/chat-spaces-abcdefg

specversion

이 이벤트에 사용된 CloudEvents 사양 버전입니다.

1.0

subject

이벤트가 발생한 Google Workspace 리소스입니다.

//chat.googleapis.com/spaces/AAAABBBBBBB

time

이벤트가 발생한 타임스탬프입니다(RFC 3339 형식).

2023-09-07T21:37:36.260127Z

type

Google Workspace 이벤트의 유형입니다.

google.workspace.chat.message.v1.created

이벤트 데이터

이벤트 데이터는 대상 리소스의 하위 리소스를 포함하여 정기 결제의 대상 리소스 변경사항을 나타내는 페이로드입니다. 구독 시 페이로드에 변경된 리소스의 데이터를 포함할지 아니면 변경된 리소스의 이름만 포함할지 지정할 수 있습니다.

예를 들어 Chat 스페이스를 구독하는 경우 스페이스의 새 메시지에 대한 이벤트를 수신할 수 있습니다. 새 메시지 이벤트의 경우 이벤트 데이터에는 생성된 Chat spaces.message 리소스가 포함된 페이로드가 포함됩니다.

정기 결제를 만들 때 앱이 수신하는 이벤트에 포함할 리소스 데이터의 양을 지정할 수 있습니다.

  • 리소스 데이터 포함: 변경된 리소스의 일부 또는 모든 필드를 포함합니다. 리소스 데이터를 포함하도록 선택하면 구독 기간이 최대 4시간으로 제한되고, 도메인 전체 위임을 사용하는 경우에는 24시간으로 제한됩니다.
  • 리소스 데이터 제외: 변경된 리소스의 이름만 포함합니다. 구독 기간은 최대 7일입니다. 이벤트에 대한 세부정보를 가져오려면 리소스 이름을 사용하여 리소스를 쿼리하면 됩니다.

이러한 이벤트 데이터 옵션은 구독의 payloadOptions 필드에 표시됩니다.

Google Cloud Pub/Sub 메시지로서의 이벤트

Google Workspace Events API 구독은 Google Cloud Pub/Sub 주제를 Google Workspace 이벤트를 수신하는 알림 엔드포인트로 사용합니다. 이벤트는 Google Cloud Pub/Sub 메시지로 인코딩됩니다. 앱은 Google Cloud Pub/Sub 메시지를 처리하여 작업을 수행하거나 이벤트에 응답할 수 있습니다.

다음 예시는 Chat 스페이스의 업데이트된 메시지에 관한 이벤트가 포함된 Google Cloud Pub/Sub 메시지를 보여줍니다.

 {
    "message":
    {
        "attributes":
        {
            "ce-datacontenttype": "application/json",
            "ce-id": "spaces/SPACE_ID/spaceEvents/SPACE_EVENT_ID",
            "ce-source": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
            "ce-specversion": "1.0",
            "ce-subject": "//chat.googleapis.com/spaces/SPACE_ID",
            "ce-time": "2023-09-07T21:37:53.274191Z",
            "ce-type": "google.workspace.chat.message.v1.updated"
        },
        "data": "EVENT_DATA",
        "messageId": "PUBSUB_MESSAGE_ID",
        "orderingKey": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
        "publishTime": "2023-09-07T21:37:53.713Z"
    }
}

다음 필드를 참고하세요.

  • attributes: 이벤트 유형을 포함하는 CloudEvent 속성입니다. 이 경우 이벤트는 스페이스의 업데이트된 메시지에 관한 것입니다.
  • data: 업데이트된 spaces.message 리소스에 관한 세부정보가 포함된 이벤트 데이터로, Base64로 인코딩된 문자열 형식으로 지정됩니다.
  • messageId: Google Cloud Pub/Sub 메시지의 식별자입니다.

Google Cloud Pub/Sub 메시지에서 CloudEvents를 지정하는 방법에 대한 자세한 내용은 CloudEvents용 Google Cloud Pub/Sub 프로토콜 바인딩을 참조하세요.