Importa datos a Google Chat

Con la API de Google Chat, puedes importar datos de tus otras plataformas de mensajería a Google Chat. Puedes importar mensajes, archivos adjuntos, reacciones, membresías y entidades espaciales existentes desde tus otras plataformas de mensajería a los recursos de la API de Chat correspondientes. Para importar estos datos, crea espacios de Chat en modo de importación y, luego, importa datos a esos espacios.

A continuación, se incluye una descripción general de los pasos para importar datos mediante un espacio de modo de importación:

  1. Revisa los límites de uso de las APIs y planifica con anticipación.
  2. Configura la autorización para la app de Chat.
  3. Crea un espacio en modo de importación.
  4. Importar recursos.
  5. Valida los recursos importados.
  6. Concilie las diferencias de recursos importados con los datos de origen.
  7. Modo de importación completo.
  8. Crea recursos de membresías.

Requisitos previos

Python

  • Python 3.6 o superior
  • 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 la interfaz de línea de comandos:

    pip3 install --upgrade google-api-python-client google-auth
    
  • Una app de Chat. Para crear una app de Chat, consulta Crea apps de Chat.

  • Autorización configurada para la app de Chat. Se le debe delegar a la app de Chat la autoridad de todo el dominio en cualquier dominio en el que la app importe contenido. Consulta Autoriza apps de chat.

Revisa los límites de uso de las APIs y planifica con anticipación

El tiempo necesario para importar datos a Chat puede variar mucho según la cantidad de recursos de Chat que se importen. A fin de planificar con anticipación, revisa los límites de uso de tu app de Chat y la cantidad de datos programados para importar desde la plataforma de mensajería de origen a fin de determinar un cronograma estimado.

Crea un espacio en modo de importación

Para crear un espacio en modo de importación, llama al método create en el recurso Space y establece importMode en true. Para conservar la hora de creación de la entidad de espacio equivalente de la plataforma de mensajería de origen, puedes configurar el createTime del espacio. Este createTime debe establecerse en un valor entre el 1 de enero de 2000 y la fecha actual.

Toma nota del name del espacio que crees para poder hacer referencia a él en pasos posteriores cuando importes contenido al espacio.

Desde el momento en que se llama al método create, las apps de Chat tienen 30 días para importar recursos, sin incluir las membresías, al espacio, completar el modo de importación y crear recursos de membresía con el alcance chat.import. Las apps de Chat aún pueden crear membresías después de 30 días con los permisos de membresía estándar de la API de Chat. Después de 30 días, si el espacio aún está en el modo de importación, se borrará automáticamente y la app de Chat ya no podrá acceder a él y no lo podrá recuperar. Planifica con antelación revisando los límites de uso de la app de Chat para asegurarte de que todos los recursos programados se puedan importar a Chat dentro de este período.

En el siguiente ejemplo, se muestra cómo crear un espacio en el modo de importación:

Python

"""Create a space in import mode."""

import datetime

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
DISCOVERY_SERVICE_URL = 'https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY'

service = build(
    'chat',
    'v1',
    credentials=CREDENTIALS,
    discoveryServiceUrl=DISCOVERY_SERVICE_URL,
)

result = (
    service.spaces()
    .create(
        body={
            'spaceType': 'SPACE',
            'displayName': 'Import Mode Space',
            'importMode': True,
            'createTime': f'{datetime.datetime(2000, 1, 1).isoformat()}Z',
        }
    )
    .execute()
)

print(result)

Reemplaza lo siguiente:

  • EMAIL: Es la dirección de correo electrónico de la cuenta de usuario que suplantas con la autoridad de todo el dominio.
  • API_KEY: Es la clave de API.

Importa recursos

Para importar recursos de otras plataformas de mensajería, crea recursos de Google Chat (como mensajes, reacciones y archivos adjuntos) en el espacio del modo de importación. Cuando creas un recurso en el espacio, especificas datos del recurso relacionado de la plataforma de mensajes desde la que realizas la migración.

Mensajes

Tus apps de Chat pueden importar mensajes con su propia autoridad o en nombre de un usuario mediante la suplantación de identidad. (El autor del mensaje se establece en la cuenta de usuario que robó la identidad). Para obtener más información, consulta Autoriza apps de Chat. Para importar un mensaje en un espacio del modo de importación, llama al método create en el recurso Message. Para conservar la hora de creación del mensaje original desde la plataforma de mensajería de origen, puedes configurar el createTime del mensaje. Este createTime debe establecerse en un valor entre la hora de creación del espacio que configuraste antes y la hora de presentación.

