Daten in Google Chat importieren

Mit der Google Chat API können Sie Daten aus Ihren anderen Messaging-Plattformen importieren in Google Chat. Sie können vorhandene Nachrichten, Anhänge, Reaktionen Mitgliedschaften und Gruppenbereiche von Ihren anderen Messaging-Plattformen entsprechende Ressourcen zur Chat API Sie können diese Daten importieren, indem Sie Chatbereiche in Importmodus und Daten in diese Gruppen zu importieren. Nach erfolgreichem Abschluss des Prozesses werden diese Gruppenbereiche zu Standard-Chatbereichen.

Im Folgenden wird der gesamte Importvorgang beschrieben:

  1. Import planen
  2. Autorisierung für die Chat App konfigurieren
  3. Gruppenbereich im Importmodus erstellen
  4. Ressourcen importieren
  5. Importierte Ressourcen validieren
  6. Unterschiede zwischen importierten Ressourcen und Quelldaten abgleichen
  7. Importmodus „Abgeschlossen“
  8. Zugriff auf den Gruppenbereich nach dem Importmodus gewähren
  9. Fehlerbehebung

Vorbereitung

Apps Script

Python

  • Python 3.6 oder höher
  • Das pip-Element Paketverwaltungstool
  • Die neuesten Google-Clientbibliotheken für Python. Installieren oder aktualisieren führen Sie in der Befehlszeile den folgenden Befehl aus:

    pip3 install --upgrade google-api-python-client google-auth
    
  • Eine veröffentlichte Chat-App So erstellen und veröffentlichen Sie ein Chat-App, siehe Erstellen Sie eine Google Chat App.

  • Für die Chat App konfigurierte Autorisierung Die Die Chat-App muss domainweite Befugnisse übertragen. in allen Domains, in die die App Inhalte importiert, finden Sie unter Chat-Apps autorisieren

Import planen

Planen Sie die zu importierenden Daten entsprechend ein Nutzungslimits und Kontingente und die Typen von Chatbereichen kennen beim Importieren in einen neuen Gruppenbereich unterstützt.

API-Nutzungslimits ansehen

Die für den Import von Daten in Google Chat erforderliche Zeit kann sehr unterschiedlich lange dauern. abhängig von der Menge der zu importierenden Chat-Ressourcen. Prüfen Sie die Nutzungslimits und die geplante Datenmenge für aus der Quell-Messaging-Plattform importieren, um einen geschätzten Zeitrahmen zu bestimmen.

Wenn Sie Nachrichten in einen Gruppenbereich importieren, sollten Sie zu messages.create() in verschiedenen Threads zu verwenden.

Identifizieren Sie die unterstützten Gruppenbereiche für den Import

Im Importmodus werden nur die SpaceType von SPACE unterstützt. Folgende Parameter werden nicht unterstützt: SpaceType: GROUP_CHAT oder DIRECT_MESSAGE. Weitere Informationen finden Sie in der Dokumentation für SpaceType .

Gruppenbereich im Importmodus erstellen

Rufen Sie zum Erstellen eines Gruppenbereichs im Importmodus die create-Methode am Space Ressource und setze importMode auf true.

Achten Sie beim Erstellen des Gruppenbereichs im Importmodus auf die folgenden Punkte.

  • Datum und Uhrzeit: Der Importmodus muss innerhalb von 30 Tage. Wenn sich der Gruppenbereich nach 30 Tagen noch im Importmodus befindet Tage nach dem Aufruf der Methode spaces.create(), automatisch gelöscht wird und nicht mehr zugänglich und nicht wiederherstellbar ist.
    • Verwenden Sie nicht den Wert des createTime Feld, um den Ablauf des 30-Tage-Zeitraums zu verfolgen. Dies ist nicht immer identisch mit dem Aufruf der Methode spaces.create(). Wann? Im Importmodus kann für das Feld createTime der bisherige Wert Zeitstempel der Erstellung des Gruppenbereichs in der Quelle, um um den ursprünglichen Erstellungszeitpunkt beizubehalten.
  • Der Ressourcenname des Gruppenbereichs (name): Die eindeutige Kennung, mit der Informationen zum bestimmten Bereich vorgesehen ist und in späteren Schritten beim Importieren von Inhalten darauf verwiesen wird. in den Raum.

