Nesta página, explicamos como listar as 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 apps, o método pode retornar uma lista que contenha 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 projeto padrão criado automaticamente pelo Apps Script.
- Para todos os escopos adicionados para configurar a tela de permissão OAuth, é preciso adicioná-los ao arquivo
appsscript.json
no seu projeto do Apps Script. Exemplo:
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
- Ative
o serviço avançado
Google Workspace Events
.
Python
- Python 3.6 ou superior
- 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 autenticação de usuário, requer um escopo que seja 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, exige o escopo
chat.bot
(apenas apps do Google Chat).
Listar assinaturas autorizadas por um usuário
Para listar as assinaturas, filtre por pelo menos um tipo de evento. Também é possível filtrar a consulta por um ou mais recursos de destino. Para saber mais sobre os filtros de consulta
compatíveis, 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 usuário, o
método retorna apenas uma lista de assinaturas autorizadas pelo app a
criar.
Para listar assinaturas para um tipo de evento especificado e um recurso de destino:
Apps Script
No 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 por assinaturas que recebem eventos sobre novas associações 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 em um espaço do Google Chat, use//chat.googleapis.com/spaces/SPACE_ID
, em quespaces/SPACE_ID
representa o camponame
para o recursoSpace
.
Para listar as 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 compatível com pelo menos um tipo de evento da assinatura. Por exemplo, se sua assinatura receber eventos em 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 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 em um espaço do Google Chat, use//chat.googleapis.com/spaces/SPACE_ID
, em quespaces/SPACE_ID
representa o camponame
para o 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 se autenticar no Google Workspace e receber credenciais de usuário. Para instruções, consulte Criar credenciais de ID do cliente OAuth.Para listar as assinaturas, execute o seguinte no seu terminal:
python3 list_subscriptions.py
A API Eventos do Google Workspace retorna uma matriz paginada de objetos
Subscription
que correspondem ao filtro da sua consulta.