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:
- Seu 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 de entrega no endpoint de notificação. Para saber como monitorar falhas de entrega em tópicos do Pub/Sub do Google Cloud, consulte Processar falhas de mensagem.
As assinaturas reativadas mantêm a data de validade original. Para estender o tempo de expiração de uma assinatura, consulte Atualizar ou renovar uma assinatura.
Apps Script
- Uma assinatura do Google Workspace. Para criar uma, consulte Criar uma assinatura.
Requer a 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 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: - 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 a 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 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. | 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)
) à 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 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:
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 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.