En esta página, se explica cómo renovar una suscripción a Google Workspace con el método subscriptions.update()
. Puedes usar este método para actualizar la hora de vencimiento de una suscripción, lo que incluye renovarla por el tiempo de vencimiento máximo posible, o para actualizar la lista de tipos de eventos que se recibirán sobre el recurso objetivo.
Apps Script
- Una suscripción a Google Workspace Para crear una, consulta Cómo crear una suscripción.
- Un proyecto de Apps Script:
- Usa tu proyecto de Google Cloud en lugar del predeterminado que crea automáticamente Apps Script.
- Para todos los permisos que agregaste para configurar la pantalla de consentimiento de OAuth, también debes agregar los permisos al archivo
appsscript.json
en tu proyecto de Apps Script. Por ejemplo, si especificaste el permisochat.messages
, agrega lo siguiente: - Habilita el servicio avanzado de
Google Workspace Events
.
"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 del usuario, se requiere uno o más alcances que admitan al menos uno de los tipos de eventos de 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, se requiere la autenticación de la app con la aprobación única del administrador. La suscripción a un evento de Chat como app de Chat está disponible en la versión preliminar para desarrolladores.
Python
- Python 3.6 o una versión posterior
- La herramienta de administración de paquetes pip
- Las bibliotecas cliente de Google más recientes para Python. Para instalarlos o actualizarlos, 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 una, consulta Cómo crear 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 del usuario, se requiere uno o más alcances que admitan al menos uno de los tipos de eventos de 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, se requiere la autenticación de la app con la aprobación única del administrador. La suscripción a un evento de Chat como app de Chat está disponible en la versión preliminar para desarrolladores.
Renueva una suscripción a Google Workspace
En esta sección, usarás el método subscriptions.update()
de la API de Google Workspace Events para renovar una suscripción hasta su tiempo de vencimiento máximo. Para especificar el tiempo de vencimiento máximo, actualiza el campo ttl
del recurso Subscription
a 0
.
El tiempo máximo de vencimiento depende de los datos de recursos que se incluyan en la carga útil del evento. Para obtener más información sobre los tiempos de vencimiento, consulta Datos de eventos para eventos de Google Workspace.
Para renovar una suscripción a Google Workspace, sigue estos pasos:
Apps Script
En tu proyecto de Apps Script, crea un archivo de secuencia de comandos nuevo llamado
updateSubscription
y agrega el siguiente código:function updateSubscription() { // The name of the subscription to update. const name = 'subscriptions/SUBSCRIPTION_ID'; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.patch({ ttl: '0s', }, name); console.log(response); }
Reemplaza lo siguiente:
Para actualizar la suscripción a Google Workspace, ejecuta la función
updateSubscription
en tu proyecto de Apps Script.
Python
En tu directorio de trabajo, crea un archivo llamado
update_subscription.py
y agrega el siguiente código:"""Update 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, ) BODY = { 'ttl': {'seconds': 0}, } NAME = 'subscriptions/SUBSCRIPTION_ID' response = ( service.subscriptions() .patch(name=NAME, updateMask='ttl', body=BODY) .execute() ) print(response)
Reemplaza lo siguiente:
SCOPES
: Uno o más permisos de OAuth que admiten cada tipo de evento para la suscripción. Se da formato como un array de cadenas. Para enumerar varios permisos, sepáralos con comas. Por ejemplo,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
.SUBSCRIPTION_ID
: 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
. La muestra 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 actualizar la suscripción a Google Workspace, ejecuta lo siguiente en tu terminal:
python3 update_subscription.py
Subscription
.
Para obtener detalles sobre el recurso Subscription
actualizado, usa el método operations.get()
y especifica el recurso Operation
que se devolvió de tu solicitud subscriptions.update()
. De lo contrario, si especificas un recurso Operation
de una versión anterior de la suscripción, la respuesta estará vacía.
Actualiza o renueva una suscripción como una app de Google Chat
Puedes actualizar o renovar 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 los eventos de Chat. Estos permisos de autorización siempre comienzan con
chat.app
y incluyen lo siguiente:https://www.googleapis.com/auth/chat.app.memberships
: Suscríbete a los eventos de miembros del espacio de Chat.https://www.googleapis.com/auth/chat.app.messages.readonly
: Suscríbete a los eventos de mensajes del espacio de Chat.https://www.googleapis.com/auth/chat.app.spaces
: Suscríbete a los eventos del espacio de Chat.
Crea una clave de API
Para llamar a un método de la API de la versión preliminar para desarrolladores, debes usar una versión preliminar para desarrolladores no pública del documento de descubrimiento de la API. Para autenticar la solicitud, debes pasar una clave de API.
Para crear la clave de API, abre el proyecto de Google Cloud de tu app y haz lo siguiente:
- En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
- Haz clic en Crear credenciales > Clave de API.
- Se mostrará tu nueva clave de API.
- Haz clic en Copiar para copiar tu clave de API y usarla en el código de tu app. La clave de API también se puede encontrar en la sección "Claves de API" de las credenciales de tu proyecto.
- Para evitar el uso no autorizado, te recomendamos restringir dónde y para qué APIs se puede usar la clave de API. Para obtener más detalles, consulta Agrega restricciones de API.
Escribe una secuencia de comandos que llame a la API de Google Workspace Events
En el siguiente ejemplo de código, se actualiza la suscripción a Google Workspace de una app de Chat:
Python
"""Update 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,
discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
)
BODY = {
'ttl': {'seconds': 0},
}
NAME = 'subscriptions/SUBSCRIPTION_ID'
response = (
service.subscriptions()
.patch(name=NAME, updateMask='ttl', body=BODY)
.execute()
)
print(response)
Reemplaza lo siguiente:
SCOPES
: Especifica los permisos de autorización que permiten que la app de Chat se suscriba a los eventos de Chat. Estos permisos de autorización siempre comienzan conchat.app
y incluyen lo siguiente:https://www.googleapis.com/auth/chat.app.memberships
: Suscríbete a los eventos de miembros del espacio de Chat.https://www.googleapis.com/auth/chat.app.messages.readonly
: Suscríbete a los eventos de mensajes y reacciones del espacio de Chat.https://www.googleapis.com/auth/chat.app.spaces
: Suscríbete a los eventos del espacio de Chat.
API_KEY
: Es la clave de API que creaste para compilar el extremo de servicio de la API de Google Workspace Events.SUBSCRIPTION_ID
: ID de la suscripción. Para obtener el ID, puedes usar cualquiera de las siguientes opciones: