Importer des données dans Google Chat

Avec l'API Google Chat, vous pouvez importer des données depuis vos autres plates-formes de messagerie dans Google Chat. Vous pouvez importer des messages, pièces jointes, réactions, les adhésions et les entités d'espace de vos autres plates-formes de messagerie correspondant Ressources de l'API Chat Vous pouvez importer ces données en créant des espaces Chat dans mode importation et importer des données dans ces espaces. Une fois le processus terminé, ces espaces deviennent des espaces Chat standards.

Le processus d'importation complet est décrit ci-dessous:

  1. Planifier votre importation
  2. Configurer les autorisations pour l'application Chat
  3. Créer un espace en mode importation
  4. Importer des ressources
  5. Valider les ressources importées
  6. Synchroniser les différences de ressources importées avec les données sources
  7. Mode importation complet
  8. Accorder l'accès à l'espace après le mode importation
  9. Dépannage

Prérequis

Apps Script ;

Python

  • Python 3.6 ou version ultérieure
  • La fonction pip outil de gestion des packages
  • Les dernières bibliothèques clientes Google pour Python. Installer ou mettre à jour exécutez la commande suivante dans votre interface de ligne de commande:

    pip3 install --upgrade google-api-python-client google-auth
    
  • Une application Chat publiée Pour créer et publier un Application de chat, consultez les articles suivants : Créer une application Google Chat

  • Autorisation configurée pour l'application Chat. La L'application de chat doit disposer d'une autorité déléguée au niveau du domaine dans tous les domaines dans lesquels l'application importe du contenu, consultez Autorisez les applications Chat.

Planifier l'importation

Planifiez en conséquence la quantité de données à importer, et comprenez comment limites d'utilisation et quotas peuvent avoir un impact et connaître les types d'espaces Chat prise en charge lors de l'importation vers un nouvel espace.

Examiner les limites d'utilisation de l'API

Le temps nécessaire pour importer des données dans Chat peut varier considérablement en fonction de la quantité de ressources Chat à importer. Passez en revue les paramètres limites d'utilisation et quantité de données planifiée pour à partir de la plate-forme de messagerie source afin de déterminer un délai estimé.

Lorsque vous importez des messages dans un espace, nous vous recommandons de répartir les appels sur messages.create() dans les différents fils de discussion.

Identifier les espaces compatibles avec l'importation

Le mode d'importation n'accepte que le SpaceType de SPACE. Il n'est pas compatible avec SpaceType sur GROUP_CHAT ou DIRECT_MESSAGE. Consultez le Documentation pour SpaceType pour en savoir plus.

Créer un espace en mode importation

Pour créer un espace en mode importation, appelez la méthode Méthode create le Space ressource et définissez importMode sur true.

Lorsque vous créez l'espace en mode importation, tenez compte des points suivants.

  • La date et l'heure : n'oubliez pas que le mode importation doit être effectué dans les jours. Si l'espace est toujours en mode importation après 30 jours jours à partir du moment où la méthode spaces.create() a été appelée, sont automatiquement supprimées et deviennent inaccessibles et irrécupérables.
    • N'utilisez pas la valeur du paramètre createTime pour suivre l'expiration du délai de 30 jours. Ceci n'est pas toujours comme lorsque vous appelez la méthode spaces.create(). Quand ? en mode importation, le champ createTime peut être défini sur la valeur le code temporel correspondant à la création de l'espace dans la source préserver l'heure de création d'origine.
  • Nom de la ressource de l'espace (name) : Identifiant unique utilisé pour récupérer des informations sur le espace spécifique. Elle sera référencée lors des étapes suivantes lors de l'importation de contenu dans l'espace.

Pour conserver l'heure de création de l'entité espace équivalente de la source plate-forme de messagerie, vous pouvez définir le createTime de l'espace. Ce La valeur de createTime doit être comprise entre le 1er janvier 2000 et aujourd'hui.

Pour créer un espace externe en mode importation, définissez externalUserAllowed sur true. Une fois l'importation terminée, vous pouvez ajouter des utilisateurs externes.

L'exemple suivant montre comment créer un espace en mode importation:

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)

Remplacez les éléments suivants :

  • EMAIL: adresse e-mail du compte utilisateur qui vous usurpez l'identité d'une autorité au niveau du domaine.
  • DISPLAY_NAME: nom de l'espace créé dans mode d'importation. Il doit s'agir d'un nom unique pour l'espace qui sera présenté aux Utilisateurs de Chat Nous vous recommandons d'utiliser le même nom à afficher que l'espace à partir duquel vous importez des données.

