Com a API Google Chat, você pode importar dados de outras plataformas de mensagens no Google Chat. Você pode importar mensagens, anexos, reações, associações e entidades espaciais de suas outras plataformas de mensagens para que correspondem Recursos da API Chat. Para importar esses dados, crie espaços do Chat no modo de importação e importar dados para esses espaços. Após a conclusão do processo, se tornarão espaços padrão do Chat.
Confira a seguir todo o processo de importação:
- Planejar a importação
- Configurar a autorização para o app do Chat
- Criar um espaço no modo de importação
- Importar recursos
- Validar recursos importados
- Reconciliar diferenças de recursos importados dos dados de origem
- Concluir o modo de importação
- Conceder acesso ao espaço após o modo de importação
- Solução de problemas
Pré-requisitos
Apps Script
- Uma empresa Conta do Google Workspace com acesso a Google Chat.
- Crie um projeto do Google Cloud.
- Ative e configure a API Google Chat com um nome. o ícone e a descrição do app do Chat.
- Crie um projeto independente do Apps Script e ative o Serviço avançado de chat.
- O app do Chat precisa ser delegado em todo o domínio. autoridade em todos os domínios em que o app importa conteúdo, consulte Autorizar apps do Chat
Python
- Uma empresa Conta do Google Workspace com acesso a Google Chat.
- Crie um projeto do Google Cloud.
- Ative e configure a API Google Chat com um nome. o ícone e a descrição do app do Chat.
- Python 3.6 ou mais recente
- a ferramenta de gerenciamento de pacotes PIP;
- O app do Chat precisa ser delegado em todo o domínio. autoridade em todos os domínios em que o app importa conteúdo, consulte Autorizar apps do Chat
Planejar a importação
Planeje a quantidade de dados a ser importada e entenda como cotas e limites de uso podem afetar processo de importação e conheça os tipos de espaços do Chat com suporte ao importar para um novo espaço.
Revise os limites de uso da API
O tempo necessário para importar dados para o Chat pode variar muito de acordo com a quantidade de recursos do Chat a serem importados. Revise seu app do Chat limites de uso e a quantidade de dados programados para importar da plataforma de mensagens de origem para determinar um cronograma estimado.
Ao importar mensagens para um espaço, recomendamos que você espalhe as chamadas.
para o messages.create()
em diferentes sequências de mensagens.
Identificar os espaços que podem ser importados
O modo de importação só oferece suporte à SpaceType
de SPACE
. Não suporta
DIRECT_MESSAGE
: Se você é um membro do Programa de prévia para desenvolvedores
programa, GROUP_CHAT
também está
suporte.
Consulte a documentação de SpaceType
.
para mais informações.
Criar um espaço no modo de importação
Para criar um espaço no modo de importação, chame o método
Método create
no(a)
Recurso Space
e defina importMode
como true
.
Ao criar o espaço no modo de importação, observe o seguinte.
- A data e a hora - Lembre-se de que o modo de importação deve ser concluído em até 30
dias. Se o espaço ainda estiver no modo de importação após esse período
dias desde que o método
spaces.create()
foi chamado, é excluídos automaticamente e se tornam inacessíveis e irrecuperáveis.- Não use o valor do atributo
createTime
para acompanhar a expiração do prazo de 30 dias. Isso não é sempre igual a quando você chama o métodospaces.create()
. Quando usando o modo de importação, o campocreateTime
pode ser definido como o carimbo de data/hora em que o espaço foi criado na origem preservar o horário de criação original.
- Não use o valor do atributo
- O nome do recurso do espaço (
name
): O identificador exclusivo usado para recuperar informações sobre o espaço específico e é referenciado em etapas posteriores ao importar conteúdo para o espaço.
Para preservar o horário de criação da entidade espacial equivalente da origem
é possível definir o createTime
do espaço. Isso
createTime
precisa ser definido como um valor entre 1o de janeiro de 2000 e a data atual.
Para criar um espaço externo no modo de importação, defina externalUserAllowed
como true
.
Depois que a importação for concluída, você poderá adicionar usuários externos.
O exemplo abaixo mostra como criar um espaço no modo de importação:
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)
Substitua:
EMAIL
: o endereço de e-mail da conta de usuário que Você está representando uma autoridade em todo o domínio.DISPLAY_NAME
: o nome do espaço criado em modo de importação. Precisa ser um nome exclusivo do espaço exibido para Usuários do Chat. Recomendamos usar o mesmo nome de exibição o espaço do qual você está importando dados.
Importar recursos
Para importar recursos de outras plataformas de mensagens, crie o Google Chat recursos, como mensagens, reações e anexos, no espaço do modo de importação. Ao criar um recurso no espaço, você especifica dados da da plataforma de mensagens de onde você está migrando.
Mensagens
Seus apps do Chat podem importar mensagens usando a própria autoridade.
em nome de um usuário por meio de falsificação de identidade. O autor da mensagem é definido como
conta de usuário falsificada. Para mais informações, consulte
Autorizar apps do Chat
Para importar um
em um espaço do modo de importação, chame o método
Método create
no(a)
Recurso Message
.
Para preservar o horário de criação da mensagem original da origem
plataforma de mensagens, é possível definir o createTime
da mensagem. Isso
createTime
precisa ser definido como um valor entre o horário de criação do espaço que você
a hora definida anteriormente e a hora atual.
As mensagens no mesmo espaço não podem conter o mesmo createTime
, mesmo que
as mensagens anteriores com esse horário serão excluídas.
Mensagens com URLs de terceiros nos espaços do modo de importação não podem renderizar o link visualizações no Google Chat.
Quando você cria as mensagens no modo de importação, os espaços não enviam notificações nem enviam e-mails para qualquer usuário, incluindo mensagens que contenham menções aos usuários.
O exemplo a seguir mostra como criar uma mensagem em um espaço do modo de importação:
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)
Substitua:
EMAIL
: o endereço de e-mail da conta de usuário que você está personificar autoridade em todo o domínio.SPACE_NAME
: o nome do espaço criado no modo de importação.
Reações
Seu app do Chat pode importar reações para mensagens usando a API Chat. Para saber mais sobre os métodos de recurso e os tipos de suporte de autenticação nos espaços do modo de importação, consulte Autorizar apps do Chat.
Anexos
Seu app do Chat pode: fazer upload de anexos usando a API Chat. Para mais informações sobre os métodos e tipos de suporte de autenticação em espaços do modo de importação, consulte Autorizar apps do Chat No entanto, é altamente recomendável usar API Google Drive para fazer upload de anexos como arquivos do Google Drive e vincular os URIs do arquivo ao respectivas mensagens nos espaços do modo de importação para importar anexos de outros plataformas de mensagens para não atingir o limite interno de anexos no Google Chat fazer upload.
Histórico de associações
As assinaturas históricas são aquelas criadas para usuários que já saíram do programa. a entidade espacial original da plataforma de mensagens de origem, mas quer reter os dados no Chat. Para informações sobre como adicionar novos participantes depois que o espaço não estiver mais sendo importado consulte Criar recurso de assinatura.
Em muitos casos, quando esses membros históricos estão sujeitos a uma
a política de retenção de dados no Google,
você deseja preservar os dados (como Mensagens e reações) criados por
o histórico de associações em um espaço antes da importação para o Chat.
Enquanto o espaço estiver no modo de importação, você poderá importar as associações históricas
no espaço usando
Método create
no(a)
Recurso Membership
.
Para preservar o horário de saída da associação histórica, é necessário definir
o deleteTime
da assinatura. Esse horário de saída precisa ser preciso porque
afeta quais dados reter para essas associações. Além disso, este deleteTime
precisa ser posterior ao carimbo de data/hora de criação do espaço e não pode ser um carimbo de data/hora futuro.
Além de deleteTime
, também é possível definir createTime
para preservar o
à hora de entrada original da associação histórica. Ao contrário de deleteTime
, a
createTime
é opcional. Se não for definido, createTime
será calculado automaticamente pela
subtraindo 1 microssegundo de deleteTime
. Se definido, createTime
precisa ser antes de
deleteTime
e precisa ser igual ou posterior ao horário de criação do espaço. Este createTime
informações não são usadas para determinar a retenção de dados e não ficam visíveis no administrador
ferramentas como o Google Admin Console e o Google Vault.
Embora existam várias maneiras de um usuário entrar e sair de um espaço na
plataforma de mensagens original (por convites, participação por conta própria, inclusão
por outro usuário), no Chat essas ações são todas representadas por
os campos de associação histórica createTime
e deleteTime
como sendo adicionados
ou removidos.
O exemplo a seguir mostra como criar uma associação histórica em uma importação espaço do 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)
Substitua:
EMAIL
: o endereço de e-mail da conta de usuário que você está personificar autoridade em todo o domínio.SPACE_NAME
: o nome do espaço criado no modo de importação.USER_ID
: o ID exclusivo do usuário.
Importar recursos em um espaço externo
Só é possível criar um espaço externo no modo de importação usando credenciais que pertencem a usuários da sua organização do Workspace. Isso se aplica apenas enquanto o espaço está no modo de importação. Depois que o espaço conclui o modo de importação, os usuários externos podem ser foi convidado a participar dos espaços importados (consulte a seção de acesso) e as credenciais deles podem ser usadas para chamar a API Chat.
Validar recursos importados
Seu app do Chat pode ler e validar o conteúdo
de um espaço do modo de importação chamando
método list
no
Recurso Message
.
É possível ler recursos Reaction
e Attachment
de qualquer mensagem retornada
Campos emojiReactionSummaries
e attachment
. Os apps de chat podem
chame esse método apenas em nome de um usuário por meio de personificação. Para mais
informações, consulte
Autorizar apps do Chat
Seu app do Chat também pode ler mensagens individuais de
de validação chamando
Método get
no recurso Message
.
Os apps de chat só podem chamar esse método para ler as próprias mensagens:
usando sua própria autoridade. Para mais informações, consulte
Autorizar apps do Chat
Os apps de chat também podem listar o histórico de associações chamando
Método list
no(a)
Recurso Membership
.
Depois que o espaço sai do modo de importação, o método list
não expõe dados históricos
mais assinaturas. Os apps de chat só podem chamar esse método
em nome de um usuário por meio de falsificação de identidade. Para mais informações, consulte
Autorizar apps do Chat
É possível ler as propriedades de um espaço de modo de importação chamando o
Método get
no(a)
Recurso Space
.
Os apps de chat só podem chamar esse método usando a própria autoridade.
Para mais informações, consulte
Autorizar apps do Chat
Reconciliar diferenças de recursos importados dos dados de origem
Se algum recurso importado não corresponder mais à entidade original da origem plataforma de mensagens devido a alterações na entidade original durante a importação, Os apps do Chat podem chamar a API Chat para modificar o o recurso de chat. Por exemplo, se um usuário editar uma mensagem no grupo de mensagens de origem plataforma depois que ela foi criada no Chat, Os apps de chat podem atualizar a mensagem importada para que ela reflita: conteúdo atual da mensagem original.
Mensagens
Para atualizar
campos compatíveis
em uma mensagem em um espaço do modo de importação, chame o método
Método update
no(a)
recurso Message
.
Os apps de chat só podem chamar esse método usando a mesma autoridade que
foi usada durante a criação da mensagem inicial. Se você usou a representação de usuário
durante a criação da mensagem inicial, você precisa utilizar o mesmo usuário personificado para
atualizar a mensagem.
Para excluir uma mensagem em um espaço do modo de importação, chame o método
Método delete
no(a)
Recurso Message
.
As mensagens em um espaço do modo de importação não precisam ser excluídas pelo original
criador da mensagem e pode ser excluída fazendo-se passar por qualquer usuário no domínio.
Os apps de chat só podem excluir as próprias mensagens
autoridade. Para mais informações, consulte
Autorizar apps do Chat
Reações
Para excluir a reação de uma mensagem em um espaço do modo de importação, use o
Método delete
no recurso reactions
. Para mais informações sobre os métodos e
tipos de suporte de autenticação em espaços do modo de importação, consulte
Autorizar apps do Chat
Anexos
Para atualizar anexos de uma mensagem em um espaço do modo de importação, use o
Método upload
no media
recurso. Para informações sobre os métodos de recurso e tipos de autenticação
em espaços do modo de importação. Confira
Autorizar apps do Chat
Histórico de associações
Para excluir uma assinatura histórica em um espaço do modo de importação, use o
Método delete
no(a)
Recurso Membership
. Após um
sai do modo de importação, o método delete
não permite excluir dados históricos
mais assinaturas.
Não é possível atualizar uma associação histórica em um espaço do modo de importação. Se você quiser corrigir uma associação histórica importada incorretamente, será preciso excluí-la e recriá-la enquanto o espaço ainda está no modo de importação.
Espaços
Para atualizar
campos compatíveis no
um espaço do modo de importação, use o
Método patch
no recurso spaces
.
Para excluir um espaço do modo de importação, use o
Método delete
no recurso spaces
.
Para informações sobre os métodos de recursos e tipos de suporte de autenticação nos espaços do modo de importação. Além disso, Autorizar apps do Chat
Concluir modo de importação
Antes de chamar completeImport
método, verifique se a validação e
reconciliação de diferenças de recursos
forem concluídas. Sair de um espaço do modo de importação é um processo irreversível e
converte o espaço do modo de importação em um espaço normal. Não há indicador
Chat que atribui esses espaços a uma importação de dados.
Anote a data e a hora de chamar completeImport
, o nome do recurso.
do usuário que fez a chamada e a resposta retornada. Isso pode ser útil
se você tiver problemas e precisar investigá-los.
Para concluir o modo de importação e tornar o espaço acessível aos usuários, o
O app do Chat pode chamar o método completeImport
no
Recurso Space
.
Os apps de chat só podem chamar esse método em nome do usuário
falsificação de identidade. Para mais informações, consulte
Autorizar apps do Chat
O usuário representado é adicionado ao espaço como
administrador do espaço
quando esse método for concluído. Chame esse método dentro de 30 dias após
chamada de método create.space
inicial. Se você tentar chamar esse método após o evento
se passaram 30 dias, a chamada resulta em falhas porque a importação
o espaço do modo é excluído e não pode mais ser acessado pelo
App Chat.
O usuário representado no método completeImport
não precisa ser o
criador de espaço.
O exemplo abaixo mostra como concluir o modo de importação:
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)
Substitua:
EMAIL
: o endereço de e-mail da conta de usuário que você está personificar autoridade em todo o domínio.SPACE_NAME
: o nome do espaço criado no modo de importação.
Conceder acesso ao espaço após o modo de importação
Para permitir que os usuários do Chat acessem o espaço importado recentemente, faça o seguinte:
Os apps de chat podem continuar usando o escopo chat.import
e o usuário
representação em até 30 dias após a chamada inicial do método create.space()
.
o seguinte:
- Adicionar participantes ao espaço: chame o método
create()
. no recursoMembership
. Recomendamos que os apps do Chat criar recursosMembership
imediatamente após a importação do espaço ser concluído, para que os apps do Chat possam continuar usando ochat.import
escopo e garantir que todos os membros importados tenham acesso ao espaço. - Definir um público-alvo: chame o método
Método
update()
no recursoSpace
. Para saber como criar e adicionar públicos-alvo, consulte Tornar um espaço do Google Chat detectável para usuários específicos em um organização do Google Workspace.
Para usar esses métodos com o escopo chat.import
, o usuário representado precisa
administrador do espaço.
Para espaços externos, a associação
Método create()
também permite convidar usuários de fora da organização do Workspace. Confirme se
você entende todos
limitações conhecidas para
usuários externos.
Solução de problemas
Se você tiver problemas ao importar espaços do Chat, consulte os problemas a seguir para receber ajuda. Se você encontrar uma resposta de erro, (copie/cole o texto em um documento ou salve uma captura de tela) para referência futura e solução de problemas.
Quando um espaço é importado, CompleteImportSpace
é concluído com
com o status OK
.
A importação não foi concluída antes do prazo de 30 dias expirar
Conforme descrito anteriormente em Criar um espaço no modo de importação, se o espaço ainda estiver no modo de importação 30 dias após a criação do método for chamado, ele é excluído automaticamente e fica inacessível e irrecuperável.
Infelizmente, o espaço excluído não está mais disponível ou recuperável, e o o processo de importação precisa ser iniciado novamente.
Encontrar espaços ausentes
Se não encontrar o novo espaço do Chat, consulte a
tabela a seguir para a resposta que você recebeu de CompleteImportSpace
para
ver a explicação e como resolvê-lo.
Resposta recebida | Etapas da investigação | Explicação | Resolução |
---|---|---|---|
CompleteImportSpace gera uma exceção e chama
GetSpace retorna PERMISSION_DENIED . |
Verifique seus registros de quando o espaço foi criado e se é mais antigo de 30 dias, ela foi excluída automaticamente. Além disso, não há registro do espaço importado na ferramenta de gestão de espaços ou registro de auditoria. | O processo de importação foi iniciado há mais de 30 dias e não foi possível sair da migração no espaço. | Crie um novo espaço e execute o processo de importação outra vez. |
CompleteImportSpace retorna OK e faz uma chamada
GetSpace retorna PERMISSION_DENIED . |
Não há registro do espaço importado no ferramenta de gestão de espaço, mas o espaço foi excluído registro de auditoria. | O espaço foi importado, mas excluído. | Crie um novo espaço e execute o processo de importação outra vez. |