Importowanie danych do Google Chat

Interfejs Google Chat API umożliwia importowanie danych z innych platform do obsługi wiadomości do Google Chat. Możesz importować istniejące wiadomości, załączniki, reakcje, użytkowników i elementów pokoju z innych platform komunikacyjnych, odpowiadające Materiały dotyczące interfejsu Chat API Możesz zaimportować te dane, tworząc pokoje czatu w tryb importowania i importowania do nich danych. Po pomyślnym zakończeniu procesu te pokoje staną się standardowymi pokojami czatu.

Poniżej przedstawiono pełny proces importowania:

  1. Planowanie importu
  2. Konfigurowanie autoryzacji aplikacji Google Chat
  3. Tworzenie pokoju w trybie importowania
  4. Importuj zasoby
  5. Weryfikowanie zaimportowanych zasobów
  6. Uzgadnianie zaimportowanych różnic w zasobach z danymi źródłowymi
  7. Ukończ tryb importowania
  8. Przyznawanie dostępu do pokoju po trybie importowania
  9. Rozwiązywanie problemów

Wymagania wstępne

Google Apps Script

Python

  • Python w wersji 3.6 lub nowszej
  • PIP narzędzie do zarządzania pakietami
  • Najnowsze biblioteki klienta Google dla języka Python. Aby zainstalować lub zaktualizować w interfejsie wiersza poleceń, uruchom następujące polecenie:

    pip3 install --upgrade google-api-python-client google-auth
    
  • Opublikowaną aplikację Google Chat. Aby utworzyć i opublikować Aplikacja Google Chat, patrz Utwórz aplikację Google Chat.

  • Skonfigurowano autoryzację dla aplikacji Google Chat. Aplikacja do obsługi czatu musi być przekazanym uprawnieniem w całej domenie we wszystkich domenach, do których aplikacja importuje treści, zobacz Autoryzowanie aplikacji Google Chat

Planowanie importu

Weź pod uwagę ilość importowanych danych; Limity wykorzystania mogą mieć wpływ importuj dane i zapoznaj się z typami pokoi czatu obsługiwane podczas importowania do nowego pokoju.

Sprawdzanie limitów wykorzystania interfejsu API

Czas potrzebny na zaimportowanie danych do Google Chat może się znacznie różnić w zależności od liczby zasobów Google Chat do zaimportowania. Sprawdź limity wykorzystania oraz ilość danych zaplanowanych dla aby określić szacunkowy harmonogram, importuj dane ze źródłowej platformy do obsługi wiadomości.

Podczas importowania wiadomości do pokoju zalecamy rozłożenie połączeń do: messages.create() w różnych wątkach wiadomości.

Znajdź obsługiwane pokoje do zaimportowania

Tryb importowania obsługuje tylko SpaceType z SPACE. Nie obsługuje SpaceType z GROUP_CHAT lub DIRECT_MESSAGE. Zobacz dokumentacja usługi SpaceType .

Tworzenie pokoju w trybie importowania

Aby utworzyć pokój w trybie importowania, wywołaj metodę Metoda create w Space zasób i ustaw importMode na true.

Podczas tworzenia pokoju w trybie importowania pamiętaj o tych kwestiach.

  • Data i godzina – pamiętaj, że tryb importowania musi zostać ukończony w ciągu 30 dni dni. Jeśli po 30 pokój nadal będzie w trybie importowania dni od wywołania metody spaces.create(), jest ona są automatycznie usuwane i stają się niedostępne i nie można ich odzyskać.
    • Nie używaj wartości parametru createTime do śledzenia upływu 30-dniowego okresu. To nie jest jest zawsze taki sam jak przy wywoływaniu metody spaces.create(). Kiedy w trybie importowania, w polu createTime można ustawić dane historyczne sygnatura czasowa, w której pokój został utworzony w źródle, aby zachować pierwotny czas utworzenia.
  • Nazwa zasobu pokoju (name) – Unikalny identyfikator używany do pobierania informacji o określonego miejsca i przywołać go w późniejszych krokach podczas importowania treści w danej przestrzeni.

Aby zachować czas utworzenia równoważnej encji przestrzeni ze źródła platformy do obsługi wiadomości, możesz ustawić createTime dla pokoju. Ten createTime musi mieć wartość z okresu od 1 stycznia 2000 r. do chwili obecnej.

Aby utworzyć przestrzeń zewnętrzną w trybie importowania, ustaw externalUserAllowed na true. Po zakończeniu importowania możesz dodać użytkowników zewnętrznych.

Z przykładu poniżej dowiesz się, jak utworzyć pokój w trybie importowania:

Google 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)

Zastąp następujące elementy:

  • EMAIL: adres e-mail konta użytkownika, że podszywa się pod Ciebie z uprawnieniami w całej domenie.
  • DISPLAY_NAME: nazwa pokoju utworzonego w trybu importu. Musi to być niepowtarzalna nazwa pokoju, który jest wyświetlany w Użytkownicy czatu. Zalecamy użycie tej samej wyświetlanej nazwy, co z obszaru, z którego są importowane dane.

Importuj zasoby

Aby importować zasoby z innych platform do przesyłania wiadomości, musisz utworzyć Google Chat zasobów (takich jak wiadomości, reakcje, załączniki) w przestrzeni trybu importowania. Tworząc zasób w pokoju, określasz dane z powiązanych z platformy wiadomości, z której przenosisz dane.

Wiadomości

Twoje aplikacje do obsługi czatu mogą importować wiadomości, korzystając z własnych uprawnień. przez podszywanie się pod inne osoby. Autor wiadomości jest ustawiony na spersonalizowane konto użytkownika. Więcej informacji: Autoryzowanie aplikacji Google Chat Aby zaimportować w obszarze trybu importu, wywołaj metodę Metoda create w Message zasób. Aby zachować czas utworzenia oryginalnej wiadomości ze źródła platformy do obsługi wiadomości, możesz ustawić createTime wiadomości. Ten createTime musi mieć wartość z zakresu od czasu utworzenia pokoju ustawionym wcześniej i bieżącym czasem.

Wiadomości w tym samym pokoju nie mogą zawierać tego samego elementu createTime, nawet jeśli wcześniejsze wiadomości o tej godzinie zostaną usunięte.

Wiadomości zawierające adresy URL innych firm w pokojach w trybie importowania nie mogą renderować linku podglądów w Google Chat.

Gdy utworzysz wiadomości w trybie importowania, pokoje nie będą powiadamiać ani wysyłać e-maili wszystkim użytkownikom, w tym wiadomości zawierających wzmianek użytkowników.

Z przykładu poniżej dowiesz się, jak utworzyć wiadomość w pokoju w trybie importowania:

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)

Zastąp następujące elementy:

Reakcje

Aplikacja Google Chat może importować dane reakcje na wiadomości za pomocą interfejsu Chat API. Aby uzyskać informacje na temat metod zasobów typów obsługi uwierzytelniania w pokojach trybu importu – zobacz Autoryzowanie aplikacji Google Chat

Załączniki

Aplikacja Google Chat może przesyłanie załączników za pomocą interfejsu Chat API. Aby uzyskać informacje na temat metod zasobów typów obsługi uwierzytelniania w pokojach trybu importu – zobacz Autoryzowanie aplikacji Google Chat Pamiętaj jednak: zdecydowanie zalecamy Google Drive API do przesyłać załączniki jako pliki na Dysku Google i łączyć identyfikatory URI plików z linkami odpowiednie wiadomości w pokojach w trybie importowania, aby zaimportować załączniki z innych platformom do przesyłania wiadomości, aby uniknąć osiągnięcia wewnętrznego limitu w Google Chat dotyczącego załączników. przesyłanie.

Wcześniejsze subskrypcje

Subskrypcje historyczne są tworzone dla użytkowników, którzy już ją opuścili. pierwotnej jednostki miejsca ze źródłowej platformy komunikacyjnej, ale chcesz zachowania danych w Google Chat. Informacje na temat dodawania nowych użytkowników, gdy pokój przestanie być importowany znajdziesz w artykule na temat tworzenia zasobu subskrypcji.