Importer des ressources

Pour importer des ressources d'autres plates-formes de messagerie, vous devez créer Google Chat ressources (comme les messages, les réactions et les pièces jointes) dans l'espace en mode importation. Lorsque vous créez une ressource dans l'espace, vous spécifiez les données des de la plate-forme de messagerie à partir de laquelle vous effectuez la migration.

Messages

Vos applications Chat peuvent importer des messages en utilisant leur propre autorité, ou pour le compte d'un utilisateur par usurpation d'identité. L'auteur du message est défini sur d'un compte utilisateur usurpé. Pour en savoir plus, consultez Autorisez les applications Chat. Pour importer un dans un espace en mode importation, appelez la méthode Méthode create le Ressource Message. Afin de conserver l'heure de création du message d'origine depuis la source plate-forme de messagerie, vous pouvez définir l'createTime du message. Ce createTime doit être défini sur une valeur comprise entre l'heure de création de l'espace que vous définie précédemment et à l'heure actuelle.

Les messages d'un même espace ne peuvent pas contenir le même createTime, même si les messages précédents associés à cette date sont supprimés.

Impossible d'afficher le lien dans les messages contenant des URL tierces dans les espaces en mode importation des aperçus dans Google Chat.

Lorsque vous créez les messages en mode importation, les espaces n'en avertissent pas les utilisateurs et n'en envoient pas à tous les utilisateurs, y compris les messages contenant mentions utilisateur.

L'exemple suivant montre comment créer un message dans un espace en mode importation:

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)

Remplacez les éléments suivants :

Réactions

Votre application Chat peut importer réactions aux messages à l'aide de l'API Chat. Pour en savoir plus sur les méthodes et les ressources d'authentification dans les espaces en mode importation, consultez Autorisez les applications Chat.

Pièces jointes

Votre application Chat peut importer des pièces jointes à l'aide de l'API Chat. Pour en savoir plus sur les méthodes et les ressources d'authentification dans les espaces en mode importation, consultez Autorisez les applications Chat. Toutefois, nous vous recommandons vivement d'utiliser API Google Drive pour d'importer des pièces jointes en tant que fichiers Google Drive et d'associer les URI des fichiers au messages respectifs dans les espaces en mode importation pour importer des pièces jointes plates-formes de messagerie pour éviter d'atteindre la limite interne de Google Chat pour les pièces jointes mettre en ligne.

Historique des souscriptions

Les anciens abonnements sont des abonnements créés pour les utilisateurs qui l'avaient déjà quitté. l'entité spatiale d'origine à partir de la plate-forme de messagerie source, mais que vous voulez conserver leurs données dans Chat. Pour en savoir plus sur l'ajout de membres une fois que l'espace n'est plus importé consultez la section Créer une ressource d'appartenance.

Dans de nombreux cas, lorsque ces membres historiques sont soumis à Règles de conservation des données de Google, vous souhaitez conserver les données (telles que les messages et les réactions) créées par leur historique d'adhésion à un espace avant de les importer dans Chat. Tant que l'espace est en mode importation, vous pouvez importer l'historique de vos adhésions dans l'espace, en utilisant Méthode create le Ressource Membership. Pour conserver la date de départ de l'ancienne adhésion, vous devez définir l'deleteTime de l'abonnement. Cette heure de départ doit être exacte, car elle détermine les données à conserver pour ces abonnements. De plus, ce/cette deleteTime doit être postérieure à l'horodatage de création de l'espace et ne doit pas être un horodatage futur.

En plus de deleteTime, vous pouvez également définir createTime pour conserver le la date d'adhésion d'origine de l'ancien abonnement. Contrairement à deleteTime, le createTime est facultatif. Si cette règle n'est pas configurée, createTime est automatiquement calculé comme suit : en soustrayant 1 microseconde de deleteTime. Si cette valeur est définie, createTime doit être antérieur à deleteTime, et doit être identique ou postérieure à l'heure de création de l'espace. Ce/Cet/Cette createTime les informations ne sont pas utilisées pour déterminer la conservation des données et ne sont pas visibles dans tels que la console d'administration Google et Google Vault.

Même si un utilisateur peut rejoindre et quitter un espace de différentes manières, la plate-forme de messagerie source (par le biais d'invitations, la participation par eux-mêmes, l'ajout par un autre utilisateur), dans Chat, ces actions sont toutes représentées par les champs createTime et deleteTime d'adhésion historiques comme ayant été ajoutés ou supprimés.

