Nesta página, explicamos como renovar uma assinatura do Google Workspace usando o método
subscriptions.update()
. É possível usar esse método para atualizar o tempo de expiração de uma assinatura,
incluindo a renovação pelo tempo máximo possível, ou
para atualizar a lista de tipos de eventos a serem recebidos sobre o recurso de destino.
Apps Script
- Uma assinatura do Google Workspace. Para criar uma, consulte Criar uma 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 adicionados ao configurar a tela de permissão OAuth, você também precisa adicionar os
escopos ao arquivo
appsscript.json
no seu projeto do Apps Script. Por exemplo, se você especificou o escopochat.messages
, adicione o seguinte: - Ative
o serviço avançado do
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
Exige autenticação e um escopo de autorização adequado para cada tipo de evento na assinatura:
- Para autenticação de usuário, exige um ou mais escopos que ofereçam suporte a pelo menos um dos tipos de evento da assinatura. Para identificar um escopo, consulte Escopos por tipo de evento.
- Para se inscrever em um evento do Chat como um app do Chat, é necessário fazer a autenticação do app com aprovação única do administrador. A inscrição em um evento do Chat como um app do Chat está disponível na prévia para desenvolvedores.
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.
Exige autenticação e um escopo de autorização adequado para cada tipo de evento na assinatura:
- Para autenticação de usuário, exige um ou mais escopos que ofereçam suporte a pelo menos um dos tipos de evento da assinatura. Para identificar um escopo, consulte Escopos por tipo de evento.
- Para se inscrever em um evento do Chat como um app do Chat, é necessário fazer a autenticação do app com aprovação única do administrador. A inscrição em um evento do Chat como um app do Chat está disponível na prévia para desenvolvedores.
Renovar uma assinatura do Google Workspace
Nesta seção, você vai usar o método
subscriptions.update()
da API Google Workspace Events para renovar uma assinatura até o tempo máximo
de expiração. Para especificar o prazo de validade máximo, atualize o campo ttl
do recurso Subscription
para 0
.
O tempo máximo de expiração depende dos dados de recursos incluídos no payload do evento. Para saber mais sobre os tempos de expiração, consulte Dados de eventos do Google Workspace.
Para renovar uma assinatura do Google Workspace:
Apps Script
No projeto do Apps Script, crie um arquivo de script chamado
updateSubscription
e adicione o seguinte código:function updateSubscription() { // The name of the subscription to update. const name = 'subscriptions/SUBSCRIPTION_ID'; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.patch({ ttl: '0s', }, name); console.log(response); }
Substitua:
Para atualizar a assinatura do Google Workspace, execute a função
updateSubscription
no seu projeto do Apps Script.
Python
No diretório de trabalho, crie um arquivo chamado
update_subscription.py
e adicione o seguinte código:"""Update 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('credentials.json', SCOPES) CREDENTIALS = flow.run_local_server() # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) BODY = { 'ttl': {'seconds': 0}, } NAME = 'subscriptions/SUBSCRIPTION_ID' response = ( service.subscriptions() .patch(name=NAME, updateMask='ttl', body=BODY) .execute() ) print(response)
Substitua:
SCOPES
: um ou mais escopos do OAuth que oferecem suporte a cada tipo de evento da assinatura. Formatado como uma matriz de strings. Para listar vários escopos, separe-os por vírgulas. Por exemplo,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
.SUBSCRIPTION_ID
: o ID da assinatura. Para conseguir o ID, use uma destas opções:
No seu diretório de trabalho, verifique se você armazenou as credenciais de ID do cliente OAuth e nomeou o arquivo como
credentials.json
. O exemplo de código usa esse arquivo JSON para autenticar com o Google Workspace e receber credenciais de usuário. Para instruções, consulte Criar credenciais de ID do cliente OAuth.Para atualizar a assinatura do Google Workspace, execute o seguinte no terminal:
python3 update_subscription.py
Subscription
.
Para receber detalhes sobre o recurso Subscription
atualizado, use o método
operations.get()
e especifique o recurso Operation
retornado da sua solicitação subscriptions.update()
. Caso contrário, se você especificar um recurso Operation
de uma versão
anterior da assinatura, a resposta vai ficar vazia.
Atualizar ou renovar uma assinatura como um app do Google Chat
Você pode atualizar ou renovar uma assinatura de eventos do Chat como um app do Chat em vez de como um usuário. O processo é semelhante, exceto:
Em vez da autenticação do usuário, autentique como um app do Chat com aprovação única do administrador.
Especifique os escopos de autorização que permitem que o app do Chat se inscreva em eventos do Chat. Esses escopos de autorização sempre começam com
chat.app
e incluem o seguinte:https://www.googleapis.com/auth/chat.app.memberships
: inscrever-se em eventos de membros do espaço do Chat.https://www.googleapis.com/auth/chat.app.messages.readonly
: Inscreva-se nos eventos de mensagens do espaço do Chat.https://www.googleapis.com/auth/chat.app.spaces
: Assine eventos do espaço do Chat.
crie uma chave de API
Para chamar um método da API Developer Preview, use uma versão não pública do documento de descoberta da API. Para autenticar a solicitação, transmita uma chave de API.
Para criar a chave de API, abra o projeto do Google Cloud do app e faça o seguinte:
- No console do Google Cloud, acesse Menu > APIs e serviços > Credenciais.
- Clique em Criar credenciais > Chave de API.
- Sua nova chave de API é exibida.
- Clique em Copiar para copiar a chave de API e usar no código do app. A chave de API também pode ser encontrada na seção "Chaves de API" das credenciais do seu projeto.
- Para evitar o uso não autorizado, recomendamos restringir os locais e as APIs em que a chave de API pode ser usada. Para mais detalhes, consulte Adicionar restrições de API.
Escrever um script que chama a API Google Workspace Events
O exemplo de código a seguir atualiza uma assinatura do Google Workspace de um app do Chat:
Python
"""Update subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
SCOPES = [SCOPES]
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# Call the Workspace Events API using the service endpoint.
service = build(
'workspaceevents',
'v1beta',
credentials=CREDENTIALS,
discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
)
BODY = {
'ttl': {'seconds': 0},
}
NAME = 'subscriptions/SUBSCRIPTION_ID'
response = (
service.subscriptions()
.patch(name=NAME, updateMask='ttl', body=BODY)
.execute()
)
print(response)
Substitua:
SCOPES
: especifique escopos de autorização que permitam que o app do Chat se inscreva em eventos do Chat. Esses escopos de autorização sempre começam comchat.app
e incluem o seguinte:https://www.googleapis.com/auth/chat.app.memberships
: inscrever-se em eventos de membros do espaço do Chat.https://www.googleapis.com/auth/chat.app.messages.readonly
: Inscreva-se em eventos de mensagens e reações do espaço do Chat.https://www.googleapis.com/auth/chat.app.spaces
: Assine eventos do espaço do Chat.
API_KEY
: a chave de API que você criou para criar o endpoint de serviço da API Google Workspace Events.SUBSCRIPTION_ID
: o ID da assinatura. Para receber o ID, use qualquer uma das seguintes opções: