Con l'API Google Chat, puoi importare i dati dalle altre piattaforme di messaggistica in Google Chat. Puoi importare messaggi, allegati, reazioni, iscrizioni ed entità dello spazio esistenti dalle altre piattaforme di messaggistica alle risorse dell'API Chat corrispondenti. Puoi importare questi dati creando spazi di Chat in modalità di importazione e importando i dati in questi spazi. Una volta completato con successo il processo, questi spazi diventano spazi di Chat standard.
Di seguito è descritta la procedura di importazione completa:
- Pianificare l'importazione
- Configurare l'autorizzazione per l'app Chat
- Creare uno spazio in modalità di importazione
- Importare risorse
- Convalidare le risorse importate
- Riconciliare le differenze tra le risorse importate e i dati di origine
- Modalità di importazione completa
- Concedere l'accesso allo spazio dopo la modalità di importazione
- Risoluzione dei problemi
Prerequisiti
Apps Script
- Un account Google Workspace Business o Enterprise con accesso a Google Chat.
- Crea un progetto Google Cloud.
- Attiva e configura l'API Google Chat con un nome, un'icona e una descrizione per la tua app di chat.
- Crea un progetto Apps Script autonomo e attiva il servizio di chat avanzato.
- L'app Chat deve avere l'autorizzazione a livello di dominio in tutti i domini in cui importa contenuti. Consulta Autorizzare le app Chat.
Python
- Un account Google Workspace Business o Enterprise con accesso a Google Chat.
- Crea un progetto Google Cloud.
- Attiva e configura l'API Google Chat con un nome, un'icona e una descrizione per la tua app di chat.
- Python 3.6 o versioni successive
- Lo strumento di gestione pacchetti pip
- L'app Chat deve avere l'autorizzazione a livello di dominio in tutti i domini in cui importa contenuti. Consulta Autorizzare le app Chat.
Pianificare l'importazione
Pianifica di conseguenza la quantità di dati da importare, comprendi in che modo i limiti di utilizzo e le quote possono influire sul processo di importazione e tieni presente i tipi di spazi di Chat supportati durante l'importazione in un nuovo spazio. Se sei un amministratore, leggi Importare i dati dei messaggi in Google Chat da un altro servizio e segui attentamente i passaggi.
Esaminare i limiti di utilizzo dell'API
Il tempo necessario per importare i dati in Chat può variare notevolmente a seconda della quantità di risorse di Chat da importare. Esamina i limiti di utilizzo dell'app Chat e la quantità di dati pianificati per l'importazione dalla piattaforma di messaggistica di origine per determinare una cronologia stimata.
Quando importi messaggi in uno spazio, ti consigliamo di distribuire le chiamate
al metodo messages.create()
in thread di messaggi diversi.
Identifica gli spazi supportati da importare
La modalità di importazione supporta solo SpaceType
di SPACE
e GROUP_CHAT
. Non supporta DIRECT_MESSAGE
.
Per ulteriori informazioni, consulta la documentazione relativa a SpaceType
.
Creare uno spazio in modalità di importazione
Per creare uno spazio in modalità di importazione, chiama il
metodo create
nella
risorsa Space
e imposta importMode
su true
.
Quando crei lo spazio in modalità di importazione, tieni presente quanto segue.
- Data e ora: ricorda che la modalità di importazione deve essere completata entro 90 giorni. Se lo spazio è ancora in modalità di importazione dopo 90 giorni dalla chiamata del metodo
spaces.create()
, viene eliminato automaticamente e diventa inaccessibile e non recuperabile.- Utilizza il valore del campo
importModeExpireTime
per monitorare la scadenza del periodo di 90 giorni. - Non utilizzare il valore del campo
createTime
per monitorare la scadenza del periodo di 90 giorni. Non sempre è uguale a quando chiami il metodospaces.create()
. Quando utilizzi la modalità di importazione, il campocreateTime
può essere impostato sul timestamp storico in cui è stato creato lo spazio nell'origine per preservare l'ora di creazione originale.
- Utilizza il valore del campo
- Il nome della risorsa spazio (
name
): l'identificatore univoco utilizzato per recuperare informazioni sullo spazio specifico e a cui si fa riferimento nei passaggi successivi durante l'importazione di contenuti nello spazio.
Per conservare l'ora di creazione dell'entità spazio equivalente dalla piattaforma di messaggistica di origine, puoi impostare createTime
dello spazio. Questo
createTime
deve essere impostato su un valore compreso tra il 1° gennaio 2000 e il momento attuale.
Per creare uno spazio esterno in modalità di importazione, imposta externalUserAllowed
su true
.
Una volta completata l'importazione, puoi aggiungere utenti esterni.
Il seguente esempio 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 rappresentando con l'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 dagli utenti di Chat. Ti consigliamo di utilizzare lo stesso nome visualizzato dello spazio da cui importi i dati.
Importazione delle risorse
Per importare risorse da altre piattaforme di messaggistica, devi creare risorse di Google Chat (come messaggi, reazioni, allegati) nello spazio della modalità di importazione. Quando crei una risorsa nello spazio, specifichi i dati della risorsa correlata della piattaforma di messaggistica da cui stai eseguendo la migrazione.
Messaggi
Le tue app di chat possono importare i messaggi utilizzando la propria autorità o
per conto di un utente tramite l'impersonificazione. L'autore del messaggio è impostato sull'account utente rappresentato. Per saperne di più, vedi
Autorizzare le app di chat.
Per importare un messaggio in uno spazio in modalità di importazione, chiama il metodo create
sulla risorsa Message
.
Per preservare l'ora di creazione del messaggio originale dalla piattaforma di messaggistica di origine, puoi impostare il createTime
del messaggio. Questo
createTime
deve essere impostato su un valore compreso tra l'ora di creazione dello spazio che hai
impostato in precedenza e l'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 eseguire il rendering delle anteprime dei link in Google Chat.
Quando crei i messaggi in modalità di importazione, gli spazi non inviano notifiche o email a nessun utente, inclusi i messaggi che contengono menzioni di 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:
EMAIL
: l'indirizzo email dell'account utente che stai rappresentando con l'autorità a livello di dominio.SPACE_NAME
: il nome dello spazio creato in modalità di importazione.
Reazioni
La tua app di chat può importare reazioni ai messaggi utilizzando l'API Chat. Per informazioni sui metodi e sui tipi di autenticazione delle risorse supportati negli spazi in modalità di importazione, vedi Autorizzare le app di Chat.
Allegati
La tua app di chat può caricare allegati utilizzando l'API Chat. Per informazioni sui metodi e sui tipi di autenticazione delle risorse supportati negli spazi in modalità di importazione, vedi Autorizzare le app di Chat. Tuttavia, ti consigliamo vivamente di utilizzare l'API Google Drive per caricare gli allegati come file di Google Drive e collegare gli URI dei file ai rispettivi messaggi negli spazi della modalità di importazione per importare gli allegati da altre piattaforme di messaggistica ed evitare di raggiungere il limite interno di Google Chat per il caricamento degli allegati.
Abbonamenti storici
Le iscrizioni storiche sono iscrizioni create per utenti che avevano già abbandonato l'entità spazio originale della piattaforma di messaggistica di origine, ma vuoi conservare i loro dati in Chat. Per informazioni sull'aggiunta di nuovi membri dopo che lo spazio non è più in modalità di importazione, vedi Creare una risorsa di appartenenza.
In molti casi, quando questi membri storici sono soggetti a una
norma di conservazione dei dati in Google,
vuoi conservare i dati (come messaggi e reazioni) creati
dalle iscrizioni storiche in uno spazio prima di importarli in Chat.
Mentre lo spazio è in modalità di importazione, puoi importare queste iscrizioni storiche
nello spazio utilizzando il
metodo create
nella
risorsa Membership
.
Per conservare il tempo di assenza dell'abbonamento storico, devi impostare
il deleteTime
dell'abbonamento. Questo periodo di assenza deve essere accurato perché
influisce sui dati da conservare per questi abbonamenti. Inoltre, questo deleteTime
deve essere successivo al timestamp di creazione dello spazio e non deve essere un timestamp futuro.
Oltre a deleteTime
, puoi impostare anche createTime
per conservare
l'ora di iscrizione originale dell'abbonamento storico. A differenza di deleteTime
, il
createTime
è facoltativo. Se non è impostato, createTime
viene calcolato automaticamente
sottraendo 1 microsecondo da deleteTime
. Se impostato, createTime
deve essere precedente a
deleteTime
e deve essere uguale o successivo all'ora di creazione dello spazio. Queste informazioni createTime
non vengono utilizzate per determinare la conservazione dei dati e non sono visibili negli strumenti di amministrazione
come la Console di amministrazione Google e Google Vault.
Sebbene un utente possa entrare e uscire da uno spazio in diversi modi nella
piattaforma di messaggistica di origine (tramite inviti, partecipazione autonoma, aggiunta
da parte di un altro utente), in Chat queste azioni sono tutte rappresentate dai campi
createTime
e deleteTime
relativi all'appartenenza storica come aggiunta
o rimozione.
Il seguente esempio mostra come creare un'iscrizione storica in uno spazio in modalità di importazione:
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:
EMAIL
: l'indirizzo email dell'account utente che stai rappresentando con l'autorità a livello di dominio.SPACE_NAME
: il nome dello spazio creato in modalità di importazione.USER_ID
: l'ID univoco dell'utente.
Importare risorse in uno spazio esterno
Puoi creare uno spazio esterno con la modalità di importazione solo utilizzando le credenziali appartenenti a utenti all'interno della tua organizzazione Workspace. Questo vale solo mentre lo spazio è in modalità di importazione. Una volta che lo spazio completa la modalità di importazione, gli utenti esterni possono essere invitati a partecipare agli spazi importati (vedi la sezione di accesso) e le loro credenziali possono essere utilizzate per chiamare l'API Chat.
Convalida delle risorse importate
La tua app Chat può leggere e convalidare i contenuti
di uno spazio in modalità di importazione chiamando il
metodo list
sulla
risorsa Message
.
Puoi leggere le risorse Reaction
e Attachment
dai campi
emojiReactionSummaries
e attachment
di qualsiasi messaggio restituito. Le app di chat possono
chiamare questo metodo solo per conto di un utente tramite rappresentazione. Per maggiori
informazioni, vedi
Autorizzare le app di chat.
La tua app Chat può anche leggere i singoli messaggi per la
convalida chiamando il
metodo get
nella risorsa Message
.
Le app di chat possono chiamare questo metodo solo per leggere i propri messaggi
utilizzando la propria autorità. Per saperne di più, vedi
Autorizzare le app di chat.
Le app di chat possono anche elencare gli abbonamenti storici chiamando il
metodo list
nella
risorsa Membership
.
Dopo che lo spazio esce dalla modalità di importazione, il metodo list
non espone più le iscrizioni storiche. Le app di chat possono chiamare questo metodo solo per conto di un utente tramite rappresentazione. Per saperne di più, vedi
Autorizzare le app di chat.
Puoi leggere le proprietà di uno spazio della modalità di importazione chiamando il
metodo get
nella
risorsa Space
. La risposta
conterrà anche
importModeExpireTime
in modo da poter monitorare correttamente l'intervallo di tempo per completare il processo di importazione.
Le app di chat possono chiamare questo metodo solo utilizzando la propria autorità.
Per saperne di più, vedi
Autorizzare le app di chat.
Riconciliare le differenze tra le risorse importate e i dati di origine
Se una risorsa importata non corrisponde più all'entità originale della piattaforma di messaggistica di origine a causa di modifiche apportate all'entità originale durante l'importazione, le app di chat possono chiamare l'API Chat per modificare la risorsa di chat importata. Ad esempio, se un utente modifica un messaggio nella piattaforma di messaggistica di origine dopo che è stato creato in Chat, le app di chat possono aggiornare il messaggio importato in modo che rifletta il contenuto attuale del messaggio originale.
Messaggi
Per aggiornare
i campi supportati
in un messaggio in uno spazio in modalità di importazione, chiama il
metodo update
nella
risorsa Message
.
Le app di chat possono chiamare questo metodo solo utilizzando la stessa autorità
utilizzata durante la creazione iniziale del messaggio. Se hai utilizzato l'impersonificazione dell'utente
durante la creazione del messaggio iniziale, devi utilizzare lo stesso utente impersonato per
aggiornare il messaggio.
Per eliminare un messaggio in uno spazio in modalità di importazione, chiama il
metodo delete
nella
risorsa Message
.
I messaggi in uno spazio in modalità di importazione non devono essere eliminati dal creatore del messaggio originale e possono essere eliminati impersonando qualsiasi utente del dominio.
Le app di chat possono eliminare solo i propri messaggi utilizzando la propria
autorità. Per saperne di più, vedi
Autorizzare le app di chat.
Reazioni
Per eliminare una reazione a un messaggio in uno spazio in modalità di importazione, utilizza il
metodo delete
nella risorsa reactions
. Per informazioni sui metodi e sui tipi di autenticazione delle risorse supportati negli spazi in modalità di importazione, vedi Autorizzare le app di Chat.
Allegati
Per aggiornare gli allegati di un messaggio in uno spazio in modalità di importazione, utilizza il
metodo upload
sulla risorsa media
. Per informazioni sui metodi e sui tipi di autenticazione delle risorse
supportati negli spazi in modalità di importazione, vedi
Autorizzare le app di Chat.
Abbonamenti storici
Per eliminare un'iscrizione storica in uno spazio in modalità di importazione, utilizza il
metodo delete
nella
risorsa Membership
. Dopo che uno
spazio esce dalla modalità di importazione, il metodo delete
non ti consente più di eliminare le iscrizioni
storiche.
Non puoi aggiornare un abbonamento storico in uno spazio in modalità di importazione. Se vuoi correggere un abbonamento storico importato in modo errato, devi prima eliminarlo e poi ricrearlo mentre lo spazio è ancora in modalità di importazione.
Spazi
Per aggiornare
i campi supportati in
uno spazio con modalità di importazione, utilizza il
metodo patch
nella risorsa spaces
.
Per eliminare uno spazio della modalità di importazione, utilizza il
metodo delete
nella risorsa spaces
.
Per informazioni sui metodi delle risorse e sui tipi di supporto dell'autenticazione negli spazi in modalità di importazione, consulta Autorizzare le app di Chat.
Modalità di importazione completa
Prima di chiamare il metodo completeImport
, devi assicurarti che la convalida e il riconciliamento delle differenze tra le risorse siano completati. L'uscita di uno spazio dalla modalità di importazione è un processo irreversibile e
converte lo spazio in modalità di importazione in uno spazio normale. Non è presente alcun indicatore in
Chat che attribuisca questi spazi a un'importazione di dati.
Prendi nota della data e dell'ora in cui chiami completeImport
, del nome della risorsa
dell'utente che ha effettuato la chiamata e della risposta restituita. Può essere utile
se devi risolvere eventuali problemi.
Per completare la modalità di importazione e rendere lo spazio accessibile agli utenti, l'app di Chat può chiamare il metodo completeImport
sulla risorsa Space
.
Le app di chat possono chiamare questo metodo solo per conto di un utente tramite
l'impersonificazione. Per saperne di più, vedi
Autorizzare le app di chat.
L'utente rappresentato viene aggiunto allo spazio come
gestore dello spazio
al termine di questo metodo. Questo metodo deve essere chiamato entro 90 giorni dalla
chiamata iniziale al metodo create.space
. Se tenti di chiamare questo metodo dopo che sono trascorsi 90 giorni, la chiamata non va a buon fine perché lo spazio in modalità di importazione viene eliminato e non è più accessibile all'app Chat.
L'utente rappresentato nel metodo completeImport
non deve essere il
creatore dello spazio.
Non chiamare completeImport
troppo vicino alla data di importModeExpireTime
, in quanto non possiamo
garantire che la richiesta arrivi prima di importModeExpireTime
e potrebbero
verificarsi conflitti con l'elaborazione dei dati nei sistemi attivati al momento della scadenza.
Ti consigliamo di chiamare il numero completeImport
almeno 30 minuti prima
delle importModeExpireTime
.
Il seguente esempio 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:
EMAIL
: l'indirizzo email dell'account utente che stai rappresentando con l'autorità a livello di dominio.SPACE_NAME
: il nome dello spazio creato in modalità di importazione.
Concedere l'accesso allo spazio dopo la modalità di importazione
Per consentire agli utenti di Chat di accedere allo spazio importato di recente,
le app di chat possono continuare a utilizzare l'ambito chat.import
e l'imitazione
dell'utente entro 90 giorni dalla chiamata iniziale al metodo create.space()
per
eseguire le seguenti operazioni:
- Aggiungi membri allo spazio: chiama il metodo
create()
sulla risorsaMembership
. Consigliamo alle app di Chat di creare risorseMembership
immediatamente dopo il completamento dell'importazione dello spazio, in modo che le app di Chat possano continuare a utilizzare l'ambitochat.import
e garantire che tutti i membri importati abbiano accesso allo spazio. Ti consigliamo di dare la priorità all'aggiunta di membri che potrebbero essere soggetti al criterio di blocco di Vault, che consente la conservazione dei messaggi importati anche se non rientrano più nel periodo di conservazione. - Imposta un pubblico di destinazione: chiama il
metodo
update()
sulla risorsaSpace
. Per scoprire come creare e aggiungere segmenti di pubblico di destinazione, vedi Rendere rilevabile uno spazio Google Chat per utenti specifici in un'organizzazione Google Workspace.
Per utilizzare questi metodi con l'ambito chat.import
, l'utente rappresentato deve
essere un gestore dello spazio.
Per gli spazi esterni, il metodo di
create()
iscrizione
consente anche di invitare utenti esterni all'organizzazione Workspace. Assicurati di comprendere tutte le limitazioni note per gli utenti esterni.
Risoluzione dei problemi
Se riscontri un problema durante l'importazione degli spazi di Chat, consulta i seguenti problemi per ricevere assistenza. Se ricevi una risposta di errore, prendine nota (copia/incolla il testo in un documento o salva uno screenshot) per riferimento futuro e risoluzione dei problemi.
Quando uno spazio viene importato correttamente, CompleteImportSpace
viene completato con
lo stato OK
.
Non hai completato l'importazione prima della scadenza del periodo di 90 giorni
Come descritto in precedenza in Creare uno spazio in modalità di importazione, se lo spazio è ancora in modalità di importazione dopo 90 giorni dalla chiamata al metodo create, viene eliminato automaticamente e diventa inaccessibile e non recuperabile.
Purtroppo, lo spazio eliminato non è più disponibile o recuperabile e la procedura di importazione deve essere avviata di nuovo.
Se lo spazio non è stato importato perché contiene troppi dati da importare nella finestra di 90 giorni con gli attuali limiti di utilizzo, dividilo in due o più spazi più piccoli a scopo di archiviazione e avvia di nuovo la procedura di importazione.
Trovare gli spazi mancanti
Se non riesci a trovare il nuovo spazio di Chat, consulta la
tabella seguente per la risposta che hai ricevuto da CompleteImportSpace
per
vedere la spiegazione e come risolvere il problema.
Risposta ricevuta | Passaggi dell'indagine | Spiegazione | Risoluzione |
---|---|---|---|
CompleteImportSpace genera un'eccezione e la chiamata
GetSpace restituisce PERMISSION_DENIED . |
Controlla i tuoi record per verificare la data di creazione dello spazio e se risale a più di 90 giorni fa, è stato eliminato automaticamente. Inoltre, non esiste alcun record dello spazio importato nello strumento di gestione degli spazi o nel log di controllo. | Sono trascorsi più di 90 giorni dall'avvio del processo di importazione e lo spazio non è riuscito a uscire dalla migrazione. | Crea un nuovo spazio ed esegui nuovamente la procedura di importazione. |
CompleteImportSpace restituisce OK e chiamate
GetSpace restituisce PERMISSION_DENIED . |
Non è presente alcun record dello spazio importato nello strumento di gestione degli spazi, ma lo spazio risulta eliminato nel log di controllo. | Lo spazio è stato importato, ma successivamente eliminato. | Crea un nuovo spazio ed esegui nuovamente la procedura di importazione. |