W wielu przypadkach, gdy te historyczne elementy podlegają zasadami przechowywania danych w Google, Chcesz zachować dane utworzone przez historii członkostwa w pokoju przed zaimportowaniem ich do Google Chat. Kiedy pokój jest w trybie importowania, możesz zaimportować wcześniejsze subskrypcje za pomocą funkcji Metoda create w Membership zasób. Aby zachować czas opuszczenia historycznego członkostwa, musisz ustawić deleteTime subskrypcji. Godzina wyjazdu musi być poprawna, ponieważ wpływa na to, jakie dane zachować w przypadku wspierania. Poza tym deleteTime musi być późniejsza niż sygnatura czasowa utworzenia pokoju i nie może być sygnaturą czasową w przyszłości.

Oprócz deleteTime możesz też ustawić createTime, aby zachować pierwotnego momentu dołączenia historycznego członkostwa. W przeciwieństwie do tagu deleteTime para klucz-wartość Pole createTime jest opcjonalne. Jeśli nie jest skonfigurowana, createTime jest automatycznie obliczany według wzoru odejmujemy 1 mikrosekundę od wartości deleteTime. Jeśli jest ustawiona, wartość w polu createTime musi być wcześniejsza niż deleteTime i musi przypadać w momencie utworzenia pokoju lub później. To urządzenie (createTime) informacje nie są używane do określania czasu przechowywania danych i nie są widoczne dla administratora takich jak konsola administracyjna Google i Google Vault.

Użytkownicy mogą dołączyć do pokoju i go opuścić na wiele sposobów. źródłowa platforma komunikacji (za pomocą zaproszeń, dołączania samodzielnie, dodawania przez innego użytkownika), w Google Chat działania te są reprezentowane przez historyczne pola członkostwa createTime i deleteTime jako dodane lub usunięte.

Poniższy przykład pokazuje, jak utworzyć historyczną przynależność do importu przestrzeń trybów:

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)

Zastąp następujące elementy:

Importowanie zasobów do pokoju zewnętrznego

Pokój zewnętrzny możesz utworzyć tylko w trybie importowania przy użyciu danych logowania należących do użytkowników w Twojej organizacji Workspace. Dotyczy to tylko gdy pokój jest w trybie importowania. Gdy pokój kończy tryb importowania, użytkownicy zewnętrzni mogą ma zaproszenie do zaimportowanych pokoi (zobacz sekcję dostępu) i ich dane logowania mogą być używane do wywoływania interfejsu Chat API.

Zweryfikuj zaimportowane zasoby

Aplikacja Google Chat może odczytywać treści i weryfikować ich zawartość przestrzeni trybu importu przez wywołanie funkcji metody list na Message zasób. Możesz odczytać zasoby Reaction i Attachment z każdej zwróconej wiadomości emojiReactionSummaries i attachment. Aplikacje do obsługi czatu mogą tę metodę można wywoływać tylko w imieniu użytkownika przez przejmowanie tożsamości. Więcej Więcej informacji zawiera Autoryzowanie aplikacji Google Chat

Aplikacja Google Chat może też odczytywać poszczególne wiadomości: przez wywołanie metody Metoda get w zasobie Message. Aplikacje do obsługi czatu mogą wywołać tę metodę tylko w celu odczytywania własnych wiadomości przez we własnym zakresie. Więcej informacji: Autoryzowanie aplikacji Google Chat

Aplikacje do obsługi czatu mogą też wyświetlać historię członkostwa, wywołując Metoda list w Membership zasób. Gdy pokój wyjdzie z trybu importowania, metoda list nie będzie udostępniać nie chcesz już wspierać kanału. Aplikacje do obsługi czatu mogą wywoływać tę metodę tylko wtedy, gdy jest włączona użytkownika przez podszywanie się pod inne osoby. Więcej informacji: Autoryzowanie aplikacji Google Chat

Właściwości pokoju w trybie importowania możesz odczytać, wywołując Metoda get w Space zasób. Aplikacje do obsługi czatu mogą wywoływać tę metodę tylko przy użyciu własnych uprawnień. Więcej informacji: Autoryzowanie aplikacji Google Chat

Uzgadniaj zaimportowane zasoby z danymi źródłowymi

Jeśli którykolwiek zaimportowany zasób nie pasuje już do pierwotnego elementu ze źródła platformy do obsługi wiadomości z powodu zmian w pierwotnym elemencie podczas importowania, Aplikacje do obsługi czatu mogą wywoływać interfejs Chat API w celu zmodyfikowania zaimportowanych danych zasobu czatu. Jeśli na przykład użytkownik edytuje wiadomość w wiadomości źródłowej po utworzeniu wiadomości w Google Chat, Aplikacje do obsługi czatu mogą aktualizować zaimportowaną wiadomość tak, aby odzwierciedlała bieżącej treści oryginalnej wiadomości.

Wiadomości

Aby zaktualizować obsługiwane pola na wiadomości w pokoju trybu importu, wywołaj metodę Metoda update w Message zasób. Aplikacje do obsługi czatu mogą wywoływać tę metodę tylko przy użyciu tego samego uprawnienia co została użyta podczas tworzenia wiadomości. Jeśli korzystasz z podszywania się pod inne osoby podczas tworzenia wiadomości, musisz użyć tego samego spersonifikowanego użytkownika zaktualizować tę wiadomość.

Aby usunąć wiadomość z pokoju trybu importu, wywołaj metodę Metoda delete w Message zasób. Wiadomości w pokoju w trybie importowania nie muszą być usuwane przez oryginał i można je usunąć, podszywając się pod dowolnego użytkownika w domenie. Aplikacje do obsługi czatu mogą usuwać własne wiadomości tylko przy użyciu własnych wiadomości organu władzy. Więcej informacji: Autoryzowanie aplikacji Google Chat

Reakcje

Aby usunąć reakcję na wiadomość w pokoju trybu importowania, użyj Metoda delete w zasobie reactions. Aby uzyskać informacje na temat metod zasobów typów obsługi uwierzytelniania w pokojach trybu importu – zobacz Autoryzowanie aplikacji Google Chat

Załączniki

Aby zaktualizować załączniki wiadomości w pokoju trybu importu, użyj metoda upload na: media . Informacje o metodach zasobów i typach uwierzytelniania obsługi pokoi w trybie importowania – patrz Autoryzowanie aplikacji Google Chat

Wcześniejsze subskrypcje

Aby usunąć historyczne członkostwo w pokoju trybu importowania, użyj funkcji Metoda delete w Membership zasób. Po pokój wyjdzie z trybu importowania, metoda delete nie pozwala usuwać danych historycznych nie chcesz już wspierać kanału.

W pokoju trybu importu nie można aktualizować danych historycznych dotyczących członkostwa. Jeśli chcesz poprawić nieprawidłowo zaimportowaną historyczną subskrypcję, musisz ją usunąć a następnie utworzyć go ponownie, gdy pokój będzie nadal w trybie importowania.

Pokoje

Aby zaktualizować obsługiwanych pól na stronie w obszarze trybu importu, użyj funkcji Metoda patch w zasobie spaces.

Aby usunąć przestrzeń trybu importu, użyj Metoda delete w zasobie spaces.

Informacje o metodach zasobów i typach obsługi uwierzytelniania w pokojach w trybie importowania oraz Autoryzowanie aplikacji Google Chat

Zakończ tryb importowania

Zanim zadzwonisz pod numer completeImport , upewnij się, że weryfikacja uzgadnianie różnic w zasobach są już gotowe. Wyjście z trybu importu dla pokoju jest procesem nieodwracalnym, konwertuje przestrzeń trybu importowania w zwykłą przestrzeń. Brak wskaźnika w: Google Chat, który przypisuje te pokoje do importu danych.

Zanotuj datę i godzinę połączenia z completeImport oraz nazwę zasobu użytkownika, który wykonał połączenie i zwrócono odpowiedź. To może Ci się przydać , jeśli wystąpią jakiekolwiek problemy i trzeba je zbadać.

