Na tej stronie opisujemy, jak aplikacja Google Chat może otwierać okna dialogowe, aby wyświetlać interfejsy i reagować na działania użytkowników.
Okna dialogowe to interfejsy oparte na kartach, które otwierają się w pokoju czatu lub wiadomości. Okno i jego zawartość są widoczne tylko dla użytkownika, który je otworzył.
Aplikacje do czatu mogą używać okien dialogowych do wysyłania próśb o informacje od użytkowników Google Chat i ich zbierania, w tym formularzy wieloetapowych. Więcej informacji o tworzeniu danych wejściowych formularza znajdziesz w artykule Zbieranie i przetwarzanie informacji od użytkowników.
Wymagania wstępne
HTTP
Aplikacja Google Chat, która odbiera i odpowiada na interakcje użytkowników. Aby go utworzyć, wykonaj czynności opisane w krótkim wprowadzeniu do HTTP.
Google Apps Script
Aplikacja Google Chat, która odbiera i odpowiada na interakcje użytkowników. Aby utworzyć taki skrypt, wykonaj czynności opisane w krótkim wprowadzeniu do Apps Script.
Otwórz okno
W tej sekcji dowiesz się, jak odpowiadać i konfigurować dialogi, wykonując te czynności:
- Wywołaj prośbę o okno z interakcji użytkownika.
- Obsłuż żądanie, zwracając i otwierając okno.
- Po przesłaniu przez użytkowników informacji przetwórz je, zamykając okno lub wyświetlając inne okno.
Wywoływanie prośby o okno
Aplikacja w Google Chat może otwierać okna tylko w odpowiedzi na interakcję użytkownika, np. polecenie lub kliknięcie przycisku w wiadomości na karcie.
Aby odpowiadać użytkownikom za pomocą okna, aplikacja do obsługi czatu musi utworzyć interakcję, która wywołuje żądanie okna, np.:
- Odpowiadaj na polecenia. Aby wywołać prośbę za pomocą polecenia, podczas konfigurowania polecenia musisz zaznaczyć pole wyboru Otwiera okno.
- Odpowiadanie na kliknięcie przycisku w wiadomości, w ramach karty lub u dołu wiadomości. Aby wywołać żądanie za pomocą przycisku w wiadomości, skonfiguruj działanie
onClickprzycisku, ustawiając jego parametrinteractionnaOPEN_DIALOG. - Odpowiadanie na kliknięcie przycisku na stronie głównej aplikacji do obsługi czatu Więcej informacji o otwieraniu okien z poziomu stron głównych znajdziesz w artykule Tworzenie strony głównej aplikacji Google Chat.
/addContactpolecenia po ukośniku. Wiadomość zawiera też przycisk, który użytkownicy mogą kliknąć, aby wywołać polecenie.
Poniższy przykładowy kod pokazuje, jak wywołać żądanie okna z przycisku w wiadomości z kartą. Aby otworzyć okno, ustaw pole
onClick.action.interaction
przycisku na OPEN_DIALOG:
Node.js
Zastąp FUNCTION_URL punktem końcowym HTTP, który obsługuje kliknięcia przycisku.
Python
Zastąp FUNCTION_URL punktem końcowym HTTP, który obsługuje kliknięcia przycisku.
Java
Zastąp FUNCTION_URL punktem końcowym HTTP, który obsługuje kliknięcia przycisku.
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Otwórz okno początkowe
Gdy użytkownik wywoła żądanie okna, aplikacja do obsługi czatu otrzyma obiekt zdarzenia z ładunkiem, który określa obiekt dialogEventType jako REQUEST_DIALOG.
Aby otworzyć okno, aplikacja do obsługi czatu może odpowiedzieć na żądanie, zwracając obiekt RenderActions z nawigacją pushCard, aby wyświetlić kartę. Karta powinna zawierać elementy interfejsu, w tym co najmniej 1 sections[] widżet. Aby zbierać informacje od użytkowników, możesz określić widżety danych wejściowych formularza i widżet przycisku. Więcej informacji o projektowaniu danych wejściowych formularza znajdziesz w artykule Zbieranie i przetwarzanie informacji od użytkowników.
Poniższy przykładowy kod pokazuje, jak aplikacja w Google Chat zwraca odpowiedź, która otwiera okno:
Node.js
Zastąp FUNCTION_URL punktem końcowym HTTP, który obsługuje kliknięcia przycisku.
Python
Zastąp FUNCTION_URL punktem końcowym HTTP, który obsługuje kliknięcia przycisku.
Java
Zastąp FUNCTION_URL punktem końcowym HTTP, który obsługuje kliknięcia przycisku.
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Obsługa przesłania okna
Gdy użytkownicy klikną przycisk, który przesyła okno dialogowe, aplikacja do obsługi czatu otrzyma obiekt zdarzenia z obiektem buttonClickedPayload. W ładunku wartość parametru dialogEventType jest ustawiona na SUBMIT_DIALOG. Aby dowiedzieć się, jak zbierać i przetwarzać informacje w oknie, przeczytaj artykuł Zbieranie i przetwarzanie informacji od użytkowników Google Chat.
Aplikacja do Google Chat musi odpowiedzieć na obiekt zdarzenia, wykonując jedną z tych czynności:
- Zwróć kolejne okno, aby wypełnić kolejną kartę lub formularz.
- Zamknij okno po sprawdzeniu danych przesłanych przez użytkownika i opcjonalnie wyślij wiadomość z potwierdzeniem.
Opcjonalnie: zwracanie innego okna
Po przesłaniu początkowego okna dialogowego aplikacje w Google Chat mogą zwracać jedno lub więcej dodatkowych okien dialogowych, aby pomóc użytkownikom sprawdzić informacje przed przesłaniem, wypełnić formularze wieloetapowe lub dynamicznie wypełnić zawartość formularza.
Aby przetwarzać dane wprowadzane przez użytkowników, aplikacja Chat obsługuje je w obiekcie commonEventObject.formInputs zdarzenia. Więcej informacji o pobieraniu wartości z widżetów wejściowych znajdziesz w artykule Zbieranie i przetwarzanie informacji od użytkowników.
Aby śledzić dane wprowadzane przez użytkowników w początkowym oknie, musisz dodać parametry do przycisku, który otwiera następne okno. Więcej informacji znajdziesz w artykule Przenoszenie danych na inną kartę.
W tym przykładzie aplikacja do obsługi czatu otwiera początkowe okno, które prowadzi do drugiego okna z prośbą o potwierdzenie przed przesłaniem:
Node.js
Zastąp FUNCTION_URL punktem końcowym HTTP, który obsługuje kliknięcia przycisku.
Python
Zastąp FUNCTION_URL punktem końcowym HTTP, który obsługuje kliknięcia przycisku.
Java
Zastąp FUNCTION_URL punktem końcowym HTTP, który obsługuje kliknięcia przycisku.
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Zamknij okno
Gdy użytkownicy klikną przycisk przesyłania w oknie dialogowym, aplikacja do obsługi czatu wykona powiązane z nim działanie i prześle obiekt zdarzenia z parametrem buttonClickedPayload ustawionym na:
isDialogEventtotrue.dialogEventTypetoSUBMIT_DIALOG.
Aplikacja Google Chat powinna zwrócić obiekt
RenderActions
z wartością endNavigation
ustawioną na CLOSE_DIALOG (endNavigation: "CLOSE_DIALOG").
Opcjonalnie: wyświetlanie tymczasowego powiadomienia
Po zamknięciu okna możesz też wyświetlić użytkownikowi, który korzysta z aplikacji, tymczasowe powiadomienie tekstowe.
Aby wyświetlić powiadomienie, zwróć obiekt
RenderActions
z ustawionym polem notification.
Ten przykład zamyka okno z powiadomieniem tekstowym:
Node.js
Python
Java
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Szczegółowe informacje o przekazywaniu parametrów między oknami znajdziesz w artykule Przekazywanie danych na inną kartę.
Opcjonalnie: wysyłanie wiadomości na czacie z potwierdzeniem
Po zamknięciu okna możesz też wysłać nową wiadomość na czacie lub zaktualizować istniejącą.
Aby wysłać nową wiadomość, zwróć obiekt
DataActions
z polem CreateMessageAction ustawionym na nową wiadomość.
W tym przykładzie okno zamyka się przez wysłanie nowej wiadomości:
Node.js
Python
Java
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Aby zaktualizować wiadomość po przesłaniu przez użytkownika okna, zwróć obiekt DataActions
zawierający jedno z tych działań:
UpdateMessageAction: Aktualizuje wiadomość wysłaną przez aplikację Google Chat, np. wiadomość, z której użytkownik poprosił o wyświetlenie okna.UpdateInlinePreviewAction: aktualizuje kartę na podstawie podglądu linku.
Rozwiązywanie problemów
Gdy aplikacja Google Chat lub karta zwróci błąd, w interfejsie Google Chat pojawi się komunikat „Coś poszło nie tak”. lub „Nie udało się przetworzyć żądania”. Czasami interfejs Google Chat nie wyświetla żadnego komunikatu o błędzie, ale aplikacja lub karta Google Chat zwraca nieoczekiwany wynik, np. może nie pojawić się wiadomość na karcie.
Chociaż w interfejsie czatu może nie wyświetlać się komunikat o błędzie, opisowe komunikaty o błędach i dane logowania są dostępne, aby pomóc w naprawieniu błędów, gdy rejestrowanie błędów w aplikacjach na czat jest włączone. Pomoc dotyczącą wyświetlania, debugowania i naprawiania błędów znajdziesz w artykule Rozwiązywanie problemów z Google Chat.
Powiązane artykuły
- Wyświetl przykładową aplikację Contact Manager, która jest aplikacją do obsługi czatu korzystającą z okien do zbierania informacji kontaktowych.
- Otwieranie okien z poziomu strony głównej aplikacji Google Chat
- Odpowiadanie na polecenia aplikacji Google Chat
- Przetwarzanie informacji wprowadzanych przez użytkowników
Aplikacje do obsługi czatu, które nie są dodatkami: otwieranie interaktywnych okien
Poniższa dokumentacja dotyczy aplikacji do Google Chat, które nie są dodatkami do Google Workspace. Aby przeprowadzić migrację aplikacji do czatu, która nie jest dodatkiem, przeczytaj artykuł Przekształcanie aplikacji do Google Chat w dodatek do Google Workspace.
Wywoływanie prośby o okno
Poniższy przykładowy kod pokazuje, jak aplikacja Google Chat, która nie jest dodatkiem, wywołuje żądanie okna z przycisku w wiadomości z kartą. Aby otworzyć okno, w polu button.interaction ustaw wartość OPEN_DIALOG:
Node.js
Python
Java
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Otwórz okno początkowe
Gdy użytkownik wywoła żądanie okna, aplikacja do obsługi czatu, która nie jest dodatkiem, otrzyma zdarzenie interakcji reprezentowane jako typ event w interfejsie Chat API. Jeśli interakcja wywołuje prośbę o wyświetlenie okna dialogowego, pole dialogEventType zdarzenia ma wartość REQUEST_DIALOG.
Aby otworzyć okno, aplikacja do obsługi czatu, która nie jest dodatkiem, może odpowiedzieć na żądanie, zwracając obiekt actionResponse z obiektami type: "DIALOG" i Message. Aby określić zawartość okna, musisz uwzględnić te obiekty:
- Obiekt
actionResponse, którego właściwośćtypema wartośćDIALOG. - Obiekt
dialogAction. Polebodyzawiera elementy interfejsu, które mają być wyświetlane na karcie, w tym co najmniej 1sectionswidżetów. Aby zbierać informacje od użytkowników, możesz określić widżety danych wejściowych formularza i widżet przycisku.
Poniższy przykładowy kod pokazuje, jak aplikacja do obsługi czatu, która nie jest dodatkiem, zwraca odpowiedź otwierającą okno:
Node.js
Python
Java
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Obsługa przesłania okna
Gdy użytkownik kliknie przycisk, który przesyła okno dialogowe, aplikacja do obsługi czatu, która nie jest dodatkiem, otrzyma zdarzenie interakcji CARD_CLICKED, w którym dialogEventType ma wartość SUBMIT_DIALOG.
Opcjonalnie: zwracanie innego okna
Aby przetwarzać dane wprowadzane przez użytkowników w aplikacji do obsługi czatu, która nie jest dodatkiem, aplikacja do obsługi czatu używa obiektu event.common.formInputs.
W tym przykładzie aplikacja do obsługi czatu, która nie jest dodatkiem, otwiera początkowe okno, które prowadzi do drugiego okna z prośbą o potwierdzenie przed przesłaniem:
Node.js
Python
Java
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Zamknij okno
Gdy użytkownik kliknie przycisk w oknie, aplikacja Google Chat, która nie jest dodatkiem, wykona powiązane z nim działanie i udostępni obiekt zdarzenia z tymi informacjami:
eventTypetoCARD_CLICKED.dialogEventTypetoSUBMIT_DIALOG.
Aplikacja do obsługi czatu, która nie jest dodatkiem, powinna zwracać obiekt ActionResponse, w którym pole type ma wartość DIALOG, a pole dialogAction jest wypełnione. Jeśli działanie się powiodło, wartość dialogAction.actionStatus powinna być równa OK, jak w tym przykładzie:
Node.js
Python
Java
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Opcjonalnie: wyświetlanie tymczasowego powiadomienia
Aplikacja do obsługi czatu, która nie jest dodatkiem, może odpowiedzieć powiadomieniem o powodzeniu lub błędzie, zwracając ActionResponse z ustawionym parametrem actionStatus.
W tym przykładzie sprawdzamy, czy parametry są prawidłowe, a w przypadku nieprawidłowych parametrów zamykamy okno z powiadomieniem tekstowym:
Node.js
Python
Java
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Opcjonalnie: wysyłanie wiadomości na czacie z potwierdzeniem
Aby wysłać nową wiadomość po zamknięciu okna w aplikacji do Google Chat, która nie jest dodatkiem, zwróć obiekt ActionResponse z type: "NEW_MESSAGE". W tym przykładzie zamykamy okno dialogowe za pomocą SMS-a z tekstem potwierdzającym:
Node.js
Python
Java
Google Apps Script
W tym przykładzie wysyłana jest wiadomość z kartą przez zwrócenie kodu JSON karty. Możesz też użyć usługi kart Apps Script.
Aby zaktualizować wiadomość, zwróć obiekt actionResponse, który zawiera zaktualizowaną wiadomość i ustawia pole type na jedną z tych wartości:
UPDATE_MESSAGE: Aktualizuje wiadomość, która wywołała żądanie okna.UPDATE_USER_MESSAGE_CARDS: aktualizuje kartę na podstawie podglądu linku.