Esta página explica como reativar uma assinatura suspensa do Google Workspace
resolvendo ou solucionando 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 pode ser encontrado. Depois de resolver os erros da assinatura, você pode reativá-la para voltar a receber eventos.
Você pode saber mais sobre uma assinatura suspensa das seguintes maneiras:
- O app recebe um evento de ciclo de vida sobre a suspensão. Se a assinatura for suspensa devido a um erro com o endpoint, talvez você não receba um evento de ciclo de vida.
- Use os métodos
subscriptions.get()
ousubscriptions.list()
para saber se o campostate
da assinatura está definido comoSUSPENDED
. - Você recebe uma notificação sobre uma falha na entrega no seu endpoint de notificação. Para saber como monitorar falhas de entrega em tópicos do Google Cloud Pub/Sub, consulte Processar falhas de mensagens.
As assinaturas reativadas mantêm a data de validade original. Para estender 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 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:
"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 instalá-los ou atualizá-los, 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 do usuário com um ou mais escopos compatíveis com todos os tipos de eventos da assinatura.
Identificar e resolver erros
Para identificar o erro de uma assinatura, consulte o campo
suspensionReason
dela. Você pode encontrar esse campo quando receber um
evento de ciclo de vida sobre a suspensão
ou usando o método subscriptions.get()
para analisar todos os campos da
assinatura.
A tabela a seguir mostra 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 o vencimento dela. A API Google Workspace Events exclui assinaturas expiradas automaticamente.
Erro | Descrição | Formas de resolver |
---|---|---|
|
O usuário autorizado revogou a concessão de um ou mais escopos do OAuth necessários para a assinatura. | Consiga outro token de acesso. Para mais detalhes, consulte Receber um token de acesso do servidor de autorização do Google. |
|
O recurso de destino da assinatura é excluído. | Se o recurso for restaurado, chame o método reactivate() . Caso contrário, nenhuma ação é necessária, já que não é possível reativar uma
assinatura sem o recurso de destino original. |
|
O usuário autorizado não tem mais acesso ao recurso da assinatura. | Nenhuma ação é necessária. 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 do aplicativo do 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 resolver problemas com tópicos do Pub/Sub, consulte a documentação de solução de problemas. |
|
O endpoint de notificação não recebeu eventos devido a cota insuficiente ou 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 sua 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 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 das seguintes 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 do 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 resolver outros erros.
Resolver vários erros
Se você resolveu o erro que suspendeu a assinatura e o
método reactivate()
falhou, outro erro pode ter ocorrido depois que a
assinatura foi suspensa.
Para identificar outros erros, analise a saída da solicitação com falha. A saída contém todos os 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.