이 페이지에서는 subscriptions.list()
메서드를 사용하여 Google Workspace 구독을 나열하는 방법을 설명합니다.
사용자 인증으로 이 메서드를 호출하면 메서드는 사용자가 승인한 정기 결제 목록을 반환합니다. 앱 인증을 사용하면 메서드에서 앱의 구독이 포함된 목록을 반환할 수 있습니다.
기본 요건
Apps Script
- Google Workspace 구독 정기 결제를 만들려면 정기 결제 만들기를 참고하세요.
구독의 모든 이벤트 유형을 지원하는 범위 하나 이상를 사용하여 사용자를 인증해야 합니다.
- Apps Script 프로젝트:
- Apps Script에서 자동으로 생성된 기본 프로젝트 대신 Google Cloud 프로젝트를 사용합니다.
- OAuth 동의 화면을 구성하기 위해 추가한 모든 범위의 경우 Apps Script 프로젝트의
appsscript.json
파일에 범위도 추가해야 합니다. 예를 들면 다음과 같습니다. Google Workspace Events
고급 서비스를 사용 설정합니다.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
Python
- Python 3.6 이상
- pip 패키지 관리 도구
- Python용 최신 Google 클라이언트 라이브러리 이를 설치하거나 업데이트하려면 명령줄 인터페이스에서 다음 명령어를 실행합니다.
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Google Workspace 구독 정기 결제를 만들려면 정기 결제 만들기를 참고하세요.
인증 필요:
- 사용자 인증의 경우 구독의 이벤트 유형 중 하나 이상을 지원하는 범위가 필요합니다. 범위를 식별하려면 이벤트 유형별 범위를 참고하세요.
- 앱 인증의 경우
chat.bot
범위가 필요합니다 (Google Chat 앱만 해당).
사용자가 승인한 구독 나열
구독을 나열하려면 하나 이상의 이벤트 유형을 기준으로 필터링해야 합니다. 하나 이상의 대상 리소스로 쿼리를 필터링할 수도 있습니다. 지원되는 쿼리 필터에 대한 자세한 내용은 list()
메서드 문서를 참고하세요.
다음 코드 샘플은 이벤트 유형 및 대상 리소스로 필터링된 Subscription
객체 배열을 반환합니다. 사용자로 인증되면 이 메서드는 사용자가 앱이 생성하도록 승인한 정기 결제 목록만 반환합니다.
지정된 이벤트 유형 및 타겟 리소스의 구독을 나열하려면 다음 단계를 따르세요.
Apps Script
Apps Script 프로젝트에서
listSubscriptions
라는 새 스크립트 파일을 만들고 다음 코드를 추가합니다.function listSubscriptions() { // Filter for event type (required). const eventType = 'EVENT_TYPE'; // Filter for target resource (optional). const targetResource = 'TARGET_RESOURCE'; const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"` // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.list({ filter }); console.log(response); }
다음을 바꿉니다.
EVENT_TYPE
: CloudEvents 사양에 따라 형식이 지정된 이벤트 유형입니다. 예를 들어 Google Chat 스페이스google.workspace.chat.message.v1.created
의 새 멤버십에 관한 이벤트를 수신하는 구독을 필터링합니다.TARGET_RESOURCE
: 전체 리소스 이름 형식의 타겟 리소스입니다. 예를 들어 Google Chat 스페이스 구독으로 필터링하려면//chat.googleapis.com/spaces/SPACE_ID
를 사용합니다. 여기서spaces/SPACE_ID
는Space
리소스의name
필드를 나타냅니다.
구독을 나열하려면 Apps Script 프로젝트에서
listSubscriptions
함수를 실행합니다.
Python
작업 디렉터리에서
list_subscriptions.py
라는 파일을 만들고 다음 코드를 추가합니다."""List subscriptions.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = ['SCOPE'] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES) CREDENTIALS = flow.run_local_server() # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) # Filter for event type (required). EVENT_TYPE = 'EVENT_TYPE' # Filter for target resource (optional). TARGET_RESOURCE = 'TARGET_RESOURCE' FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"' response = service.subscriptions().list(filter=FILTER).execute() print(response)
다음을 바꿉니다.
SCOPE
: 정기 결제의 이벤트 유형을 하나 이상 지원하는 OAuth 범위입니다. 예를 들어 구독이 업데이트된 Chat 스페이스에서 이벤트를 수신하는 경우https://www.googleapis.com/auth/chat.spaces.readonly
입니다.EVENT_TYPE
: CloudEvents 사양에 따라 형식이 지정된 이벤트 유형입니다. 예를 들어 Google Chat 스페이스google.workspace.chat.message.v1.created
의 새 멤버십에 관한 이벤트를 수신하는 구독을 필터링합니다.TARGET_RESOURCE
: 전체 리소스 이름 형식의 타겟 리소스입니다. 예를 들어 Google Chat 스페이스의 구독으로 필터링하려면//chat.googleapis.com/spaces/SPACE_ID
를 사용하세요. 여기서spaces/SPACE_ID
는Space
리소스의name
필드를 나타냅니다.
작업 디렉터리에서 OAuth 클라이언트 ID 사용자 인증 정보를 저장하고 파일 이름을
client_secrets.json
로 지정했는지 확인합니다. 코드 샘플에서는 이 JSON 파일을 사용하여 Google Workspace에 인증하고 사용자 인증 정보를 가져옵니다. 자세한 내용은 OAuth 클라이언트 ID 사용자 인증 정보 만들기를 참고하세요.구독을 나열하려면 터미널에서 다음을 실행합니다.
python3 list_subscriptions.py
Google Workspace Events API는 검색어의 필터와 일치하는 Subscription
객체의 페이징된 배열을 반환합니다.