Los mensajes en el mismo espacio no pueden contener el mismo createTime, incluso si se borran los mensajes anteriores con esa hora.

Los mensajes que contienen URLs de terceros en espacios del modo de importación no pueden renderizar vistas previas de los vínculos en Google Chat.

Cuando creas los mensajes en el modo de importación, los espacios no notifican ni envían correos electrónicos a ningún usuario, incluidos los mensajes que contienen menciones de usuarios.

Reacciones

Tu app de Chat puede importar reacciones para mensajes mediante la API de Chat. Para obtener información sobre los métodos de recursos y los tipos de compatibilidad de autenticación en espacios de modo de importación, consulta Autoriza apps de Chat.

Archivos adjuntos

Tu app de Chat puede subir archivos adjuntos con la API de Chat. Para obtener información sobre los métodos de recursos y los tipos de compatibilidad de autenticación en espacios de modo de importación, consulta Autoriza apps de Chat.

Historial de membresías

Las membresías históricas son aquellas creadas para los usuarios que ya habían abandonado la entidad del espacio original desde la plataforma de mensajería de origen, pero deseas retener sus datos en Chat. Si quieres obtener información para agregar miembros nuevos una vez que el espacio ya no esté en el modo de importación, consulta Cómo crear un recurso de membresía.

En muchos casos, cuando esos miembros históricos están sujetos a una política de retención de datos de Google, se recomienda conservar los datos (como los mensajes y las reacciones) que crean las membresías históricas en un espacio antes de importarlos a Chat. Mientras el espacio está en modo de importación, puedes importar esas membresías históricas al espacio usando el método create en el recurso Membership. Para conservar el tiempo de licencia de la membresía histórica, debes configurar el deleteTime de la membresía. Este tiempo de salida debe ser exacto porque afecta los datos que se conservarán de esas membresías. Además, este deleteTime debe ser posterior a la marca de tiempo de creación del espacio y no debe ser una marca de tiempo futura.

Además de deleteTime, también puedes configurar createTime para conservar la hora de unión original de la membresía histórica. A diferencia de deleteTime, createTime es opcional. Si no se establece, createTime se calcula automáticamente restando 1 microsegundo de deleteTime. Si se configura, createTime debe ser anterior a deleteTime y debe ser igual o posterior a la hora de creación del espacio. Esta información de createTime no se usa para determinar la retención de datos y no se puede ver en las herramientas de administrador, como la Consola del administrador de Google y Google Vault.

Si bien puede haber varias formas en las que un usuario se puede unir a un espacio y abandonarlo en la plataforma de mensajería de origen (mediante invitaciones, unirse por sí mismo o ser agregadas por otro usuario), en Chat esas acciones se representan con los campos createTime y deleteTime de membresía histórica como agregados o quitados.

Valida los recursos importados

Tu app de Chat puede volver a leer y validar el contenido de un espacio en modo de importación llamando al método list en el recurso Message. Puedes leer los recursos Reaction y Attachment de cualquier mensaje que se muestre en los campos emojiReactionSummaries y attachment. Las apps de chat solo pueden llamar a este método en nombre de un usuario mediante la suplantación de identidad. Para obtener más información, consulta Autoriza apps de Chat.

Tu app de Chat también puede leer mensajes individuales para validación si llama al método get en el recurso Message. Las apps de chat solo pueden llamar a este método para leer sus propios mensajes usando su propia autoridad. Para obtener más información, consulta Autoriza apps de Chat.

Las apps de chat también pueden enumerar membresías históricas llamando al método list en el recurso Membership. Después de que el espacio sale del modo de importación, el método list ya no expone las membresías históricas. Las apps de chat solo pueden llamar a este método en nombre de un usuario mediante la suplantación de identidad. Para obtener más información, consulta Autoriza apps de Chat.

Para leer las propiedades de un espacio del modo de importación, llama al método get en el recurso Space. Las apps de chat solo pueden llamar a este método usando su propia autoridad. Para obtener más información, consulta Autoriza apps de Chat.

Concilie las diferencias de recursos importados con los datos de origen

Si algún recurso importado ya no coincide con la entidad original de la plataforma de mensajería de origen debido a cambios en la entidad original durante la importación, las apps de Chat pueden llamar a la API de Chat para modificar el recurso de chat importado. Por ejemplo, si un usuario edita un mensaje en la plataforma de mensajería de origen después de que se creó en Chat, las apps de Chat pueden actualizar el mensaje importado para que refleje el contenido actual del mensaje original.

