Nesta página, explicamos 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 ver 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 mais sobre o monitoramento de falhas de entrega nos tópicos do Google Cloud Pub/Sub, consulte Solucionar 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 padrão criado automaticamente pelo Apps Script.
- Para todos os escopos adicionados para configurar a tela de permissão OAuth, também é necessário adicioná-los ao arquivo
appsscript.json
no seu projeto do Apps Script. Exemplo: - Ative
o serviço avançado
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
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.
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, analise 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 abaixo mostra possíveis erros de uma assinatura e, quando possível, como resolvê-los. Se não for possível resolver o erro, exclua a assinatura ou aguarde até que ela expire. 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. | Receber 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)
para a conta de serviço. |
|
O endpoint de notificação não existe ou não pode ser encontrado. | Verifique se o endpoint ainda está ativo e funcionando. Para solucionar problemas de 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:
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 autenticar com o Google Workspace e receber as credenciais do 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 próxima seção 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.