Esta página explica como listar assinaturas do Google Workspace usando o método
subscriptions.list()
.
Quando você chama esse método com autenticação do usuário, ele retorna uma lista de assinaturas autorizadas pelo usuário. Quando você usa a autenticação de app, o método pode retornar uma lista que contém qualquer assinatura do app.
Pré-requisitos
Apps Script
- Uma assinatura do Google Workspace. Para criar uma, consulte Criar uma assinatura.
Requer autenticação do usuário com um ou mais escopos compatíveis com todos os tipos de evento da assinatura.
- Um projeto do Apps Script:
- Use seu projeto do Google Cloud em vez do padrão criado automaticamente pelo Apps Script.
- Para todos os escopos que você adicionou para configurar a tela de consentimento do OAuth, também é necessário adicionar os escopos ao arquivo
appsscript.json
no seu projeto do Apps Script. Exemplo: - Ative
o serviço avançado
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
Python
- Python 3.6 ou mais recente
- A ferramenta de gerenciamento de pacotes pip
- As bibliotecas de cliente mais recentes do Google para Python. Para instalar ou atualizar, execute o seguinte comando na interface de linha de comando:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Uma assinatura do Google Workspace. Para criar uma, consulte Criar uma assinatura.
Requer autenticação:
- Para a autenticação do usuário, é necessário um escopo compatível com pelo menos um dos tipos de evento da assinatura. Para identificar um escopo, consulte Escopos por tipo de evento.
- Para a autenticação de apps, requer o escopo
chat.bot
(somente apps do Google Chat).
Listar assinaturas autorizadas por um usuário
Para listar as assinaturas, você precisa filtrar pelo menos um tipo de evento. Também é possível
filtrar sua consulta por um ou mais recursos de destino. Para saber mais sobre filtros de consulta
com suporte, consulte a documentação do método
list()
.
O exemplo de código a seguir retorna uma matriz de objetos Subscription
filtrados por tipo de evento e recurso de destino. Quando autenticado como um usuário, o
método só retorna uma lista de assinaturas que o usuário autorizou o app a
criar.
Para listar assinaturas de um tipo de evento especificado e de um recurso de destino:
Apps Script
No seu projeto do Apps Script, crie um novo arquivo de script chamado
listSubscriptions
e adicione o seguinte código: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); }
Substitua:
EVENT_TYPE
: um tipo de evento formatado de acordo com a especificação do CloudEvents. Por exemplo, para filtrar assinaturas que recebem eventos sobre novos membros em um espaço do Google Chat,google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: um recurso de destino, formatado como o nome completo do recurso. Por exemplo, para filtrar por assinaturas de um espaço do Google Chat, use//chat.googleapis.com/spaces/SPACE_ID
, em quespaces/SPACE_ID
representa o camponame
do recursoSpace
.
Para listar assinaturas, execute a função
listSubscriptions
no seu projeto do Apps Script.
Python
No diretório de trabalho, crie um arquivo chamado
list_subscriptions.py
e adicione o seguinte código:"""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)
Substitua:
SCOPE
: um escopo do OAuth que oferece suporte a pelo menos um tipo de evento da assinatura. Por exemplo, se a assinatura receber eventos de um espaço do Chat atualizado,https://www.googleapis.com/auth/chat.spaces.readonly
.EVENT_TYPE
: um tipo de evento formatado de acordo com a especificação do CloudEvents. Por exemplo, para filtrar por assinaturas que recebem eventos sobre novas associações a um espaço do Google Chat,google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: um recurso de destino, formatado como o nome completo do recurso. Por exemplo, para filtrar por assinaturas de um espaço do Google Chat, use//chat.googleapis.com/spaces/SPACE_ID
, em quespaces/SPACE_ID
representa o camponame
do recursoSpace
.
No diretório de trabalho, verifique se você armazenou as credenciais do ID do cliente OAuth e nomeou o arquivo como
client_secrets.json
. O exemplo de código usa esse arquivo JSON para autenticar com o Google Workspace e receber as credenciais do usuário. Para instruções, consulte Criar credenciais de ID do cliente do OAuth.Para listar as assinaturas, execute o seguinte no seu terminal:
python3 list_subscriptions.py
A API Google Workspace Events retorna uma matriz paginada de objetos Subscription
que correspondem ao filtro da sua consulta.