Mensajes

Para actualizar los campos admitidos en un mensaje en un espacio de modo de importación, llama al método update en el recurso Message. Las apps de chat solo pueden llamar a este método con la misma autoridad que se usó durante la creación inicial del mensaje. Si usaste el robo de identidad de usuarios durante la creación inicial del mensaje, debes usar el mismo usuario suplantado para actualizar ese mensaje.

Para borrar un mensaje en un espacio del modo de importación, llama al método delete en el recurso Message. No es necesario que el creador original del mensaje borre los mensajes en el espacio del modo de importación, ya que se pueden borrar suplantando la identidad de cualquier usuario del dominio. Las apps de chat solo pueden borrar sus propios mensajes si usan su propia autoridad. Para obtener más información, consulta Autoriza apps de Chat.

Reacciones

Para borrar una reacción a un mensaje en un espacio del modo de importación, usa el método delete en el recurso reactions. Para obtener información sobre los métodos de recursos y los tipos de compatibilidad de autenticación en espacios de modo de importación, consulta Autoriza apps de Chat.

Archivos adjuntos

Para actualizar archivos adjuntos de un mensaje en un espacio del modo de importación, usa el método upload en el recurso media. Para obtener información sobre los métodos de recursos y los tipos de compatibilidad de autenticación en los espacios del modo de importación, consulta Autoriza apps de Chat.

Historial de membresías

Para borrar una membresía histórica en un espacio de modo de importación, usa el método delete en el recurso Membership. Después de que un espacio sale del modo de importación, el método delete ya no te permite borrar membresías históricas.

No puedes actualizar una membresía histórica en un espacio en modo de importación. Si deseas corregir una membresía histórica importada de forma incorrecta, primero debes borrarla y volver a crearla mientras el espacio aún esté en el modo de importación.

Espacios

Para actualizar los campos compatibles en un espacio de modo de importación, usa el método patch en el recurso spaces.

Para borrar un espacio del modo de importación, usa el método delete en el recurso spaces.

Para obtener más información sobre los métodos de recursos y los tipos de compatibilidad de autenticación en los espacios del modo de importación, consulta Autoriza apps de Chat.

Completar el modo de importación

Antes de llamar al método completeImport, debes asegurarte de que se hayan completado la validación y la conciliación de las diferencias de recursos. Salir de un espacio del modo de importación es un proceso irreversible y convierte el espacio del modo de importación en un espacio normal. No hay un indicador en Chat que atribuya estos espacios a una importación de datos.

Para completar el modo de importación y hacer que los usuarios puedan acceder al espacio, la app de Chat puede llamar al método completeImport en el recurso Space. Las apps de chat solo pueden llamar a este método en nombre de un usuario mediante la suplantación de identidad. Para obtener más información, consulta Autoriza apps de Chat. El usuario suplantado se agrega al espacio como administrador del espacio una vez que se completa este método. Se debe llamar a este método dentro de los 30 días posteriores a la llamada al método create.space inicial. Si intentas llamar a este método después de transcurridos los 30 días, la llamada generará fallas porque el espacio del modo de importación se borra y la app de Chat ya no puede acceder a él.

No es necesario que el usuario suplantado en el método completeImport sea el creador del espacio.

Python

"""Complete import."""

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Specify required scopes.
SCOPES = [
    'https://www.googleapis.com/auth/chat.import',
]

CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
    .with_subject('EMAIL')
)

# Build a service endpoint for Chat API.
DISCOVERY_SERVICE_URL = 'https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY'

service = build(
    'chat',
    'v1',
    credentials=CREDENTIALS,
    discoveryServiceUrl=DISCOVERY_SERVICE_URL,
)

NAME = 'spaces/SPACE_NAME'
result = service.spaces().completeImport(name=NAME).execute()

print(result)

Reemplaza lo siguiente:

Cómo crear recursos para las membresías

Para agregar membresías de usuario a un espacio que haya completado el modo de importación, llama al método create en el recurso Membership. Las apps de chat pueden seguir usando el permiso chat.import y la suplantación de usuarios para llamar a este método dentro de los 30 días posteriores a la llamada al método create.space inicial. El usuario suplantado debe ser un administrador del espacio.

Una vez transcurridos los 30 días, las apps de Chat requieren permisos de membresía adicionales para llamar a este método.

Recomendamos que las apps de Chat creen recursos de membresía inmediatamente después de que se complete la importación, de modo que estas apps puedan seguir usando el permiso chat.import para la creación de membresías y proporcionen a todos los miembros acceso al espacio importado.