Łączenie aplikacji Google Chat z innymi usługami i narzędziami

Z tego artykułu dowiesz się, jak połączyć aplikację Google Chat z usługą lub narzędziem, które nie są częścią Google Chat. Aplikacje do obsługi czatu są potężne same w sobie, ale często działają w połączeniu z innymi systemami i wymagają aplikacji towarzyszących do łączenia kont, autoryzowania dostępu do danych, wyświetlania dodatkowych danych lub konfigurowania preferencji użytkownika.

Wymagania wstępne

Aplikacja Google Chat skonfigurowana do odbierania zdarzeń interakcji i odpowiadania na nie. Aby utworzyć interaktywną aplikację do obsługi czatu, wykonaj jeden z tych przewodników Szybki start na podstawie architektury aplikacji, której chcesz użyć:

Wysyłanie do użytkownika prośby o skonfigurowanie aplikacji do obsługi czatu

Jeśli do zrealizowania żądania wymagana jest dodatkowa konfiguracja, której nie można przeprowadzić bezpośrednio w aplikacji do obsługi czatu, zwróć użytkownikowi adres URL konfiguracji w ramach zwykłej odpowiedzi lub wyświetl go prywatnie w tej postaci:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

Dzięki temu Google Chat wyświetli użytkownikowi prywatny prompt, w którym CONFIGURATION_URL jest linkiem, który użytkownik może kliknąć, aby uzyskać dodatkowe uwierzytelnienie, autoryzację lub konfigurację. Odpowiedź REQUEST_CONFIG wyklucza zwykłą wiadomość z odpowiedzią. Tekst, karty i inne atrybuty są ignorowane.

Realizowanie prośby o konfigurację

Każde zdarzenie interakcji MESSAGE, ADDED_TO_SPACE, i APP_COMMAND , które otrzymuje Twoja aplikacja do obsługi czatu, zawiera też pole configCompleteRedirectUrl. Musisz zakodować ten adres URL w adresie URL konfiguracji, aby można go było użyć po zakończeniu procesu. Przekierowanie na ten adres URL sygnalizuje Google Chat, że prośba o konfigurację została zrealizowana.

Gdy aplikacja do obsługi czatu się uruchamia, jej działanie zależy od otrzymanej wiadomości. W odpowiedzi na wiadomość taką jak @app help aplikacja do obsługi czatu powinna odpowiedzieć wiadomością bez konieczności dodatkowej konfiguracji.

Gdy użytkownik zostanie przekierowany na adres configCompleteRedirectUrl podany w oryginalnej wiadomości, Google Chat wykona te czynności:

  1. Usunie prompt wyświetlony użytkownikowi, który zainicjował działanie.
  2. Przekształci oryginalną wiadomość w publiczną, dzięki czemu będzie ona widoczna dla innych osób w pokoju.
  3. Ponownie wyśle oryginalną wiadomość do tej samej aplikacji do obsługi czatu.

Otwarcie adresu configCompleteRedirectUrl wpływa tylko na jedną wiadomość użytkownika. Jeśli użytkownik kilka razy próbował wysłać wiadomość do aplikacji do obsługi czatu i w rezultacie otrzymał kilka promptów, kliknięcie konkretnego prompta i ukończenie procesu uwierzytelniania i konfiguracji wpłynie tylko na tę konkretną wiadomość. Inne wiadomości nie zostaną zmienione.

Gdy zdarzenie interakcji MESSAGE zostanie ponownie wysłane w ten sposób, powinno być identyczne z oryginalnym zdarzeniem. W niektórych sytuacjach zdarzenia interakcji MESSAGE mogą się jednak różnić. Jeśli na przykład wiadomość zawiera wzmiankę o aplikacji do obsługi czatu A i aplikacji do obsługi czatu B, użytkownik może edytować wiadomość, jeśli aplikacja do obsługi czatu A odpowie zwykłą wiadomością przed uwierzytelnieniem w aplikacji do obsługi czatu B. W takim przypadku aplikacja do obsługi czatu B otrzyma edytowany tekst wiadomości po tym, jak użytkownik zakończy uwierzytelnianie i konfigurację.

Uwierzytelnianie użytkownika Google Chat poza Google Chat

W niektórych przypadkach, np. gdy prosisz o autoryzację OAuth dla interfejsu API, Twoja aplikacja musi zawierać link do adresu URL poza Google Chat, zachowując przy tym tożsamość użytkownika. Najlepszym sposobem na zidentyfikowanie użytkownika w takich przypadkach jest zabezpieczenie aplikacji docelowej za pomocą logowania przez Google.

Aby uzyskać identyfikator użytkownika, użyj tokena tożsamości wydanego podczas logowania. Deklaracja sub zawiera unikalny identyfikator użytkownika i można go powiązać z identyfikatorem użytkownika z Google Chat.

Chociaż te 2 identyfikatory nie są identyczne, można je przekształcić. Aby przekształcić wartość deklaracji sub w users/{user} w Google Chat, dodaj na początku wartość users/. Na przykład wartość deklaracji 123 jest równoważna nazwie użytkownika users/123 w wiadomościach do Twojej aplikacji do obsługi czatu.