En esta página, se explica cómo reactivar una suscripción a Google Workspace
suspendida. Para ello, debes resolver o solucionar problemas relacionados con errores y llamar al
subscriptions.reactivate
método.
Las suscripciones a Google Workspace se suspenden cuando un error impide que la suscripción reciba eventos. Por ejemplo, una suscripción se suspende cuando no se puede encontrar su recurso de destino o su extremo de notificación. Después de resolver los errores de la suscripción, puedes reactivarla para volver a recibir eventos.
Obtén información sobre una suscripción suspendida de las siguientes maneras:
- Tu app recibe un evento de ciclo de vida sobre la suspensión. Si tu suscripción se suspende debido a un error con su extremo, es posible que no recibas un evento de ciclo de vida.
- Usa los métodos
subscriptions.getosubscriptions.listpara ver si el campostatede la suscripción está configurado comoSUSPENDED. - Recibirás una notificación sobre una falla de entrega a tu extremo de notificación. Para obtener información sobre cómo supervisar las fallas de entrega a temas de Google Cloud Pub/Sub, consulta Controla las fallas de mensajes.
Las suscripciones reactivadas conservan la fecha de vencimiento original. Para extender el tiempo de vencimiento de una suscripción, consulta Actualiza o renueva una suscripción a Google Workspace.
Apps Script
- Una suscripción a Google Workspace. Para crear uno, consulta Crea una suscripción.
- Un proyecto de Apps Script:
- Usa tu proyecto de Google Cloud en lugar del predeterminado que crea Apps Script automáticamente.
- Para todos los alcances que agregaste para configurar la pantalla de consentimiento de OAuth, también debes agregar los
alcances al archivo
appsscript.jsonen tu proyecto de Apps Script. Por ejemplo, si especificaste el alcancechat.messages, agrega lo siguiente: - Habilita
el
Google Workspace Eventsservicio avanzado.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
Requiere autenticación y un alcance de autorización adecuado para cada tipo de evento en la suscripción:
- Para la autenticación de usuarios, requiere uno o más alcances que admitan al menos uno de los tipos de eventos para la suscripción. Para identificar un alcance, consulta Alcances por tipo de evento.
- Para suscribirse a un evento de Chat como una app de Chat, requiere la autenticación de la app con la aprobación única del administrador.
Python
- Python 3.6 o una versión superior
- La herramienta de administración de paquetes pip
- Las bibliotecas cliente de Google más recientes para Python. Para instalarlas o actualizarlas, ejecuta el siguiente
comando en tu interfaz de línea de comandos:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Una suscripción a Google Workspace. Para crear uno, consulta Crea una suscripción.
Requiere autenticación y un alcance de autorización adecuado para cada tipo de evento en la suscripción:
- Para la autenticación de usuarios, requiere uno o más alcances que admitan al menos uno de los tipos de eventos para la suscripción. Para identificar un alcance, consulta Alcances por tipo de evento.
- Para suscribirse a un evento de Chat como una app de Chat, requiere la autenticación de la app con la aprobación única del administrador.
Identifica y resuelve errores
Para identificar el error de una suscripción, revisa el campo suspensionReason de la suscripción. Puedes encontrar este campo cuando recibes un evento de ciclo de vida
sobre la
suspensión o cuando usas
el método subscriptions.get para revisar todos los campos de la suscripción.
En la siguiente tabla, se muestran los posibles errores de una suscripción y, cuando es posible, cómo resolverlos. Si no puedes resolver el error, puedes borrar la suscripción o esperar a que venza. La API de Google Workspace Events borra automáticamente las suscripciones vencidas.
| Error | Descripción | Formas de resolver |
|---|---|---|
|
El usuario autorizador revocó el otorgamiento de uno o más alcances de OAuth que son necesarios para la suscripción. | Obtén otro token de acceso. Para obtener más detalles, consulta Obtén un token de acceso del servidor de autorización de Google. |
|
Se borró el recurso de destino de la suscripción. | Si se restablece el recurso, llama al reactivate
método. De lo contrario, no se requiere ninguna acción, ya que no puedes reactivar una
suscripción sin su recurso de destino original. |
|
El usuario autorizador ya no tiene acceso al recurso de la suscripción. | No se requiere ninguna acción. No puedes reactivar la suscripción, ya que el usuario que la autorizó no puede acceder al recurso de destino. |
|
La aplicación de Google Workspace no tiene acceso a entregar eventos a tu extremo de notificación. | Otorga acceso a la cuenta de servicio de la aplicación de Google Workspace que entrega eventos. Service accounts:
Para los temas de Pub/Sub, otorga el rol de publicador de Pub/Sub ( roles/pubsub.publisher)
a la cuenta de servicio. |
|
El extremo de notificación no existe o no se puede encontrar. | Verifica que el extremo siga activo y funcionando. Para solucionar problemas relacionados con temas de Pub/Sub, consulta la documentación de solución de problemas. |
|
El extremo de notificación no pudo recibir eventos debido a que la cuota es insuficiente o se alcanzó el límite de frecuencia. | Solicita un aumento de la cuota. |
|
El administrador del dominio revocó el otorgamiento de uno o más alcances de OAuth para la app de Chat. | Recibe la aprobación del administrador. |
|
La app de Chat que autorizó la creación de la suscripción ya no tiene acceso al recurso de destino de la suscripción. | Recupera el acceso al recurso de destino. Por ejemplo, si el recurso de destino es un espacio de Chat, es posible que la app de Chat necesite ser miembro del espacio. |
Reactiva una suscripción
Después de resolver el error que suspendió tu suscripción, usa el método reactivate para permitir que la suscripción vuelva a recibir eventos. El método verifica que se resuelvan todos los errores y cambia el campo state de tu suscripción de SUSPENDED a ACTIVE.
Para reactivar una suscripción a Google Workspace, haz lo siguiente:
Apps Script
En tu proyecto de Apps Script, crea un archivo de secuencia de comandos nuevo llamado
reactivateSubscriptiony agrega el siguiente 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); }Reemplaza lo siguiente:
Para reactivar la suscripción a Google Workspace, ejecuta la función
reactivateSubscriptionen tu proyecto de Apps Script.
Python
En tu directorio de trabajo, crea un archivo llamado
reactivate_subscription.pyy agrega el siguiente 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('credentials.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)Reemplaza lo siguiente:
SCOPES: Uno o más alcances de OAuth que admiten cada tipo de evento para la suscripción. Se formatea como un array de cadenas. Para enumerar varios alcances, sepáralos con comas. Por ejemplo,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.SUBSCRIPTION_ID: El ID de la suscripción. Para obtener el ID, puedes usar cualquiera de las siguientes opciones:
En tu directorio de trabajo, asegúrate de haber almacenado tus credenciales de ID de cliente de OAuth y de haber nombrado el archivo
credentials.json. El ejemplo de código usa este archivo JSON para autenticarse en Google Workspace y obtener credenciales de usuario. Para obtener instrucciones, consulta Crea credenciales de ID de cliente de OAuth.Para reactivar la suscripción a Google Workspace, ejecuta lo siguiente en tu terminal:
python3 reactivate_subscription.py
Subscription.
Si la solicitud falla, consulta la siguiente sección para solucionar problemas relacionados con errores adicionales.
Reactiva una suscripción como una app de Chat
Puedes reactivar una suscripción a eventos de Chat como una app de Chat en lugar de como un usuario. El proceso es similar, excepto por lo siguiente:
En lugar de la autenticación de usuarios, autentícate como una app de Chat con la aprobación única del administrador.
Especifica los alcances de autorización que permiten que la app de Chat se suscriba a eventos de Chat. Estos alcances de autorización siempre comienzan con
chat.appy incluyen lo siguiente:https://www.googleapis.com/auth/chat.app.memberships: Suscríbete a eventos de miembros del espacio de Chat.https://www.googleapis.com/auth/chat.app.memberships.readonly: Suscríbete a eventos de miembros del espacio de Chat.https://www.googleapis.com/auth/chat.app.messages.readonly: Suscríbete a eventos de mensajes y reacciones del espacio de Chat.https://www.googleapis.com/auth/chat.app.spaces: Suscríbete a eventos del espacio de Chat.https://www.googleapis.com/auth/chat.app.spaces.readonly: Suscríbete a eventos del espacio de Chat.
Escribe una secuencia de comandos que llame a la API de Google Workspace Events
En el siguiente ejemplo de código, se reactiva la suscripción a Google Workspace de una app de Chat:
Python
"""Reactivate 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,
)
NAME = 'subscriptions/SUBSCRIPTION_ID'
response = service.subscriptions().reactivate(name=NAME).execute()
print(response)
Reemplaza lo siguiente:
SCOPES: Especifica los alcances de autorización que permiten que la app de Chat se suscriba a eventos de Chat. Estos alcances de autorización siempre comienzan conchat.appy incluyen lo siguiente:https://www.googleapis.com/auth/chat.app.memberships: Suscríbete a eventos de miembros del espacio de Chat.https://www.googleapis.com/auth/chat.app.memberships.readonly: Suscríbete a eventos de miembros del espacio de Chat.https://www.googleapis.com/auth/chat.app.messages.readonly: Suscríbete a eventos de mensajes y reacciones del espacio de Chat.https://www.googleapis.com/auth/chat.app.spaces: Suscríbete a eventos del espacio de Chat.https://www.googleapis.com/auth/chat.app.spaces.readonly: Suscríbete a eventos del espacio de Chat.
SUBSCRIPTION_ID: El ID de la suscripción. Para obtener el ID, puedes usar cualquiera de las siguientes opciones:
Soluciona problemas relacionados con varios errores
Si resolviste el error que suspendió la suscripción y el método reactivate falla, es posible que se haya producido otro error después de que se suspendió la suscripción.
Para identificar errores adicionales, revisa el resultado de la solicitud fallida. El resultado contiene los errores que aún están presentes.
Cuando tu suscripción tiene varios errores, el valor del campo suspensionReason siempre usa el error original que suspendió tu suscripción.