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 de tus otras plataformas de mensajería para correspondiente Recursos de la API de Chat Para importar estos datos, crea espacios de Chat en modo de importación e importar datos a esos espacios. Una vez que el proceso se completa correctamente, se convertirán en espacios estándar de Chat.

A continuación, se describe el proceso completo de importación:

  1. Planifica la importación
  2. Configura la autorización para la app de Chat
  3. Crea un espacio en modo de importación
  4. Importa recursos
  5. Valida los recursos importados
  6. Concilia las diferencias de los recursos importados con los datos de origen
  7. Modo de importación completa
  8. Otorga acceso al espacio después del modo de importación
  9. Solución de problemas

Requisitos previos

Apps Script

Python

  • Python 3.6 o superior
  • El valor pip herramienta de administración de paquetes
  • Las bibliotecas cliente de Google más recientes para Python. Cómo instalar o actualizar ejecuta el siguiente comando en tu interfaz de línea de comandos:

    pip3 install --upgrade google-api-python-client google-auth
    
  • Una app de Chat publicada Para crear y publicar un App de Chat, consulta Compila una app de Google Chat.

  • Autorización configurada para la app de Chat. El La app de Chat debe tener una autoridad delegada en todo el dominio en todos los dominios donde la app importe contenido, consulta Autoriza apps de Chat.

Planifica tu importación

Planifique en consecuencia la cantidad de datos que se importarán, y comprenda cómo se los límites de uso y las cuotas pueden afectar el de servicio y ten en cuenta los tipos de espacios de Chat cuando se importan a un espacio nuevo.

Revisar los límites de uso de la API

El tiempo necesario para importar datos a Chat puede variar mucho según la cantidad de recursos de Chat que quieras importar. Revisa los mensajes de tu app límites de uso y la cantidad de datos programados para importar desde la plataforma de mensajería de origen para determinar un cronograma estimado.

Cuando importes mensajes a un espacio, te recomendamos que dividas las llamadas a la messages.create() en diferentes cadenas de mensajes.

Identifica los espacios admitidos para importar

El modo de importación solo admite SpaceType de SPACE. No admite un SpaceType de GROUP_CHAT o DIRECT_MESSAGE. Consulta la documentación de SpaceType para obtener más información.

Crea un espacio en modo de importación

Para crear un espacio en modo de importación, llama al Método create en la Recurso Space y establece importMode en true.

Cuando crees el espacio en modo de importación, ten en cuenta lo siguiente.

  • Fecha y hora: Recuerda que el modo de importación debe completarse dentro de los 30 caracteres días. Si el espacio sigue en modo de importación después de los 30 días desde el momento en que se llamó al método spaces.create(), es se borran automáticamente y se vuelven inaccesibles e irrecuperables.
    • No uses el valor de createTime para realizar un seguimiento del vencimiento de ese período de 30 días. No es siempre es igual que cuando llamas al método spaces.create(). Cuándo con el modo de importación, el campo createTime se puede establecer en el modo la marca de tiempo en la que se creó el espacio en la fuente para para conservar la hora de creación original.
  • El nombre del recurso del espacio (name): Es el identificador único que se usa para recuperar información sobre el un espacio específico y se hace referencia a él en pasos posteriores cuando importa contenido al espacio.

Para preservar el tiempo de creación de la entidad espacial equivalente de la fuente de mensajería, puedes configurar los createTime del espacio. Esta createTime debe establecerse en un valor entre el 1 de enero de 2000 y el momento actual.

Para crear un espacio externo en modo de importación, establece externalUserAllowed en true. Después de completar correctamente la importación, puedes agregar usuarios externos.

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

Apps Script

function createSpaceInImportMode() {
  const space = Chat.Spaces.create({
      spaceType: 'SPACE',
      displayName: 'DISPLAY_NAME',
      importMode: true,
      createTime: (new Date('January 1, 2000')).toJSON()
  });
  console.log(space.name);
}

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.
service = build('chat', 'v1', credentials=CREDENTIALS)