L'exemple suivant montre comment créer un historique d'appartenance dans une importation mode:

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)

Remplacez les éléments suivants :

Importer des ressources dans un espace externe

Vous ne pouvez créer un espace externe en mode importation qu'à l'aide d'identifiants appartenant à des utilisateurs de votre organisation Workspace. Cela s'applique uniquement lorsque l'espace est en mode importation. Une fois que l'espace termine le mode importation, les utilisateurs externes peuvent invité à rejoindre les espaces importés (voir la section "Accès") et leurs identifiants pour appeler l'API Chat.

Valider les ressources importées

Votre application Chat peut lire et valider le contenu d'un espace en mode importation en appelant la méthode Méthode list sur la Ressource Message. Vous pouvez lire les ressources Reaction et Attachment à partir de n'importe quel message emojiReactionSummaries et attachment. Les applications de chat peuvent n'appeler cette méthode qu'au nom d'un utilisateur par usurpation d'identité. Pour plus pour en savoir plus, consultez Autorisez les applications Chat.

Votre application Chat peut également lire les messages individuels des la validation en appelant la méthode Méthode get sur la ressource Message. Les applications de chat ne peuvent appeler cette méthode que pour lire leurs propres messages en avec leur propre autorité. Pour en savoir plus, consultez Autorisez les applications Chat.

Les applications de chat peuvent également répertorier l'historique des abonnements en appelant la Méthode list le Ressource Membership. Une fois que l'espace a quitté le mode importation, la méthode list n'expose pas l'historique plus de souscriptions. Les applications de chat ne peuvent appeler cette méthode que sur pour le compte d'un utilisateur par usurpation d'identité. Pour en savoir plus, consultez Autorisez les applications Chat.

Vous pouvez lire les propriétés d'un espace en mode importation en appelant la méthode Méthode get le Ressource Space. Les applications de chat ne peuvent appeler cette méthode qu'en faisant preuve de leur propre autorité. Pour en savoir plus, consultez Autorisez les applications Chat.

Rapprocher les différences de ressources importées avec les données sources

Si une ressource importée ne correspond plus à l'entité d'origine de la source de messagerie en raison de modifications apportées à l'entité d'origine lors de l'importation Les applications de chat peuvent appeler l'API Chat pour modifier les ressource de chat. Par exemple, si un utilisateur modifie un message dans le message source une fois ce message créé dans Chat, Les applications de chat peuvent mettre à jour le message importé pour qu'il reflète le contenu actuel du message d'origine.

Messages

Pour mettre à jour champs acceptés sur un message dans un espace en mode importation, appelez Méthode update le Message ressource. Les applications de chat ne peuvent appeler cette méthode qu'avec la même autorité que celle utilisée pour a été utilisé lors de la création initiale du message. Si vous avez utilisé l'emprunt d'identité lors de la création du message, vous devez utiliser le même utilisateur mettre à jour ce message.

Pour supprimer un message dans un espace en mode importation, appelez la méthode Méthode delete le Ressource Message. Il n'est pas nécessaire que l'original supprime les messages d'un espace en mode importation. créateur du message et peuvent être supprimés en empruntant l'identité de n'importe quel utilisateur du domaine. Les applications de chat ne peuvent supprimer leurs propres messages qu'avec les leurs une autorité compétente. Pour en savoir plus, consultez Autorisez les applications Chat.

Réactions

Pour supprimer une réaction à un message dans un espace en mode importation, utilisez la Méthode delete sur la ressource reactions. Pour en savoir plus sur les méthodes et les ressources d'authentification dans les espaces en mode importation, consultez Autorisez les applications Chat.

Pièces jointes

Pour mettre à jour les pièces jointes d'un message dans un espace en mode importation, utilisez la méthode Méthode upload sur media ressource. Pour en savoir plus sur les méthodes de ressources et les types d'authentification la compatibilité avec les espaces en mode importation, consultez Autorisez les applications Chat.

Historique des souscriptions

Pour supprimer une appartenance historique à un espace en mode importation, utilisez le Méthode delete le Ressource Membership. Après un les sorties d'espace en mode importation, la méthode delete ne vous permet pas de supprimer plus de souscriptions.

Vous ne pouvez pas mettre à jour l'historique des adhésions dans un espace en mode importation. Si vous souhaitez corriger un abonnement historique importé de manière incorrecte, vous devez le supprimer puis le recréer pendant que l'espace est toujours en mode importation.

Spaces

Pour mettre à jour champs acceptés dans un espace en mode importation, utilisez Méthode patch sur la ressource spaces.

