Nesta página, explicamos como usar a API Google Workspace Events para criar um assinatura de um recurso do Google Workspace. Uma assinatura do Google Workspace permite que o app receba informações sobre eventos do Google Workspace, o que para representar as mudanças em um recurso do Google Workspace. Para saber mais sobre quais recursos e tipos de evento são compatíveis com a API Google Workspace Events; consulte a visão geral da API Google Workspace Events.
Esta página inclui as etapas a seguir para criar um Google Workspace assinatura:
- Configurar o ambiente.
- Criar e assinar um tópico do Google Cloud Pub/Sub Você usa este tópico como um endpoint para receber eventos do Google Workspace.
- Chame o
create()
da API Google Workspace Events na classeSubscription
recurso. - Teste sua assinatura do Google Workspace para confirmar que o Pub/Sub recebe eventos nos quais você se inscreveu.
- Opcionalmente, configure como enviar eventos para um endpoint para seu aplicativo. que o app possa processar o evento e, se necessário, tomar providências.
Pré-requisitos
Apps Script
- Para usar os comandos da CLI do Google Cloud neste guia:
- Instale o Google Cloud CLI.
- Para
inicialize a CLI
gcloud
e execute este código:
gcloud init
- um projeto do Google Cloud; com o faturamento ativado. Para assinaturas do Chat, você precisa: ativar a API Chat no projeto do Cloud configure o Nome do app, o URL do avatar e a Descrição campos. Para mais detalhes, consulte Criar um app do Google Chat.
- Exige autenticação do usuário com a tela de permissão OAuth configurada para o app. Ao configurar a tela de consentimento, especifique um escopo para oferecem suporte a cada tipo de evento da assinatura. Para configurar o consentimento e identificar os escopos necessários, consulte Escolher escopos.
- Um projeto do Apps Script:
- Use seu projeto do Google Cloud em vez do projeto padrão criado automaticamente pelo Apps Script.
- Para os escopos adicionados para configurar a tela de permissão OAuth, também é necessário adicionar o
escopos para o arquivo
appsscript.json
no seu projeto do Apps Script. Exemplo:
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
- Ativar
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 instalá-los ou atualizá-los, execute o seguinte
na interface de linha de comando:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Para usar os comandos da CLI do Google Cloud neste guia:
- Instale o Google Cloud CLI.
- Para
inicialize a CLI
gcloud
e execute este código:
gcloud init
- um projeto do Google Cloud; com o faturamento ativado. Para assinaturas do Chat, você precisa: ativar a API Chat no projeto do Cloud configure o Nome do app, o URL do avatar e a Descrição campos. Para mais detalhes, consulte Criar um app do Google Chat.
- Exige autenticação do usuário com a tela de permissão OAuth configurada para o app. Ao configurar a tela de consentimento, especifique um escopo para oferecem suporte a cada tipo de evento da assinatura. Para configurar o consentimento e identificar os escopos necessários, consulte Escolher escopos.
Configurar o ambiente
A seção a seguir explica como configurar o ambiente antes da criação é necessário ter uma assinatura do Google Workspace.
Ative a API Google Workspace Events e a API Google Cloud Pub/Sub
Antes de usar as APIs do Google, você precisa ativá-las em um projeto do Google Cloud. É possível ativar uma ou mais APIs em um único projeto do Google Cloud.Console do Google Cloud
No console do Google Cloud, abra o projeto do Google Cloud do seu app e ative a API Google Workspace Events e API Pub/Sub:
gcloud
No diretório de trabalho, faça login na sua Conta do Google:
gcloud auth login
Defina seu projeto como o projeto do Cloud do seu app:
gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo ID do projeto do Cloud do seu app.Ative a API Google Workspace Events e o Google Cloud Pub/Sub API:
gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
Criar credenciais de ID do cliente OAuth
Escolha seu tipo de aplicativo para conferir instruções específicas sobre como criar um ID do cliente OAuth:
Aplicativo da Web
- No console do Google Cloud, acesse Menu > APIs e Serviços > Credenciais.
- Clique em Criar credenciais > ID do cliente OAuth.
- Clique em Tipo de aplicativo > Aplicativo da Web.
- No campo Nome, digite um nome para a credencial. Esse nome só é mostrado no console do Google Cloud.
- Adicione URIs autorizados relacionados ao app:
- Apps do lado do cliente (JavaScript): em Origens JavaScript autorizadas, clique em Adicionar URI. Em seguida, insira um URI a ser usado para solicitações do navegador. Isso identifica os domínios dos quais seu aplicativo pode enviar solicitações de API para o servidor OAuth 2.0.
- Apps do lado do servidor (Java, Python e mais): em URIs de redirecionamento autorizados, clique em Adicionar URI. Em seguida, insira um URI de endpoint para o qual o servidor OAuth 2.0 pode enviar respostas.
- Clique em Criar. A tela criada pelo cliente OAuth será exibida, mostrando o novo ID e a chave secreta do cliente.
Anote o ID do cliente. As chaves secretas não são usadas para aplicativos da Web.
- Clique em OK. A credencial recém-criada aparece em IDs do cliente do OAuth 2.0.
Android
- No console do Google Cloud, acesse Menu > APIs e Serviços > Credenciais.
- Clique em Criar credenciais > ID do cliente OAuth.
- Clique em Tipo de aplicativo > Android.
- No campo "Nome", digite um nome para a credencial. Esse nome só é mostrado no console do Google Cloud.
- No campo "Package name" (Nome do pacote), digite o nome do pacote do arquivo
AndroidManifest.xml
. - Na "Impressão digital do certificado SHA-1" digite a impressão digital gerada pelo certificado SHA-1.
- Clique em Criar. A tela criada pelo cliente OAuth vai aparecer, mostrando o novo ID do cliente.
- Clique em OK. A credencial recém-criada aparece em "IDs do cliente OAuth 2.0".
iOS
- No console do Google Cloud, acesse Menu > APIs e Serviços > Credenciais.
- Clique em Criar credenciais > ID do cliente OAuth.
- Clique em Tipo de aplicativo > iOS.
- No campo "Nome", digite um nome para a credencial. Esse nome só é mostrado no console do Google Cloud.
- Em "ID do pacote" digite o identificador do pacote conforme listado no arquivo
Info.plist
do app. - Opcional: se o seu aplicativo aparecer na App Store da Apple, digite o ID da App Store.
- Opcional: em "ID da equipe" digite a string exclusiva de 10 caracteres, gerada pela Apple e atribuída à sua equipe.
- Clique em Criar. A tela criada pelo cliente OAuth será exibida, mostrando o novo ID e a chave secreta do cliente.
- Clique em OK. A credencial recém-criada aparece em "IDs do cliente OAuth 2.0".
App do Chrome
- No console do Google Cloud, acesse Menu > APIs e Serviços > Credenciais.
- Clique em Criar credenciais > ID do cliente OAuth.
- Clique em Tipo de aplicativo > App do Chrome.
- No campo "Nome", digite um nome para a credencial. Esse nome só é mostrado no console do Google Cloud.
- No campo "ID do aplicativo", digite a string de ID exclusiva de 32 caracteres do seu aplicativo. Você pode encontrar esse valor de ID no URL da Chrome Web Store do seu app e no Painel de controle do desenvolvedor da Chrome Web Store.
- Clique em Criar. A tela criada pelo cliente OAuth será exibida, mostrando o novo ID e a chave secreta do cliente.
- Clique em OK. A credencial recém-criada aparece em "IDs do cliente OAuth 2.0".
App para computador
- No console do Google Cloud, acesse Menu > APIs e Serviços > Credenciais.
- Clique em Criar credenciais > ID do cliente OAuth.
- Clique em Tipo de aplicativo > App para computador.
- No campo Nome, digite um nome para a credencial. Esse nome só é mostrado no console do Google Cloud.
- Clique em Criar. A tela criada pelo cliente OAuth será exibida, mostrando o novo ID e a chave secreta do cliente.
- Clique em OK. A credencial recém-criada aparece em IDs do cliente OAuth 2.0.
TVs e Dispositivos de entrada limitada
- No console do Google Cloud, acesse Menu > APIs e Serviços > Credenciais.
- Clique em Criar credenciais > ID do cliente OAuth.
- Clique em Tipo de aplicativo > TVs e Dispositivos de entrada limitada.
- No campo "Nome", digite um nome para a credencial. Esse nome só é mostrado no console do Google Cloud.
- Clique em Criar. A tela criada pelo cliente OAuth será exibida, mostrando o novo ID e a chave secreta do cliente.
- Clique em OK. A credencial recém-criada aparece em "IDs do cliente OAuth 2.0".
Plataforma Universal do Windows (UWP)
- No console do Google Cloud, acesse Menu > APIs e Serviços > Credenciais.
- Clique em Criar credenciais > ID do cliente OAuth.
- Clique em Tipo de aplicativo > Plataforma Universal do Windows (UWP).
- No campo "Nome", digite um nome para a credencial. Esse nome só é mostrado no console do Google Cloud.
- Em "ID da loja" , insira o valor exclusivo do ID da Microsoft Store de 12 caracteres para seu aplicativo. Encontre esse ID no URL da Microsoft Store do seu app e na Central de parceiros.
- Clique em Criar. A tela criada pelo cliente OAuth será exibida, mostrando o novo ID e a chave secreta do cliente.
- Clique em OK. A credencial recém-criada aparece em "IDs do cliente OAuth 2.0".
Baixe o arquivo JSON da chave secreta do cliente
O arquivo de chave secreta do cliente é uma representação JSON do ID do cliente OAuth credenciais que o app pode mencionar ao fornecer credenciais.
No console do Google Cloud, acesse o menu > APIs e Serviços > Credenciais.
Em IDs do cliente OAuth 2.0, clique no ID do cliente que você criou.
Clique em Fazer o download do JSON.
Salve o arquivo como
client_secrets.json
.
criar e assinar um tópico do Pub/Sub;
Nesta seção, você vai criar um tópico e uma assinatura do Pub/Sub ao tópico. Seu tópico do Pub/Sub serve como endpoint de notificação em que sua assinatura do Google Workspace recebe eventos.
Para saber mais sobre como criar e gerenciar tópicos do Pub/Sub, consulte a API Pub/Sub documentação ,
Para criar e se inscrever em um tópico do Pub/Sub:
Console do Google Cloud
No console do Google Cloud, acesse a página do Pub/Sub:
Acessar o Google Cloud Pub/Sub
Verifique se o projeto do Cloud para seu app está selecionado.
Clique em
Criar tópico e faça o seguinte:- Insira um nome para o tópico, como
workspace-events-topic
. - Deixe a opção Adicionar uma assinatura padrão selecionada. O Pub/Sub dá esse nome
padrão similar ao nome do tópico, como
workspace-events-topic-sub
: - Opcional: atualizar ou configurar outras propriedades para seu tópico.
- Insira um nome para o tópico, como
Clique em Criar. O nome completo do seu tópico está formatado como
projects/PROJECT_ID/topics/TOPIC_ID
: Você usará esse nome completo em uma etapa posterior.Conceda acesso para publicar mensagens do Pub/Sub no seu tópico:
- Na página do seu tópico, acesse o painel lateral e abra o Guia Permissões.
- Clique em Adicionar principal.
- No campo Adicionar participantes, adicione a conta de serviço do
aplicativo do Google Workspace que envia eventos para
assinatura:
- Para eventos do Chat,
chat-api-push@system.gserviceaccount.com
: - Nos eventos do Meet,
meet-api-event-push@system.gserviceaccount.com
:
- Para eventos do Chat,
- No menu Atribuir funções, selecione
Pub/Sub Publisher
. - Clique em Salvar. A atualização das permissões pode levar alguns minutos para seu tópico.
gcloud
No projeto do Cloud, execute o comando a seguir para criar um tópico comando:
gcloud pubsub topics create TOPIC_ID
Substitua
TOPIC_ID
por um ID exclusivo para o tópico, como comoworkspace-events-topic
.A saída mostra o nome completo do tópico, formatado como
projects/PROJECT_ID/topics/TOPIC_ID
: Anote o nome e confirme se o valor PROJECT_ID é o ID do projeto do Cloud. para seu app. Você usará o nome do tópico na etapa a seguir e para criar a assinatura do Google Workspace depois.Conceda acesso para publicar mensagens no seu tópico:
gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'
Substitua:
TOPIC_NAME
: o nome completo do tópico, que é o da etapa anterior. Formatado comoprojects/PROJECT_ID/topics/TOPIC_ID
:GOOGLE_WORKSPACE_APPLICATION
: o aplicativo do Google Workspace que precisa entregar eventos para sua assinatura:- Para receber eventos do Chat, use
chat-api-push@system.gserviceaccount.com
: - Para receber eventos do Meet, use
meet-api-event-push@system.gserviceaccount.com
:
- Para receber eventos do Chat, use
A atualização das permissões do tópico pode levar alguns minutos.
Crie uma assinatura do Pub/Sub para o tópico:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME
Substitua:
SUBSCRIPTION_NAME
: um nome para sua assinatura. comoworkspace-events-subscription
.TOPIC_NAME
: o nome do tópico que você criou na etapa anterior.
Inscrever-se em um recurso do Google Workspace
Nesta seção, você vai se inscrever no recurso do Google Workspace que que você quer monitorar.
Escolha e identifique o recurso de destino
Em uma assinatura do Google Workspace, o recurso de destino é o
recurso do Google Workspace que você monitora para eventos. O objetivo
recurso é representado no campo targetResource
da assinatura, formatado usando
o nome completo do recurso. Por exemplo, para uma assinatura que monitora um
Espaço do Google Chat (spaces/AAAABBBBBBB
), o valor de targetResource
é
//chat.googleapis.com/spaces/AAAABBBBBBB
Antes de criar a assinatura, use as seções a seguir para saber como identificar e formatar o recurso de destino.
Identificar um recurso de destino para o Chat
Recurso de destino | Formato | Limitações |
---|---|---|
Espaço |
em que SPACE é o ID na
Nome do recurso do recurso |
O usuário do Chat que autorizar a inscrição precisa participar do espaço usando as credenciais do Google Workspace do Google. |
Todos os espaços de um usuário |
|
A assinatura só recebe eventos dos espaços em que o usuário um membro usando a Conta do Google ou do Google Workspace. |
Usuário |
em que USER é o ID na
Nome do recurso do recurso |
A assinatura só recebe eventos sobre o usuário que autorizou a assinatura. Um usuário não consegue autorizar uma assinatura no em nome de outros usuários. |
Identificar um recurso de destino para o Meet
Recurso de destino | Formato | Limitações (se aplicável) |
---|---|---|
Espaço para reuniões | //meet.googleapis.com/spaces/SPACE
em que SPACE é o ID na
Nome do recurso do recurso |
|
Usuário | //cloudidentity.googleapis.com/users/USER
em que USER é o ID na
|
A assinatura recebe eventos sobre espaços para reuniões em que usuário é um dos seguintes:
|
Criar uma assinatura do Google Workspace
Para criar uma assinatura, use a API Google Workspace Events
subscriptions.create()
para criar um
Subscription
recurso. Você especifica os seguintes campos:
targetResource
: um Google Workspace que você identificou na seção anterior, formatada usando o nome completo do recurso.eventTypes
: uma matriz de um ou mais tipos de evento sobre os quais você quer receber o recurso. Por exemplo, se o app só precisa saber sobre novas mensagens for postado em um espaço do Chat, o app poderá apenas se inscrever em eventos sobre as mensagens criadas.notificationEndpoint
: um endpoint de notificação em que seu A assinatura do Google Workspace oferece eventos. Você usa o do Pub/Sub que você criou na seção anterior.payloadOptions
: opções para especificar quantos dados de recursos serão incluídos. o payload do evento. Essa configuração afeta o prazo de validade assinatura. Para saber mais, consulte Eventos dados.
Para criar uma assinatura do Google Workspace:
Apps Script
No seu projeto do Apps Script, crie um novo arquivo de script chamado
createSubscription
e adicione o seguinte código:function createSubscription() { // The Google Workspace resource to monitor for events. const targetResource = 'TARGET_RESOURCE'; // The types of events to receive. const eventTypes = [EVENT_TYPES]; // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. const pubsubTopic = 'TOPIC_NAME'; // Whether to include resource data or not. const resourceData = RESOURCE_DATA; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.create({ targetResource: targetResource, eventTypes: eventTypes, notificationEndpoint: { pubsubTopic: pubsubTopic, }, payloadOptions: { includeResource: resourceData } }); console.log(response); }
Substitua:
TARGET_RESOURCE
: o recurso do Google Workspace que você está assinando, formatado como o nome completo do recurso. Para exemplo, para se inscrever em um espaço do Google Chat com o IDAAAABBBB
, use//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: um ou mais tipos de evento em que você quer se inscrever no recurso de destino. Formatar como um matriz de strings, como'google.workspace.chat.message.v1.created'
.TOPIC_NAME
: o nome completo do tópico do Pub/Sub que que você criou no projeto do Cloud. Formatado comoprojects/PROJECT_ID/topics/TOPIC_ID
:RESOURCE_DATA
: um booleano que especifica se o A assinatura inclui dados de recursos no payload:True
: inclui todos os dados de recursos. Para limitar quais campos são incluído, adicione ofieldMask
e especifique pelo menos um campo para o recurso alterado. Somente inscrições no suporte aos recursos do Chat, como dados de recursos.False
: exclui dados de recursos.
Para criar a assinatura do Google Workspace, execute a função
createSubscription
no seu projeto do Apps Script.
Python
No diretório de trabalho, crie um arquivo chamado
create_subscription.py
e adicione o seguinte código:"""Create subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES) CREDENTIALS = flow.run_local_server() # The Google Workspace resource to monitor for events. TARGET_RESOURCE = 'TARGET_RESOURCE' # The types of events to receive. EVENT_TYPES = [EVENT_TYPES] # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. TOPIC = 'TOPIC_NAME' # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) BODY = { 'target_resource': TARGET_RESOURCE, 'event_types': EVENT_TYPES, 'notification_endpoint': {'pubsub_topic': TOPIC}, 'payload_options': {'include_resource': RESOURCE_DATA}, } response = service.subscriptions().create(body=BODY).execute() print(response)
Substitua:
SCOPES
: um ou mais escopos do OAuth compatíveis com cada tipo de evento. para a assinatura. Formatado como uma matriz de strings. Para listar vários escopos, separe por vírgulas. Por exemplo,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
.TARGET_RESOURCE
: o recurso do Google Workspace que você está assinando, formatado como o nome completo do recurso. Para exemplo, para se inscrever em um espaço do Google Chat com o IDAAAABBBB
, use//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: um ou mais tipos de evento em que você quer se inscrever no recurso de destino. Formatar como um matriz de strings, como'google.workspace.chat.message.v1.created'
.TOPIC_NAME
: o nome completo do tópico do Pub/Sub que que você criou no projeto do Cloud. Formatado comoprojects/PROJECT_ID/topics/TOPIC_ID
:RESOURCE_DATA
: um booleano que especifica se o A assinatura inclui dados de recursos no payload:True
: inclui todos os dados de recursos. Para limitar quais campos são incluído, adicione ofieldMask
e especifique pelo menos um campo para o recurso alterado. Somente inscrições no suporte aos recursos do Chat, como dados de recursos.False
: exclui dados de recursos.
Para criar a assinatura do Google Workspace, execute o seguinte em seu terminal:
python3 create_subscription.py
A API Google Workspace Events retorna um arquivo de longa duração
operação que contém a
instância do recurso Subscription
que você criou.
Testar sua assinatura do Google Workspace
Para testar se você está recebendo eventos do Google Workspace, acione uma o evento e as mensagens de pull para a assinatura do Pub/Sub.
Para testar sua assinatura do Google Workspace, faça o seguinte:
Console do Google Cloud
Acione um ou mais tipos de eventos no recurso de destino da assinatura do Google Workspace. Por exemplo, se você assinou novos mensagens em um espaço do Chat, postar uma mensagem no espaço.
No console do Google Cloud, acesse a página do Pub/Sub:
Verifique se o projeto do Cloud para seu app está selecionado.
No menu Pub/Sub, clique em Assinaturas.
Na tabela, encontre a assinatura do Pub/Sub do seu tópico e clique em o nome da assinatura.
Clique na guia Mensagens.
Clique em Pull. Pode levar alguns minutos para que um evento gere uma Mensagem do Pub/Sub.
gcloud
Acione um ou mais tipos de eventos no recurso de destino da assinatura do Google Workspace. Por exemplo, se você assinou novos mensagens em um espaço do Chat, postar uma mensagem no espaço.
Execute este comando:
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack
Substitua:
PUBSUB_SUBSCRIPTION_NAME
: o nome completo do Assinatura do Pub/Sub, formatada comoprojects/SUBSCRIPTION_ID/subscriptions/SUBSCRIPTION_ID
.MESSAGE_COUNT
: o número máximo de mensagens do Pub/Sub que você quer extrair.
Pode levar alguns minutos para um evento gerar um Pub/Sub mensagem.
Para cada evento do Google Workspace acionado, uma mensagem é entregue à assinatura do Pub/Sub que contém o evento. Para mais detalhes, consulte Como receber eventos como mensagens do Google Cloud Pub/Sub.
Configurar como o app recebe eventos
A assinatura do Pub/Sub que você criou é baseada em pull. Depois de testar que sua assinatura do Pub/Sub, é possível atualizar o tipo de entrega para alterar como seu app recebe eventos. Por exemplo, é possível configurar o Pub/Sub assinatura de um tipo de entrega por push, para que o aplicativo possa receber eventos diretamente a um endpoint de app.
Para saber como configurar uma assinatura do Pub/Sub, consulte esta página Documentação.