Um die Erstellungszeit der entsprechenden Raumentität aus der Quelle beizubehalten Messaging-Plattform verwenden möchten, können Sie die createTime des Gruppenbereichs festlegen. Dieses createTime muss auf einen Wert zwischen dem 1. Januar 2000 und dem heutigen Datum festgelegt werden.

Wenn Sie einen externen Bereich im Importmodus erstellen möchten, setzen Sie externalUserAllowed auf true. Nachdem der Import abgeschlossen ist, können Sie externe Nutzer hinzufügen.

Das folgende Beispiel zeigt, wie Sie im Importmodus einen Gruppenbereich erstellen:

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)

Ersetzen Sie Folgendes:

  • EMAIL: die E-Mail-Adresse des Nutzerkontos, das Sie geben sich als domainweite Befugnis aus.
  • DISPLAY_NAME: der Name des Gruppenbereichs, der erstellt wurde in im Importmodus. Das muss ein eindeutiger Name für den Gruppenbereich sein, der für Chat-Nutzer Wir empfehlen, denselben Anzeigenamen wie aus dem Sie Daten importieren.

Ressourcen importieren

Wenn Sie Ressourcen aus anderen Messaging-Plattformen importieren möchten, erstellen Sie Google Chat Ressourcen (z. B. Nachrichten, Reaktionen, Anhänge) im Bereich im Importmodus. Wenn Sie eine Ressource im Gruppenbereich erstellen, geben Sie Daten aus den zugehörigen Ressource von der Nachrichtenplattform, von der Sie migrieren.

Nachrichten

Ihre Chat-Apps können Nachrichten mit eigenen Berechtigungen importieren oder im Namen eines Nutzers durch Identitätsdiebstahl. Der Nachrichtenverfasser ist auf die Konto, dessen Identität gestohlen wurde. Weitere Informationen finden Sie unter Chat-Apps autorisieren So importieren Sie eine in einem Bereich im Importmodus senden, rufen Sie die create-Methode am Message-Ressource. Damit der Erstellungszeitpunkt der ursprünglichen Nachricht aus der Quelle erhalten bleibt Messaging-Plattform verwenden möchten, können Sie die createTime der Nachricht festlegen. Dieses createTime muss auf einen Wert festgelegt werden, der zwischen dem Erstellungszeitpunkt des Gruppenbereichs liegt, den Sie die zuvor festgelegte Zeit und die Gegenwart.

Nachrichten im selben Gruppenbereich dürfen nicht dieselbe createTime enthalten, auch wenn vorherige Nachrichten mit dieser Uhrzeit werden gelöscht.

Der Link kann in Nachrichten mit Drittanbieter-URLs in Gruppenbereichen im Importmodus nicht gerendert werden eine Vorschau in Google Chat ansehen.

Wenn Sie Nachrichten im Importmodus erstellen, werden in Gruppenbereichen keine Benachrichtigungen gesendet und keine E‐Mails gesendet an alle Nutzer gesendet, einschließlich Nachrichten, die Nutzererwähnungen

Das folgende Beispiel zeigt, wie Sie eine Nachricht in einem Bereich im Importmodus erstellen:

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)

Ersetzen Sie Folgendes:

Reaktionen

Ihre Chat-App kann Daten importieren Reaktionen auf Nachrichten mit der Chat API. Informationen zu den Ressourcenmethoden und Authentifizierungsunterstützung in Gruppenbereichen im Importmodus finden Sie unter Chat-Apps autorisieren

Anhänge

Ihre Chat-App kann anhänge hochladen mit der Chat API. Informationen zu den Ressourcenmethoden und Authentifizierungsunterstützung in Gruppenbereichen im Importmodus finden Sie unter Chat-Apps autorisieren Sie können jedoch empfehlen wir Ihnen dringend, Google Drive API für Anhänge als Google Drive-Dateien hochladen und die Datei-URIs mit der entsprechenden Nachrichten in den Gruppenbereichen im Importmodus, um Anhänge aus anderen Messaging-Plattformen, um das interne Limit von Google Chat für Anhänge nicht zu erreichen hochladen.

Bisherige Mitgliedschaften

Bisherige Mitgliedschaften werden für Nutzer erstellt, die die Mitgliedschaft bereits verlassen haben. die ursprüngliche Gruppenbereichsentität aus der Quell-Messaging-Plattform, Sie möchten aber ihre Daten in Google Chat aufzubewahren. Informationen zum Hinzufügen neuer Mitglieder, nachdem der Gruppenbereich nicht mehr importiert wird erhalten Sie unter Mitgliedschaftsressource erstellen.