result = (
    service.spaces()
    .create(
        body={
            'spaceType': 'SPACE',
            'displayName': 'DISPLAY_NAME',
            '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 que está suplantando la identidad de una autoridad en todo el dominio.
  • DISPLAY_NAME: Es el nombre del espacio creado en modo de importación. Debe ser un nombre único para el espacio que se mostrará a Usuarios de Chat. Te recomendamos usar el mismo nombre visible que el espacio desde el que importas datos.

Importa recursos

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

Mensajes

Tus apps de Chat pueden importar mensajes con su propia autoridad. en nombre de un usuario mediante suplantación de identidad. El autor del mensaje se establece cuenta de usuario suplantada de identidad. Para obtener más información, consulta Autoriza apps de Chat. Para importar un en un espacio de modo de importación, llama al Método create en la Recurso Message. Para conservar la hora de creación del mensaje original de la fuente plataforma de mensajería, puedes configurar el createTime del mensaje. Esta createTime debe establecerse en un valor entre el momento de creación del espacio que establecida previamente y la hora actual.

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

No se pueden renderizar el vínculo de los mensajes que contienen URLs de terceros en espacios en modo de importación vistas previas en Google Chat.

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

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

Python

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

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.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
result = (
    service.spaces()
    .messages()
    .create(
        parent=NAME,
        body={
            'text': 'Hello, world!',
            'createTime': f'{datetime.datetime(2000, 1, 2).isoformat()}Z',
        },
    )
    .execute()
)

print(result)

Reemplaza lo siguiente:

Reacciones

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

Archivos adjuntos

Tu app de Chat puede hacer lo siguiente: subir archivos adjuntos con la API de Chat. Para obtener información sobre los métodos de recursos y tipos de compatibilidad con la autenticación en los espacios en modo de importación, consulta Autoriza apps de Chat. Sin embargo, te recomendamos que utilices API de Google Drive para subir archivos adjuntos como archivos de Google Drive y vincular los URI de los archivos al respectivos mensajes en los espacios del modo de importación para importar archivos adjuntos de otros plataformas de mensajería para evitar alcanzar el límite interno de Google Chat para los archivos adjuntos carga.

Historial de membresías

Las membresías históricas son aquellas creadas para los usuarios que ya la habían abandonado. la entidad espacial original de la plataforma de mensajería de origen, pero deseas retener sus datos en Chat. Para obtener información sobre cómo agregar miembros nuevos después de que el espacio ya no esté en importación consulta Crea un recurso de membresía.

En muchos casos, cuando esos miembros históricos están sujetos a un de retención de datos en Google, deseas conservar los datos (como Mensajes y reacciones) creados por de membresías históricas de un espacio antes de importarlas a Chat. Mientras el espacio esté en modo de importación, podrás importar esas membresías históricas al espacio, con el Método create en la Recurso Membership. Para conservar el tiempo de licencia de la membresía histórica, debes establecer el deleteTime de la membresía. La hora de salida debe ser precisa afecta qué datos se conservan para 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 la fecha de incorporación original de la membresía histórica. A diferencia de deleteTime, createTime es opcional. Si no se establece, createTime se calculará automáticamente según se resta 1 microsegundo a deleteTime. Si se establece, el valor de createTime debe ser anterior al deleteTime y debe ser igual o posterior a la hora de creación del espacio. Este/a createTime información no se usa para determinar la retención de datos y no se puede ver en el administrador herramientas como la Consola del administrador de Google y Google Vault.

Si bien puede haber varias maneras en las que un usuario puede unirse y abandonar un espacio en la plataforma de mensajería de origen (a través de invitaciones, unirse solos, agregarse por otro usuario), en Chat, esas acciones se representan con los campos createTime y deleteTime de la membresía histórica como se agregan o quitarse.

En el siguiente ejemplo, se muestra cómo crear una membresía histórica en una importación espacio de modo:

Python

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

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.
service = build('chat', 'v1', credentials=CREDENTIALS)

NAME = 'spaces/SPACE_NAME'
USER = 'users/USER_ID'
result = (
    service.spaces()
    .members()
    .create(
        parent=NAME,
        body={
            'createTime': f'{datetime.datetime(2000, 1, 3).isoformat()}Z',
            'deleteTime': f'{datetime.datetime(2000, 1, 4).isoformat()}Z',
            'member': {'name': USER, 'type': 'HUMAN'},
        },
    )
    .execute()
)

print(result)

Reemplaza lo siguiente:

Importa recursos en un espacio externo

Solo puedes crear un espacio externo con el modo de importación usando credenciales que pertenezcan a los usuarios de tu organización de Workspace. Esta opción solo aplica mientras el espacio esté en modo de importación. Cuando el espacio el modo de importación completa, se puede invitados a unirse a los espacios importados (consulta la sección de acceso) y sus credenciales se pueden usar para llamar a la API de Chat.

Valida los recursos importados

Tu app de Chat puede leer y validar el contenido de un espacio de modo de importación llamando al Método list en la Recurso Message. Puedes leer los recursos Reaction y Attachment de cualquier mensaje que se muestre Campos emojiReactionSummaries y attachment. Las apps de Chat pueden hacer lo siguiente: solo llama a este método en nombre de un usuario mediante un robo de identidad. Para ver más información, consulta Autoriza apps de Chat.

Tu app de Chat también puede leer mensajes individuales para la validación llamando 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 el historial de membresías llamando al Método list en la Recurso Membership. Una vez que el espacio sale del modo de importación, el método list no expone el historial las membresías. Las apps de chat solo pueden llamar a este método en nombre de un usuario a través del robo de identidad. Para obtener más información, consulta Autoriza apps de Chat.

Puedes leer las propiedades de un espacio de modo de importación llamando al Método get en la Recurso Space. Las apps de chat solo pueden llamar a este método con su propia autoridad. Para obtener más información, consulta Autoriza apps de Chat.

Conciliar las diferencias de recursos importados con los datos de origen

Si algún recurso importado ya no coincide con la entidad original de la fuente plataforma de mensajería 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. Por ejemplo, si un usuario edita un mensaje en el mensaje de Google Chat después de crear el mensaje en Chat, Las apps de Chat pueden actualizar el mensaje importado para que refleje el el contenido actual del mensaje original.

Mensajes

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

Para eliminar un mensaje en un espacio de modo de importación, llama al Método delete en la Recurso Message. No es necesario borrar los mensajes en un espacio de modo de importación en el modo de importación original creador del mensaje y se puede borrar suplantando la identidad de cualquier usuario del dominio. Las apps de Chat solo pueden borrar sus propios mensajes con sus autoridad. Para obtener más información, consulta Autoriza apps de Chat.

Reacciones

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

Archivos adjuntos

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

Historial de membresías

Para eliminar una membresía histórica en un espacio en modo de importación, usa el Método delete en la Recurso Membership. Después de un espacio sale del modo de importación, el método delete no te permite borrar datos las membresías.

No puedes actualizar una membresía histórica en un espacio en modo de importación. Si quieres corregir una membresía histórica que se importó incorrectamente, debes borrarla y, luego, volver a crearla mientras el espacio aún esté en modo de importación.

Espacios

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

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

Información sobre los métodos de recursos y los tipos de asistencia para la autenticación en los espacios de modo de importación y verás Autoriza apps de Chat.

Completar el modo de importación

Antes de llamar a completeImport debes asegurarte de que la validación y conciliación de las diferencias de recursos de que se completen. Salir de un espacio fuera 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 atribuye estos espacios a una importación de datos.

Toma nota de la fecha y hora en la que llamas a completeImport, el nombre del recurso del usuario que realizó la llamada y la respuesta mostrada. Esto puede ser útil si debe encontrar algún problema y debe investigarlo.

Para completar el modo de importación y permitir que los usuarios accedan al espacio, La app de Chat puede llamar al método completeImport en la Recurso Space. Las apps de chat solo pueden llamar a este método en nombre de un usuario a través de 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 complete este método. Este método debe llamarse dentro de los 30 días posteriores a la llamada de método create.space inicial. Si intentas llamar a este método después de Transcurrieron 30 días, la llamada generó errores porque la importación el espacio de modo se elimina y el App de Chat

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

En el siguiente ejemplo, se muestra cómo completar el modo de importación:

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.
service = build('chat', 'v1', credentials=CREDENTIALS)

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

print(result)

Reemplaza lo siguiente:

Otorga acceso al espacio después del modo de importación

Para otorgarles a los usuarios de Chat acceso al espacio importado recientemente, Las apps de chat pueden seguir usando el permiso y el usuario de chat.import de identidad en un plazo de 30 días a partir de la llamada inicial al método create.space() lo siguiente:

Para usar estos métodos con el alcance chat.import, el usuario suplantado debe ser administrador del espacio.

Para los espacios externos, la membresía Método create() también te permite invitar a usuarios ajenos a tu organización de Workspace. Asegúrate de que a comprender todas las limitaciones conocidas para usuarios externos.

Solución de problemas

Si tienes problemas para importar espacios de Chat, revisa los siguientes problemas para obtener asistencia. Si encuentras una respuesta de error, una nota (copia y pega el texto en un documento o guarda una captura de pantalla) para referencia futura y solución de problemas.

Cuando un espacio se importa correctamente, CompleteImportSpace se completa con un estado de OK.

No se completó la importación antes de que venciera el período de 30 días.

Como se describió anteriormente en Crea un espacio en modo de importación, si El espacio seguirá en modo de importación 30 días después del momento en que se usó el método create se llama, se borra automáticamente y se vuelve inaccesible y irrecuperables.

Lamentablemente, el espacio borrado ya no está disponible ni se puede recuperar, y la el proceso de importación debe volver a iniciarse.

Cómo buscar espacios faltantes

Si no encuentras el nuevo espacio de Chat, siguiente tabla para la respuesta que recibiste de CompleteImportSpace a ver la explicación y cómo resolverlo.

Respuesta recibida Pasos de la investigación Explicación Solución
CompleteImportSpace arroja una excepción y llama GetSpace muestra PERMISSION_DENIED. Revisa tus registros para saber cuándo se creó el espacio y si es más antiguo más de 30 días, se borró automáticamente. Además, no hay registro del espacio importado en la herramienta de administración de espacios o registro de auditoría. Transcurrieron más de 30 días desde que se inició el proceso de importación. y no se pudo salir de la migración correctamente al espacio. Crea un espacio nuevo y vuelve a ejecutar el proceso de importación.
CompleteImportSpace muestra OK y llama GetSpace muestra PERMISSION_DENIED. No hay ningún registro del espacio importado en la herramienta de administración de espacios, pero se muestra que el espacio está borrado registro de auditoría. El espacio se importó correctamente, pero luego se borró. Crea un espacio nuevo y vuelve a ejecutar el proceso de importación.