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

Mimo że aplikacje te same w sobie mają zaawansowane funkcje, często współdziałają z innymi systemami i wymagają aplikacji towarzyszących do łączenia kont, autoryzowania dostępu do danych, wyświetlania dodatkowych danych czy konfigurowania preferencji użytkowników.

Poproś o konfigurację aplikacji

Oprócz wyświetlania adresów URL w ramach normalnej odpowiedzi aplikacje mogą też prywatnie wyświetlać użytkownikowi adres URL konfiguracji w odpowiedzi na wiadomość.

Zwracanie adresu URL konfiguracji

Jeśli żądanie wymaga dodatkowej konfiguracji, której nie można ukończyć bezpośrednio w aplikacji, zwracaj odpowiedź tego formularza:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "<your-config-URL>"
  }
}

Spowoduje to, że Google Chat wyświetli użytkownikowi prywatne powiadomienie z linkiem do adresu URL konfiguracji pozwalającego na uwierzytelnienie, autoryzację lub konfigurację. Odpowiedź config-config jest wzajemnie wykluczana przez zwykłą odpowiedź. Tekst, karty i inne atrybuty są ignorowane.

Aplikacja prosi użytkownika o podanie adresu URL konfiguracji.

Każde zdarzenie w aplikacji zawiera też parametr configCompleteRedirectUrl. Ten adres URL powinny być zakodowany w adresie URL konfiguracji, który ma być używany po zakończeniu tego procesu. Przekierowanie do tego adresu URL sygnalizuje, że Google Chat zostało skonfigurowane.

Po rozpoczęciu przez aplikację jej wyświetlanie może zależeć od konkretnej wiadomości. W odpowiedzi na wiadomość taką jak @app help aplikacja powinna odpowiedzieć, przesyłając wiadomość bez konieczności dodatkowej konfiguracji.

Gdy użytkownik zostanie przekierowany do wiadomości z tekstem configCompleteRedirectUrl podanym w oryginalnej wiadomości, Google Chat wykona te czynności:

  1. Usuń potwierdzenie wyświetlane użytkownikowi
  2. Przekształcić pierwotną wiadomość w publiczną, widząc ją innymi użytkownikami pokoju
  3. Wyślij oryginalną wiadomość po raz drugi do tej samej aplikacji

Odwiedzenie configCompleteRedirectUrl ma wpływ tylko na jedną wiadomość użytkownika. Jeśli użytkownik wiele razy próbował wysłać wiadomość do aplikacji, w wyniku czego otrzymano wiele próśb, klikając konkretny komunikat i przeprowadzając proces uwierzytelniania/konfiguracji, dotyczy to tylko tej konkretnej wiadomości. Inne komunikaty i potwierdzenia pozostają bez zmian.

Gdy zdarzenie jest wysyłane w ten sposób, powinno być identyczne z pierwotnym zdarzeniem. W niektórych sytuacjach mogą jednak występować różnice. Jeśli na przykład wiadomość zawiera wzmiankę zarówno o aplikacji A, jak i o aplikacji B, użytkownik może edytować tekst wiadomości, jeśli w aplikacji A odpowiedź nastąpi przy użyciu zwykłej wiadomości, zanim uwierzytelni się w aplikacji B. W takim przypadku aplikacja B otrzyma zmieniony tekst wiadomości po zakończeniu uwierzytelniania przez użytkownika.

Identyfikowanie użytkownika w wiadomościach w aplikacji

Każda wiadomość wysłana do aplikacji zawiera tożsamość użytkownika, który z niej korzysta.

Przykładowy fragment kodu JSON poniżej przedstawia oczekiwany format tożsamości użytkownika w wiadomości do aplikacji.

{
  ...,
  "user": {
    "name": "users/12345678901234567890",
    "displayName": "Sasha",
    "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
    "email": "sasha@example.com"
  }
}

Użyj wartości właściwości users.name jako głównego identyfikatora użytkownika. Wartością jest stały i unikalny identyfikator każdego użytkownika.

Identyfikowanie użytkownika Google Chat poza usługą Google Chat

W niektórych przypadkach, np. prosząc o autoryzację OAuth dla interfejsu API, aplikacja musi utworzyć link do adresu URL poza Google Chat, zachowując przy tym tożsamość użytkownika. W takiej sytuacji najlepiej identyfikować użytkownika za pomocą Logowania Google.

Użyj tożsamości wydanej podczas logowania, aby uzyskać identyfikator użytkownika. Roszczenie sub zawiera unikalny identyfikator użytkownika, który można powiązać z identyfikatorem w Google Chat.

Chociaż nie są one identyczne, można je łatwo przekształcić. Aby zmienić wartość roszczenia sub na nazwę użytkownika Google Chat, dodaj na początku wartość "users/". Na przykład wartość roszczenia 123 jest równa nazwie użytkownika users/123 w wiadomościach do Twojej aplikacji Google Chat.

Pełny przykład

Aplikacja MyProfile pokazuje, jak używać odpowiedzi REQUEST_CONFIG do zainicjowania konfiguracji aplikacji i wykorzystać token tożsamości z odpowiedzi logowania Google, aby zidentyfikować użytkownika.