Pour supprimer un espace en mode importation, utilisez la Méthode delete sur la ressource spaces.

Pour en savoir plus sur les méthodes de ressources et les types de prise en charge de l'authentification dans les espaces en mode importation, et voir Autorisez les applications Chat.

Mode d'importation complet

Avant d'appeler la méthode completeImport vous devez vous assurer que la validation et rapprochement des différences de ressources sont terminées. Quitter un espace en dehors du mode importation est un processus irréversible et convertit l'espace du mode importation en espace standard. Il n'y a pas d'indicateur dans Chat qui attribue ces espaces à une importation de données.

Notez la date et l'heure auxquelles vous appelez completeImport, ainsi que le nom de la ressource. de l'utilisateur qui a passé l'appel, et la réponse est renvoyée. Cela peut être utile si vous devez rencontrer des problèmes et que vous devez les examiner.

Pour terminer le mode importation et rendre l'espace accessible aux utilisateurs, L'application Chat peut appeler la méthode completeImport au niveau de la Ressource Space. Les applications de chat ne peuvent appeler cette méthode qu'au nom d'un utilisateur via l'usurpation d'identité. Pour en savoir plus, consultez Autorisez les applications Chat. L'utilisateur dont l'identité a été empruntée est ajouté à l'espace en tant que gestionnaire de l'espace une fois cette méthode terminée. Cette méthode doit être appelée dans les 30 jours suivant l'événement appel initial de la méthode create.space. Si vous tentez d'appeler cette méthode après la 30 jours se sont écoulés, l'appel entraîne des échecs, car l'importation est supprimé et n'est plus accessible Application Chat

L'utilisateur usurpé dans la méthode completeImport n'a pas besoin d'être un créateur d'espace.

L'exemple suivant montre comment finaliser le mode d'importation:

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)

Remplacez les éléments suivants :

Accorder l'accès à l'espace après le mode importation

Pour autoriser les utilisateurs Chat à accéder à l'espace récemment importé, procédez comme suit : Les applications Chat peuvent continuer à utiliser le niveau d'accès et l'utilisateur chat.import dans les 30 jours suivant l'appel initial de la méthode create.space(). les éléments suivants:

Pour utiliser ces méthodes avec le champ d'application chat.import, l'utilisateur dont l'identité a été empruntée doit pour gérer l'espace.

Pour les espaces externes, Méthode create() permet également d'inviter des utilisateurs externes à votre organisation Workspace. Assurez-vous que vous comprenez toutes les limites connues pour pour les utilisateurs externes.

Dépannage

Si vous rencontrez un problème lors de l'importation d'espaces Chat, consultez les problèmes suivants pour obtenir de l'aide. En cas de réponse d'erreur, (copiez/collez le texte dans un document ou enregistrez une capture d'écran) pour de référence et de dépannage à l'avenir.

Lorsqu'un espace est importé correctement, CompleteImportSpace se termine avec est à l'état OK.

N'a pas terminé l'importation avant l'expiration du délai de 30 jours

Comme décrit précédemment dans Créer un espace en mode importation, si l'espace est toujours en mode importation après 30 jours après que la méthode "create" a été appelée, elle est automatiquement supprimée et devient inaccessible, irrécupérable.

Malheureusement, l'espace supprimé n'est plus disponible ni récupérable. le processus d'importation doit être relancé.

Rechercher des espaces manquants

Si vous ne trouvez pas le nouvel espace Chat, consultez le tableau suivant pour la réponse que vous avez reçue de CompleteImportSpace à voir l'explication et comment le résoudre.

Réponse reçue Étapes de l'enquête Explication Solution
CompleteImportSpace génère une exception et appelle GetSpace renvoie PERMISSION_DENIED. Vérifiez dans vos archives la date de création de l'espace et s'il est plus ancien. depuis au moins 30 jours, il a été automatiquement supprimé. De plus, il n'est pas possible de l'espace importé dans outil de gestion des espaces ou journal d'audit. le processus d'importation a commencé il y a plus de 30 jours. et l'espace n'a pas réussi à quitter la migration. Créez un espace et exécutez à nouveau le processus d'importation.
CompleteImportSpace renvoie OK et appelle GetSpace renvoie PERMISSION_DENIED. Il n'existe aucun enregistrement de l'espace importé dans la section outil de gestion des espaces, mais que l'espace est supprimé dans journal d'audit. L'espace a bien été importé, puis supprimé par la suite. Créez un espace et exécutez à nouveau le processus d'importation.