Nesta página, explicamos como reativar uma assinatura suspensa do Google Workspace
resolvendo ou resolvendo erros e chamando o
método
subscriptions.reactivate()
.
As assinaturas do Google Workspace são suspensas sempre que um erro impede que a assinatura receba eventos. Por exemplo, uma assinatura é suspensa quando o recurso de destino ou o endpoint de notificação não é encontrado. Depois de resolver erros com a assinatura, é possível reativá-la para começar a receber eventos novamente.
Saiba mais sobre uma assinatura suspensa das seguintes maneiras:
- Seu app recebe um evento do ciclo de vida sobre a suspensão. Se a assinatura for suspensa devido a um erro no endpoint, talvez você não receba um evento de ciclo de vida.
- Use os métodos
subscriptions.get()
ousubscriptions.list()
para ver se o campostate
da assinatura está definido comoSUSPENDED
. - Você vai receber uma notificação sobre uma falha na entrega do endpoint de notificações. Para saber mais sobre o monitoramento de falhas de entrega para tópicos do Google Cloud Pub/Sub, consulte Gerenciar falhas de mensagens.
As assinaturas reativadas mantêm a data de validade original. Para prolongar o prazo de validade de uma assinatura, consulte Atualizar ou renovar uma assinatura.
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 do usuário com um ou mais escopos compatíveis com todos os tipos de evento da assinatura.
Identificar e resolver erros
Para identificar o erro de uma assinatura, consulte o campo
suspensionReason
dela. Esse campo pode ser encontrado ao receber um
evento de ciclo de vida sobre a suspensão
ou usando o método subscriptions.get()
para revisar todos os campos da
assinatura.
A tabela a seguir exibe possíveis erros de uma assinatura e, quando possível, como resolvê-los. Se você não conseguir resolver o erro, exclua a assinatura ou aguarde até que ela expire. A API Google Workspace Events exclui automaticamente as assinaturas expiradas.
Erro | Descrição | Formas de resolver |
---|---|---|
|
O usuário que fez a autorização revogou a concessão de um ou mais escopos OAuth necessários para a assinatura. | Consiga outro token de acesso. Para detalhes, consulte Receber um token de acesso do servidor de autorização do Google. |
|
O recurso de destino da assinatura foi excluído. | Se o recurso for restaurado, chame o método
reactivate() . Caso contrário, nenhuma ação será necessária, porque não é possível reativar uma
assinatura sem o recurso de destino original. |
|
O usuário que autoriza não tem mais acesso ao recurso da assinatura. | Você não precisa fazer nada. Não é possível reativar a assinatura porque o usuário que a autorizou não pode acessar o recurso de destino. |
|
O aplicativo do Google Workspace não tem acesso para enviar eventos ao endpoint de notificação. | Conceda acesso à conta de serviço para o aplicativo Google Workspace
que envia eventos. Para eventos do Google Chat, a conta de serviço é chat-api-push@system.gserviceaccount.com . Para eventos do Google Meet, a conta de serviço é
meet-api-event-push@system.gserviceaccount.com .Para tópicos do Pub/Sub, conceda o papel de Editor do Pub/Sub ( roles/pubsub.publisher)
à conta de serviço. |
|
O endpoint de notificação não existe ou não foi encontrado. | Verifique se o endpoint ainda está ativo e funcionando. Para solucionar problemas de tópicos do Pub/Sub, consulte a documentação sobre solução de problemas. |
|
O endpoint de notificação não recebeu eventos devido à cota insuficiente ou ao alcance da limitação de taxa. | Solicitar um aumento da cota. |
Reativar uma assinatura
Depois de resolver o erro que suspendeu sua assinatura, use
o método reactivate()
para permitir que a assinatura receba eventos novamente. O
método verifica se todos os erros foram resolvidos e muda o campo
state
da assinatura de SUSPENDED
para ACTIVE
.
Para reativar uma assinatura do Google Workspace, faça o seguinte:
Apps Script
No projeto do Apps Script, crie um novo arquivo de script chamado
reactivateSubscription
e adicione o seguinte código:function reactivateSubscription() { // The name of the subscription to reactivate. const name = 'subscriptions/SUBSCRIPTION_ID'; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.reactivate({}, name); console.log(response); }
Substitua:
Para reativar a assinatura do Google Workspace, execute a função
reactivateSubscription
no seu projeto do Apps Script.
Python
No diretório de trabalho, crie um arquivo chamado
reactivate_subscription.py
e adicione o seguinte código:"""Reactivate 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() # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) NAME = 'subscriptions/SUBSCRIPTION_ID' response = service.subscriptions().reactivate(name=NAME).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-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 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 reativar a assinatura do Google Workspace, execute o seguinte no seu terminal:
python3 reactivate_subscription.py
Subscription
.
Se a solicitação falhar, consulte a seção a seguir para solucionar outros erros.
Resolver vários erros
Se você resolveu o erro que suspendia a assinatura e o
método reactivate()
falhou, outro erro pode ter ocorrido após a
suspensão da assinatura.
Para identificar outros erros, analise a saída da solicitação com falha. A saída contém erros que ainda estão presentes.
Quando a assinatura tem vários erros, o valor do campo
suspensionReason
sempre usa o erro original que suspendeu a
assinatura.