Aby zakończyć tryb importowania i udostępnić pokój użytkownikom, Aplikacja do obsługi czatu może wywołać metodę completeImport w Space zasób. Aplikacje do obsługi czatu mogą wywoływać tę metodę tylko w imieniu użytkownika przez podszywania się pod inne osoby. Więcej informacji: Autoryzowanie aplikacji Google Chat Użytkownik, którego rolę odgrywasz, jest dodawany do pokoju jako menedżer pokoju gdy ta metoda się zakończy. Tę metodę należy wywołać w ciągu 30 dni od początkowe wywołanie metody create.space. Jeśli spróbujesz wywołać tę metodę po fragmencie Upłynęło 30 dni, połączenie zakończyło się niepowodzeniem, ponieważ importowanie danych przestrzeń trybu zostanie usunięta i nie będzie już dostępna dla aplikacja Google Chat.

Użytkownik, według którego podszywa się pod Ciebie w metodzie completeImport, nie musi być i twórca kosmosu.

Poniższy przykład pokazuje, jak zakończyć tryb importowania:

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)

Zastąp następujące elementy:

Przyznaj dostęp do pokoju po trybie importowania

Aby przyznać użytkownikom Google Chat dostęp do niedawno zaimportowanego pokoju: Aplikacje do obsługi czatu mogą nadal korzystać z zakresu i użytkownika chat.import podszywanie się pod inne osoby w ciągu 30 dni od pierwszego wywołania metody create.space() następujące:

Aby można było używać tych metod w zakresie chat.import, użytkownik, którego rolę odgrywasz, musi i zostać menedżerem pokoju.

W przypadku pokoi użytkowników zewnętrznych subskrypcja Metoda create() umożliwia także zapraszanie użytkowników spoza organizacji Workspace. Upewnij się, rozumiesz wszystkie znanych ograniczeniach dotyczących funkcji użytkowników zewnętrznych.

Rozwiązywanie problemów

Jeśli podczas importowania pokoi czatu wystąpi problem, zapoznaj się z poniższe problemy. Jeśli pojawi się odpowiedź o błędzie, upewnij się, (skopiuj i wklej tekst do dokumentu lub zapisz zrzut ekranu). dostęp do informacji i rozwiązywania problemów.

Po zaimportowaniu pokoju w CompleteImportSpace zastępuje wartość stan OK.

Importowanie nie zostało ukończone przed upływem 30-dniowego okresu

Zgodnie z opisem w sekcji Tworzenie pokoju w trybie importowania, jeśli pokój jest nadal w trybie importowania po upływie 30 dni od momentu utworzenia metody tworzenia jest automatycznie usuwany i staje się niedostępny nieodwracalne.

Usuniętego pokoju nie można już odzyskać ani przywrócić, proces importowania trzeba rozpocząć ponownie.

Znajdowanie brakujących pokoi

Jeśli nie możesz znaleźć nowego pokoju czatu, zapoznaj się z poniżej znajdziesz odpowiedź otrzymaną od CompleteImportSpace na znajdziesz wyjaśnienia i sposoby rozwiązania tego problemu.

Otrzymano odpowiedź Etapy analizy zagrożeń Wyjaśnienie Rozdzielczość
CompleteImportSpace zgłasza wyjątek i wywołuje wyjątek GetSpace zwraca wartość PERMISSION_DENIED. Sprawdź w rekordach, kiedy pokój został utworzony, i czy jest starszy ponad 30 dni, został automatycznie usunięty. Nie ma też zaimportowanego miejsca w narzędzie do zarządzania pokojem lub dziennika kontrolnego. Upłynęło ponad 30 dni od rozpoczęcia procesu importowania. i nie udało się zakończyć migracji pokoju. Utwórz nowy pokój i ponownie uruchom proces importowania.
CompleteImportSpace zwraca OK i dzwoni GetSpace zwraca PERMISSION_DENIED. Nie ma rejestrów o zaimportowanej przestrzeni w narzędzie do zarządzania pokojem, ale ten pokój jest usuwany w dziennika kontrolnego. Pokój został zaimportowany, ale później został usunięty. Utwórz nowy pokój i ponownie uruchom proces importowania.