Wenn für diese historischen Mitglieder Richtlinie zur Datenspeicherung bei Google die vom Nutzer erstellten Daten wie Nachrichten und Reaktionen bisherige Mitgliedschaften in einem Gruppenbereich, bevor Sie sie in Google Chat importieren. Während sich der Gruppenbereich im Importmodus befindet, können Sie diese historischen Mitgliedschaften importieren in den Raum mit dem create-Methode am Membership-Ressource. Um die Auszeitzeit der bisherigen Mitgliedschaft beizubehalten, müssen Sie die deleteTime der Mitgliedschaft. Die Startzeit muss genau sein, hat Einfluss darauf, welche Daten für diese Mitgliedschaften gespeichert werden. Außerdem wird diese deleteTime muss nach dem Zeitstempel für die Erstellung des Gruppenbereichs liegen und darf kein in der Zukunft liegender Zeitstempel sein.

Neben deleteTime können Sie auch createTime festlegen, um den Wert Zeitpunkt des ursprünglichen Beitritts der bisherigen Mitgliedschaft Im Gegensatz zu deleteTime ist das Attribut createTime ist optional. Wenn die Richtlinie nicht konfiguriert ist, wird createTime automatisch so berechnet: 1 Mikrosekunde von deleteTime subtrahiert. Wenn festgelegt, muss createTime vor deleteTime und muss am oder nach der Erstellungszeit des Gruppenbereichs liegen. Dieses createTime Diese Informationen werden nicht verwendet, um die Datenaufbewahrung zu ermitteln, und sind im Administratormodus nicht sichtbar. wie die Admin-Konsole und Google Vault.

Es gibt verschiedene Möglichkeiten, wie Nutzer einem Gruppenbereich im Quell-Messaging-Plattform (durch Einladungen, Teilnehmen an sich, von einem anderen Nutzer) Die Felder „Bisherige Mitgliedschaft“ createTime und „deleteTime“ werden hinzugefügt oder entfernt wurden.

Das folgende Beispiel zeigt, wie Sie eine bisherige Mitgliedschaft in einem Import erstellen Modusbereich:

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)

Ersetzen Sie Folgendes:

Ressourcen in einen externen Bereich importieren

Sie können einen externen Bereich mit dem Importmodus nur mithilfe von Anmeldedaten erstellen die Nutzern in Ihrer Workspace-Organisation gehören. Dies gilt nur für während sich der Gruppenbereich im Importmodus befindet. Sobald der Gruppenbereich Importmodus abgeschlossen ist, können externe Nutzer eingeladen werden, den importierten Gruppenbereichen beizutreten (siehe Zugriffsbereich) und ihre Anmeldedaten können zum Aufrufen der Chat API verwendet werden.

Importierte Ressourcen validieren

Ihre Chat-App kann die Inhalte lesen und validieren eines Bereichs im Importmodus erstellen, indem Sie die Methode list-Methode für den Message-Ressource. Sie können die Ressourcen Reaction und Attachment aus allen zurückgegebenen Nachrichten lesen emojiReactionSummaries und attachment. Chat-Apps können Rufen Sie diese Methode nur im Namen eines Nutzers durch Identitätsübernahme auf. Weitere Informationen finden Sie unter Chat-Apps autorisieren

Ihre Chat-App kann auch einzelne Nachrichten für Validierung durch Aufrufen der Methode get-Methode für die Ressource Message Chat-Apps können diese Methode nur aufrufen, um ihre eigenen Nachrichten über mit eigenen Befugnissen. Weitere Informationen finden Sie unter Chat-Apps autorisieren

Chat-Apps können auch bisherige Mitgliedschaften auflisten, indem sie die list-Methode am Membership-Ressource. Nachdem der Importmodus für den Gruppenbereich beendet wurde, werden über die Methode list keine Verlaufsdaten eine Kanalmitgliedschaft anbieten. Chat-Apps können diese Methode nur auf im Namen eines Nutzers durch Identitätsdiebstahl. Weitere Informationen finden Sie unter Chat-Apps autorisieren

Sie können die Eigenschaften eines Importmodusbereich durch Aufrufen der Methode get-Methode am Space-Ressource. Chat-Apps können diese Methode nur mit ihrer eigenen Berechtigung aufrufen. Weitere Informationen finden Sie unter Chat-Apps autorisieren

Unterschiede zwischen importierten Ressourcen und Quelldaten abgleichen

Wenn eine importierte Ressource nicht mehr mit der ursprünglichen Entität aus der Quelle übereinstimmt Messaging-Plattform aufgrund von Änderungen an der ursprünglichen Entität während des Imports, Chat-Apps können die Chat API aufrufen, um die importierten Daten Chat-Ressource. Wenn ein Nutzer beispielsweise eine Nachricht in der Quellnachricht bearbeitet nachdem die Nachricht in Google Chat erstellt wurde, Chat-Apps können die importierte Nachricht aktualisieren, sodass sie die aktuellen Inhalt der ursprünglichen Nachricht

Nachrichten

Zum Aktualisieren unterstützte Felder für eine Nachricht in einem Bereich im Importmodus aufrufen, update-Methode am Ressource Message. Chat-Apps können diese Methode nur mit derselben Berechtigung aufrufen, die die beim Erstellen der Mitteilung verwendet wurde. Wenn Sie die Nutzeridentität übernommen haben müssen Sie denselben imitierten Nutzer verwenden, um um diese Nachricht zu aktualisieren.

Wenn Sie eine Nachricht in einem Bereich im Importmodus löschen möchten, rufen Sie die Methode delete-Methode am Message-Ressource. Nachrichten in einem Gruppenbereich im Importmodus müssen nicht durch das Original gelöscht werden Message Creator erstellt und kann gelöscht werden, indem die Identität eines beliebigen Nutzers in der Domain ausgegeben wird. Chat-Apps können nur ihre eigenen Nachrichten löschen Befugnis. Weitere Informationen finden Sie unter Chat-Apps autorisieren

Reaktionen

Um eine Reaktion für eine Nachricht in einem Bereich im Importmodus zu löschen, verwenden Sie die delete-Methode für die Ressource reactions. Informationen zu den Ressourcenmethoden und Authentifizierungsunterstützung in Gruppenbereichen im Importmodus finden Sie unter Chat-Apps autorisieren

Anhänge

Um Anhänge für eine Nachricht in einem Bereich im Importmodus zu aktualisieren, verwenden Sie die upload-Methode für media . Informationen zu Ressourcenmethoden und Authentifizierungstypen in Gruppenbereichen im Importmodus, siehe Chat-Apps autorisieren

Bisherige Mitgliedschaften

Um eine frühere Mitgliedschaft in einem Bereich im Importmodus zu löschen, verwenden Sie die delete-Methode am Membership-Ressource. Nach einem Gruppenbereich beendet den Importmodus, lässt sich mit der Methode delete kein Verlauf löschen eine Kanalmitgliedschaft anbieten.

Eine bisherige Mitgliedschaft in einem Bereich im Importmodus kann nicht aktualisiert werden. Wenn Sie Wenn Sie eine falsch importierte bisherige Mitgliedschaft korrigieren, müssen Sie sie löschen. und erstellen Sie ihn dann neu, während sich der Gruppenbereich noch im Importmodus befindet.

Gruppenbereiche

Zum Aktualisieren unterstützte Felder in einen Bereich im Importmodus haben, patch-Methode für die Ressource spaces.

Verwenden Sie zum Löschen eines Gruppenbereichs im Importmodus die delete-Methode für die Ressource spaces.

Informationen zu den Ressourcenmethoden und Authentifizierungstypen im Importmodus verwenden und Chat-Apps autorisieren

Importmodus abschließen

Vor dem Aufrufen von completeImport sollten Sie sicherstellen, dass die Validierung und Abgleich von Ressourcenunterschieden abgeschlossen sind. Das Beenden eines Bereichs außerhalb des Importmodus kann nicht rückgängig gemacht werden. wandelt den Importmodusbereich in einen regulären Bereich um. Es gibt keinen Indikator in Chat, in dem diese Gruppenbereiche einem Datenimport zugeordnet werden.

Notieren Sie sich das Datum und die Uhrzeit des Aufrufs von completeImport, dem Ressourcennamen. des Nutzers, der den Aufruf getätigt hat, und der zurückgegebenen Antwort. Das kann hilfreich sein wenn Sie auf Probleme stoßen und diese untersuchen müssen.

Um den Importmodus abzuschließen und den Gruppenbereich für Nutzer zugänglich zu machen, Die Chat-App kann die Methode completeImport für die Space-Ressource. Chat-Apps können diese Methode nur im Namen eines Nutzers über Identitätsdiebstahl. Weitere Informationen finden Sie unter Chat-Apps autorisieren Der imitierte Nutzer wird dem Gruppenbereich als Administrator des Gruppenbereichs sobald diese Methode abgeschlossen ist. Diese Methode muss innerhalb von 30 Tagen nach dem ersten Aufruf der create.space-Methode. Wenn Sie versuchen, diese Methode nach dem 30 Tage vergangen sind, führt der Aufruf zu Fehlern, da der Importvorgang Modusbereich wurde gelöscht und ist nicht mehr verfügbar für Chat-App.

Der imitierte Nutzer in der Methode completeImport muss nicht der Nutzer sein Ersteller des Gruppenbereichs.

Das folgende Beispiel zeigt, wie der Importmodus ausgeführt wird:

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)

Ersetzen Sie Folgendes:

Zugriff auf den Gruppenbereich nach dem Importmodus gewähren

So gewähren Sie Chat-Nutzern Zugriff auf den kürzlich importierten Gruppenbereich: Chat-Apps können weiterhin den Bereich „chat.import“ und den Nutzer verwenden Identitätsdiebstahl innerhalb von 30 Tagen nach dem ersten Aufruf der create.space()-Methode Folgendes:

Um diese Methoden mit dem Bereich chat.import verwenden zu können, muss der Nutzer, dessen Identität gestohlen wurde, Administrator des Gruppenbereichs sein.

Bei externen Gruppenbereichen ist die Mitgliedschaft create()-Methode ermöglicht außerdem das Einladen von Nutzern außerhalb Ihrer Workspace-Organisation. Achten Sie darauf, verstehen Sie all die bekannte Einschränkungen für externen Nutzenden.

Fehlerbehebung

Wenn beim Importieren von Chatbereichen Probleme auftreten, lesen Sie um Hilfe zu erhalten. Wenn eine Fehlerantwort auftritt, führen Sie (Kopieren Sie den Text in ein Dokument oder speichern Sie einen Screenshot), zur weiteren Referenz und zur Fehlerbehebung.

Wenn ein Gruppenbereich erfolgreich importiert wurde, wird CompleteImportSpace mit den Status OK.

Import wurde nicht vor Ablauf der 30-Tage-Frist abgeschlossen

Wie bereits unter Gruppenbereich im Importmodus erstellen beschrieben, gilt Folgendes: Der Gruppenbereich befindet sich 30 Tage nach der Erstellungsmethode noch im Importmodus aufgerufen wurde, wird sie automatisch gelöscht und ist nicht mehr zugänglich die nicht wiederherstellbar sind.

Leider ist der gelöschte Speicherplatz nicht mehr verfügbar oder kann nicht wiederhergestellt werden und der muss der Import erneut gestartet werden.

Fehlende Gruppenbereiche suchen

Wenn Sie den neuen Chatbereich nicht finden können, sehen Sie sich die Tabelle mit der Antwort, die Sie von CompleteImportSpace an und wie Sie das Problem lösen können.

Antwort erhalten Untersuchungsschritte Erklärung Auflösung
CompleteImportSpace löst eine Ausnahme aus und ruft GetSpace gibt PERMISSION_DENIED zurück. Prüfen Sie anhand der Einträge, wann der Gruppenbereich erstellt wurde und ob er älter ist als 30 Tage, wurde es automatisch gelöscht. Außerdem gibt es keine des importierten Gruppenbereichs im Tool zum Verwalten von Gruppenbereichen oder Audit-Log. Der Import wurde vor mehr als 30 Tagen gestartet. und die Migration des Gruppenbereichs konnte nicht beendet werden. Erstellen Sie einen neuen Gruppenbereich und führen Sie den Import noch einmal aus.
CompleteImportSpace gibt OK zurück und ruft GetSpace gibt PERMISSION_DENIED zurück. Der importierte Gruppenbereich enthält keinen Eintrag in Tool zum Verwalten von Gruppenbereichen, Der Gruppenbereich ist jedoch in der Audit-Log. Der Gruppenbereich wurde importiert, aber danach gelöscht. Erstellen Sie einen neuen Gruppenbereich und führen Sie den Import noch einmal aus.