Importare dati in Google Chat

Con l'API Google Chat, puoi importare i dati da altre piattaforme di messaggistica in Google Chat. Puoi importare messaggi, allegati, reazioni, appartenenze ed entità dello spazio dalle altre piattaforme di messaggistica a corrispondente Risorse dell'API Chat. Puoi importare questi dati creando spazi di Chat in modalità di importazione e importando i dati in quegli spazi. Al termine del processo, che diventano spazi di Chat standard.

Di seguito viene descritto il processo di importazione completo:

  1. Pianificare l'importazione
  2. Configurare l'autorizzazione per l'app Chat
  3. Creare uno spazio in modalità di importazione
  4. Importa risorse
  5. Convalidare le risorse importate
  6. Riconciliazione delle differenze delle risorse importate dai dati di origine
  7. Modalità di importazione completa
  8. Concedere l'accesso allo spazio dopo la modalità di importazione
  9. Risoluzione dei problemi

Prerequisiti

Apps Script

Python

  • Python 3.6 o versioni successive
  • Il pip strumento di gestione dei pacchetti
  • Le librerie client di Google più recenti per Python. Per installare o aggiornare esegui questo comando nell'interfaccia a riga di comando:

    pip3 install --upgrade google-api-python-client google-auth
    
  • Un'app di Chat pubblicata. Per creare e pubblicare un app Chat, vedi Crea un'app Google Chat.

  • Autorizzazione configurata per l'app Chat. La All'app di chat deve essere delegata l'autorità a livello di dominio In tutti i domini in cui l'app importa contenuti, vedi Autorizzare le app di Chat.

Pianifica l'importazione

Pianifica di conseguenza la quantità di dati da importare, scopri come limiti di utilizzo e quote possono influire di importazione ed essere consapevoli dei tipi di spazi di Chat supportati per l'importazione in un nuovo spazio.

Rivedi i limiti di utilizzo delle API

Il tempo necessario per importare i dati in Chat può variare notevolmente a seconda della quantità di risorse di Chat da importare. Controlla le impostazioni dell'app Chat limiti di utilizzo e la quantità di dati pianificati l'importazione dalla piattaforma di messaggistica di origine per determinare una stima della cronologia.

Quando importi i messaggi in uno spazio, ti consigliamo di distribuire le chiamate al messages.create() in diversi thread di messaggi.

Identifica gli spazi supportati da importare

La modalità di importazione supporta solo SpaceType di SPACE. Non supporta SpaceType di GROUP_CHAT o DIRECT_MESSAGE. Consulta le documentazione per SpaceType per ulteriori informazioni.

Crea uno spazio in modalità di importazione

Per creare uno spazio in modalità di importazione, richiama il metodo Metodo create il Space risorsa e imposta importMode su true.

Quando crei lo spazio in modalità di importazione, tieni presente quanto segue.

  • La data e l'ora: ricorda che la modalità di importazione deve essere completata entro 30 giorni. Se lo spazio è ancora in modalità di importazione dopo 30 giorni da quando è stato chiamato il metodo spaces.create(), vengono eliminati automaticamente e diventano inaccessibili e non recuperabili.
    • Non utilizzare il valore dell'attributo createTime per monitorare la scadenza del periodo di 30 giorni. Questo non è sempre uguale a quando chiami il metodo spaces.create(). Quando utilizzando la modalità di importazione, il campo createTime può essere impostato sul valore il timestamp in cui lo spazio è stato creato nell'origine per di conservare l'ora di creazione originale.
  • Il nome della risorsa dello spazio (name): L'identificatore univoco utilizzato per recuperare le informazioni sul spazio specifico a cui viene fatto riferimento nei passaggi successivi durante l'importazione dei contenuti nello spazio.

Per mantenere l'ora di creazione dell'entità dello spazio equivalente dall'origine. piattaforma di messaggistica, puoi impostare il createTime dello spazio. Questo createTime deve essere impostato su un valore compreso tra il 1° gennaio 2000 e la data odierna.

Per creare uno spazio esterno in modalità di importazione, imposta externalUserAllowed su true. Al termine dell'importazione, puoi aggiungere gli utenti esterni.

L'esempio seguente mostra come creare uno spazio in modalità di importazione:

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)

Sostituisci quanto segue:

  • EMAIL: l'indirizzo email dell'account utente che stai impersonando un'autorità a livello di dominio.
  • DISPLAY_NAME: il nome dello spazio creato in modalità di importazione. Deve essere un nome univoco per lo spazio visualizzato da Utenti di Chat. Ti consigliamo di utilizzare lo stesso nome visualizzato di dallo spazio da cui importi i dati.

Importa risorse

Per importare risorse da altre piattaforme di messaggistica, crea Google Chat (ad esempio messaggi, reazioni, allegati) nello spazio in modalità di importazione. Quando crei una risorsa nello spazio, specifichi i dati dalla relativa dalla piattaforma di messaggistica da cui stai eseguendo la migrazione.

Messaggi

Le app di Chat possono importare i messaggi utilizzando la propria autorità oppure per conto di un utente tramite il furto d'identità. L'autore del messaggio è impostato su dell'account utente impersonato. Per ulteriori informazioni, vedi Autorizzare le app di Chat. Per importare un in uno spazio in modalità di importazione, richiama Metodo create il Message risorsa. Per mantenere l'ora di creazione del messaggio originale dall'origine piattaforma di messaggistica, puoi impostare l'createTime del messaggio. Questo createTime deve essere impostato su un valore compreso tra il momento in cui crei lo spazio impostato in precedenza e nell'ora attuale.

I messaggi nello stesso spazio non possono contenere lo stesso createTime, anche se i messaggi precedenti con quell'ora vengono eliminati.

I messaggi contenenti URL di terze parti negli spazi in modalità di importazione non possono visualizzare il link le anteprime in Google Chat.

Quando crei messaggi in modalità di importazione, gli spazi non inviano notifiche né inviano email a tutti gli utenti, inclusi i messaggi contenenti menzioni degli utenti.

L'esempio seguente mostra come creare un messaggio in uno spazio in modalità di importazione:

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)

Sostituisci quanto segue:

Reazioni

La tua app di Chat può importare reazioni per i messaggi mediante l'API Chat. Per informazioni sui metodi delle risorse tipi di autenticazione supportati negli spazi in modalità di importazione, consulta Autorizzare le app di Chat.

Allegati

L'app Chat può caricare allegati utilizzando l'API Chat. Per informazioni sui metodi delle risorse tipi di autenticazione supportati negli spazi in modalità di importazione, consulta Autorizzare le app di Chat. Tuttavia, ti consigliamo vivamente di utilizzare API Google Drive per caricare gli allegati come file di Google Drive e collegare gli URI dei file rispettivi messaggi negli spazi in modalità di importazione per importare allegati da altri piattaforme di messaggistica per evitare di raggiungere il limite interno di Google Chat per gli allegati per il caricamento.

Cronologia abbonamenti

Gli abbonamenti storici sono abbonamenti creati per gli utenti che avevano già abbandonato la chat l'entità spaziale originale dalla piattaforma di messaggistica di origine, ma vuoi conservare i propri dati in Chat. Per informazioni sull'aggiunta di nuovi membri dopo che lo spazio non è più in fase di importazione vedi Creare una risorsa di abbonamento.

In molti casi, quando questi membri storici sono soggetti a norme sulla conservazione dei dati in Google, vuoi conservare i dati (come i messaggi e le reazioni) creati gli abbonamenti storici in uno spazio prima di importarli in Chat. Mentre lo spazio è in modalità di importazione, puoi importare le iscrizioni storiche nello spazio, utilizzando Metodo create il Membership risorsa. Per mantenere il tempo di uscita dell'abbonamento storico, devi impostare deleteTime dell'abbonamento. L'orario di uscita deve essere preciso perché influisce sui dati da conservare per gli abbonamenti. Inoltre, questo deleteTime deve essere successivo al timestamp di creazione dello spazio e non deve essere un timestamp futuro.

Oltre a deleteTime, puoi anche impostare createTime per mantenere il valore data di iscrizione originale dell'abbonamento storico. A differenza di deleteTime, Il campo createTime è facoltativo. Se il criterio non viene configurato, il valore di createTime viene calcolato automaticamente sottraendo 1 microsecondo da deleteTime. Se impostato, createTime deve essere precedente deleteTime e deve essere uguale o successiva alla data di creazione dello spazio. Questo createTime non vengono utilizzate per determinare la conservazione dei dati e non sono visibili nella come la Console di amministrazione Google e Google Vault.

Sebbene potrebbero esserci diversi modi in cui un utente può partecipare a uno spazio e abbandonarlo piattaforma di messaggistica di origine (tramite inviti, partecipazione da parte di se stessi, aggiunta da un altro utente), in Chat queste azioni sono tutte rappresentate da i campi dell'appartenenza storica createTime e deleteTime come vengono aggiunti o rimosso.

L'esempio seguente mostra come creare un'appartenenza storica in un'importazione modalità:

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)

Sostituisci quanto segue:

Importa risorse in uno spazio esterno

Puoi creare uno spazio esterno con la modalità di importazione solo utilizzando le credenziali degli utenti della tua organizzazione Workspace. Si applica solo mentre lo spazio è in modalità di importazione. Una volta creato lo spazio completa la modalità di importazione, gli utenti esterni possono ricevuto un invito a partecipare agli spazi importati (vedi la sezione per l'accesso) e le relative credenziali possono essere utilizzate per chiamare l'API Chat.

Convalida le risorse importate

L'app Chat può leggere e convalidare i contenuti di uno spazio in modalità di importazione metodo list nella Message risorsa. Puoi leggere Reaction e Attachment risorse da qualsiasi messaggio restituito emojiReactionSummaries e attachment. Le app di chat possono chiamare questo metodo per conto di un utente solo tramite la rappresentazione. Per ulteriori informazioni le informazioni, vedi Autorizzare le app di Chat.

L'app Chat può anche leggere singoli messaggi per la convalida richiamando il metodo Metodo get sulla risorsa Message. Le app di chat possono chiamare questo metodo solo per leggere i propri messaggi tramite utilizzando la propria autorità. Per ulteriori informazioni, vedi Autorizzare le app di Chat.

Le app di chat possono anche elencare la cronologia degli abbonamenti chiamando il Metodo list il Membership risorsa. Quando lo spazio esce dalla modalità di importazione, il metodo list non espone i dati storici nuovi abbonamenti. Le app di chat possono chiamare questo metodo solo su per conto di un utente tramite il furto d'identità. Per ulteriori informazioni, vedi Autorizzare le app di Chat.

Puoi leggere le proprietà di uno spazio in modalità di importazione richiamando il metodo Metodo get il Space risorsa. Le app di chat possono chiamare questo metodo soltanto utilizzando la propria autorità. Per ulteriori informazioni, vedi Autorizzare le app di Chat.

Riconciliazione delle differenze delle risorse importate dai dati di origine

Se una risorsa importata non corrisponde più all'entità originale dell'origine alla piattaforma di messaggistica a causa di modifiche all'entità originale durante l'importazione, Le app di chat possono chiamare l'API Chat per modificare risorsa di chat. Ad esempio, se un utente modifica un messaggio nei messaggi di origine dopo la creazione del messaggio in Chat, Le app di chat possono aggiornare il messaggio importato in modo che rifletta contenuti attuali del messaggio originale.

Messaggi

Per aggiornare campi supportati su un messaggio in uno spazio in modalità di importazione, richiama Metodo update il Message risorsa. Le app di chat possono chiamare questo metodo solo utilizzando la stessa autorità che durante la creazione iniziale del messaggio. Se hai utilizzato il furto d'identità degli utenti durante la creazione iniziale del messaggio, devi utilizzare lo stesso utente che ha aggiornare quel messaggio.

Per eliminare un messaggio in uno spazio in modalità di importazione, chiama il metodo Metodo delete il Message risorsa. I messaggi in uno spazio in modalità di importazione non devono essere eliminati dall'originale creatore di messaggi e possono essere eliminati simulando l'identità di un utente nel dominio. Le app di chat possono eliminare i propri messaggi utilizzando i propri l'autorità competente. Per ulteriori informazioni, vedi Autorizzare le app di Chat.

Reazioni

Per eliminare una reazione per un messaggio in uno spazio in modalità di importazione, utilizza la Metodo delete sulla risorsa reactions. Per informazioni sui metodi delle risorse tipi di autenticazione supportati negli spazi in modalità di importazione, consulta Autorizzare le app di Chat.

Allegati

Per aggiornare gli allegati di un messaggio in uno spazio in modalità di importazione, utilizza la Metodo upload in media risorsa. Per informazioni sui metodi e i tipi di autenticazione delle risorse per gli spazi in modalità di importazione, consulta Autorizzare le app di Chat.

Cronologia abbonamenti

Per eliminare un'appartenenza storica in uno spazio in modalità di importazione, utilizza Metodo delete il Membership risorsa. Dopo un lo spazio esce dalla modalità di importazione, il metodo delete non ti consente di eliminare i dati storici nuovi abbonamenti.

Non puoi aggiornare un'appartenenza storica in uno spazio in modalità di importazione. Se vuoi correggere un'appartenenza storica importata in modo errato, è necessario eliminarla e poi ricrearlo mentre lo spazio è ancora in modalità di importazione.

Spaces

Per aggiornare campi supportati in in uno spazio in modalità di importazione, utilizza Metodo patch sulla risorsa spaces.

Per eliminare uno spazio in modalità di importazione, utilizza la Metodo delete sulla risorsa spaces.

Per informazioni sui metodi delle risorse e sui tipi di supporto per l'autenticazione negli spazi in modalità di importazione e Autorizzare le app di Chat.

Completa la modalità di importazione

Prima di chiamare il completeImport devi assicurarti che le fasi di convalida e riconciliazione delle differenze nelle risorse sono completate. L'uscita da uno spazio fuori dalla modalità di importazione è un processo irreversibile e converte lo spazio in modalità di importazione in uno spazio regolare. Non ci sono indicatori in Chat che attribuisce questi spazi a un'importazione dati.

Prendi nota della data e dell'ora in cui chiami completeImport, il nome della risorsa dell'utente che ha effettuato la chiamata e la risposta è stata restituita. Può essere utile in caso di problemi e di indagine.

Per completare la modalità di importazione e rendere lo spazio accessibile agli utenti, L'app di Chat può chiamare il metodo completeImport sulla Space risorsa. Le app di chat possono chiamare questo metodo solo per conto di un utente tramite il furto d'identità. Per ulteriori informazioni, vedi Autorizzare le app di Chat. L'utente impersonato viene aggiunto allo spazio come gestore dello spazio una volta completato questo metodo. Questo metodo deve essere chiamato entro 30 giorni dal chiamata iniziale al metodo create.space. Se tenti di chiamare questo metodo dopo Sono trascorsi 30 giorni. La chiamata causa errori perché l'importazione viene eliminato e non è più accessibile App Chat.

L'utente impersonato nel metodo completeImport non deve necessariamente essere il creatore dello spazio.

L'esempio seguente mostra come completare la modalità di importazione:

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)

Sostituisci quanto segue:

Concedi l'accesso allo spazio dopo la modalità di importazione

Per concedere agli utenti di Chat l'accesso allo spazio importato di recente: Le app di chat possono continuare a utilizzare l'ambito e l'utente chat.import impersonificazione entro 30 giorni dalla chiamata iniziale al metodo create.space() le seguenti:

Per utilizzare questi metodi con l'ambito chat.import, l'utente impersonato deve essere un gestore dello spazio.

Per gli spazi con utenti esterni, l'appartenenza Metodo create() ti consente anche di invitare utenti esterni alla tua organizzazione Workspace. Assicurati che comprendi tutti i limitazioni note per utenti esterni.

Risoluzione dei problemi

Se si verifica un problema durante l'importazione degli spazi di Chat, esamina i seguenti problemi per ricevere assistenza. Se ricevi una risposta di errore, (copia/incolla il testo in un documento o salva uno screenshot) per per riferimento futuro e per la risoluzione dei problemi.

Quando uno spazio viene importato correttamente, CompleteImportSpace viene completato con uno stato di OK.

L'importazione non è stata completata prima della scadenza del periodo di 30 giorni

Come descritto in precedenza in Creare uno spazio in modalità di importazione, se lo spazio è ancora in modalità di importazione dopo 30 giorni dal momento in cui il metodo di creazione è stato chiamato, viene automaticamente eliminato e diventa inaccessibile non recuperabile.

Purtroppo lo spazio eliminato non è più disponibile o recuperabile e il processo di importazione deve essere avviato di nuovo.

Trovare gli spazi mancanti

Se non riesci a trovare il nuovo spazio di Chat, rivedi il tabella che segue per la risposta che hai ricevuto da CompleteImportSpace a vedi la spiegazione e come risolverlo.

Risposta ricevuta Passaggi dell'indagine Spiegazione Risoluzione
CompleteImportSpace genera un'eccezione e chiama GetSpace restituisce PERMISSION_DENIED. Controlla nei record quando lo spazio è stato creato e se è meno recente. più di 30 giorni, è stato eliminato automaticamente. Inoltre, non c'è record dello spazio importato strumento di gestione dello spazio o il log di controllo. Sono trascorsi più di 30 giorni dall'avvio del processo di importazione e la migrazione dello spazio non è riuscita. Crea un nuovo spazio ed esegui di nuovo il processo di importazione.
CompleteImportSpace restituisce OK e chiama GetSpace restituisce PERMISSION_DENIED. Non c'è record dello spazio importato strumento di gestione dello spazio, ma risulta che lo spazio è stato eliminato log di controllo. Lo spazio è stato importato correttamente, ma successivamente è stato eliminato. Crea un nuovo spazio ed esegui di nuovo il processo di importazione.