W tym przewodniku omawiamy różne sposoby wysyłania wiadomości przez aplikacje Google Chat wiadomości:
- Wysyłaj SMS-y i wiadomości w czasie rzeczywistym, odpowiadając użytkownikowi interakcji.
- Asynchronicznie wysyłaj wiadomości tekstowe i karty, wywołując metodę
create
w zasobieMessage
. - Rozpocznij wątek wiadomości lub odpowiedz na niego.
- Wyślij wiadomość i nazwij ją.
Message
zasób
reprezentuje
tekst
lub
karta
wiadomość w Google Chat. Dostępne opcje
create
, get
, update
lub delete
wiadomość w interfejsie Google Chat API przez wywołanie
odpowiednich metod. Więcej informacji o SMS-ach i wiadomościach karcianych znajdziesz w artykule
Omówienie wiadomości w Google Chat
Maksymalny rozmiar wiadomości (wraz z tekstem i kartami) to 32 000 bajtów. Jeśli rozmiar wiadomości przekracza ten rozmiar, aplikacja Google Chat możesz wysłać więcej niż 1 wiadomość.
Zamiast wywoływać metodę create
w zasobie Message
interfejsu Google Chat API do asynchronicznego wysyłania SMS-ów lub kart
Aplikacje Google Chat mogą też tworzyć wiadomości, aby odpowiadać na interakcje użytkowników w
w czasie rzeczywistym. odpowiedzi na interakcje użytkowników nie wymagają uwierzytelniania,
obsługa innych typów wiadomości, w tym interaktywnych okien dialogowych i linków
podgląd. Więcej informacji:
Odbieranie interakcji w aplikacji Google Chat i odpowiadanie na nie
Wymagania wstępne
Node.js
- Google Workspace konto z dostępem do Google Chat.
- Projekt Google Cloud z włączonym i skonfigurowanym interfejsem Google Chat API. Instrukcje znajdziesz w sekcji Utwórz aplikację Google Chat.
- Autoryzacja skonfigurowana dla aplikacji Google Chat do wysyłania
komunikatów asynchronicznych. Do wysyłania nie jest wymagana konfiguracja autoryzacji
wiadomości w czasie rzeczywistym.
- Wysyłam
SMS
obsługuje obie te metody autoryzacji:
- Uwierzytelnianie użytkowników
z autoryzacją
chat.messages.create
lubchat.messages
zakresu. - Uwierzytelnianie aplikacji
z zakresem autoryzacji
chat.bot
.
- Uwierzytelnianie użytkowników
z autoryzacją
- Wysyłam
wiadomość na karcie
wymaga
uwierzytelnianie aplikacji
z zakresem autoryzacji
chat.bot
.
- Wysyłam
SMS
obsługuje obie te metody autoryzacji:
Python
- Google Workspace konto z dostępem do Google Chat.
- Python w wersji 3.6 lub nowszej
- PIP narzędzie do zarządzania pakietami
Najnowsze biblioteki klienta Google dla języka Python. Aby je zainstalować lub zaktualizować: uruchom następujące polecenie w interfejsie wiersza poleceń:
pip3 install --upgrade google-api-python-client google-auth
- Projekt Google Cloud z włączonym i skonfigurowanym interfejsem Google Chat API. Instrukcje znajdziesz w sekcji Utwórz aplikację Google Chat.
Autoryzacja skonfigurowana dla aplikacji Google Chat do wysyłania komunikatów asynchronicznych. Do wysyłania nie jest wymagana konfiguracja autoryzacji wiadomości w czasie rzeczywistym.
- Wysyłam
SMS
obsługuje obie te metody autoryzacji:
- Uwierzytelnianie użytkowników
z autoryzacją
chat.messages.create
lubchat.messages
zakresu. - Uwierzytelnianie aplikacji
z zakresem autoryzacji
chat.bot
.
- Uwierzytelnianie użytkowników
z autoryzacją
- Wysyłam
wiadomość na karcie
wymaga
uwierzytelnianie aplikacji
z zakresem autoryzacji
chat.bot
.
- Wysyłam
SMS
obsługuje obie te metody autoryzacji:
Google Apps Script
- Google Workspace konto z dostępem do Google Chat.
- Opublikowaną aplikację Google Chat. Aby utworzyć Aplikacja Google Chat, obserwuj krótkie wprowadzenie.
- Autoryzacja skonfigurowana dla aplikacji Google Chat do wysyłania
komunikatów asynchronicznych. Do wysyłania nie jest wymagana konfiguracja autoryzacji
wiadomości w czasie rzeczywistym.
- Wysyłam
SMS
obsługuje obie te metody autoryzacji:
- Uwierzytelnianie użytkowników
z autoryzacją
chat.messages.create
lubchat.messages
zakresu. - Uwierzytelnianie aplikacji
z zakresem autoryzacji
chat.bot
.
- Uwierzytelnianie użytkowników
z autoryzacją
- Wysyłam
wiadomość z karty
wymaga
uwierzytelnianie aplikacji
z zakresem autoryzacji
chat.bot
.
- Wysyłam
SMS
obsługuje obie te metody autoryzacji:
Wysyłanie SMS-ów
W tej sekcji opisano wysyłanie SMS-ów na 2 sposoby:
- Wysyłaj SMS-y w czasie rzeczywistym w odpowiedzi na interakcję użytkownika.
- Wyślij SMS-a, wywołując asynchronicznie interfejs Google Chat API.
Wysyłaj SMS-y w czasie rzeczywistym
W tym przykładzie aplikacja Google Chat tworzy i wysyła tekst za każdym razem, gdy zostanie dodana do pokoju. Aby poznać sprawdzone metody dotyczące użytkowników wprowadzających, patrz: Pomoc dla osób i pokoi w pokoju dzięki pomocnym wprowadzeniu
Aby wysłać SMS-a, gdy użytkownik doda Twoją aplikację Google Chat
do pokoju, aplikacji Google Chat
odpowiada na: ADDED_TO_SPACE
zdarzenia interakcji. Aby odpowiedzieć na:
Zdarzenia interakcji z SMS-em w aplikacji ADDED_TO_SPACE
. Użyj tego kodu:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
res.send(
'Hello! This function is meant to be used in a Google Chat space.');
}
// Send an onboarding message when added to a Chat space
if (req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
learn what else I can do, type `/help`.'
});
}
};
Google Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
what else I can do, type `/help`.'
}
}
Przykładowy kod zwraca taki komunikat tekstowy:
Asynchroniczne wysyłanie SMS-a
W poniższej sekcji opisano, jak wysyłać SMS-y asynchronicznie za pomocą uwierzytelnianie aplikacji i uwierzytelnianie użytkowników.
Aby wysłać SMS-a, podaj w prośbie te informacje:
- W przypadku uwierzytelniania aplikacji określ zakres autoryzacji
chat.bot
. Na uwierzytelnianie użytkownika, określ zakres autoryzacjichat.messages.create
. - Wywołaj funkcję
Metoda
create
wMessage
zasób.
Wyślij SMS-a z uwierzytelnianiem aplikacji
Jak wysłać SMS-a z: uwierzytelnianie aplikacji:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_create_text_message_app.py
Umieść w pliku
chat_create_text_message_app.py
ten kod:from apiclient.discovery import build from google.oauth2 import service_account # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = service_account.Credentials.from_service_account_file( 'credentials.json', scopes=SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
W kodzie zastąp
SPACE
nazwą pokoju, która który znajdziesz w Metodaspaces.list()
w interfejsie Chat API lub z adresu URL pokoju.W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_create_text_message_app.py
Interfejs Chat API zwraca instancję
Message
który zawiera szczegóły wysyłanej wiadomości.
Wysyłanie SMS-a z uwierzytelnieniem użytkownika
Jak wysłać SMS-a z: uwierzytelnianie użytkownika:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_create_text_message_user.py
Umieść w pliku
chat_create_text_message_user.py
ten kod:import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.messages.create"] def main(): ''' Authenticates with Chat API via user credentials, then creates a text message in a Chat space. ''' # Start with no credentials. creds = None # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() # Prints details about the created message. print(result) if __name__ == '__main__': main()
W kodzie zastąp
SPACE
nazwą pokoju, która który znajdziesz w metodaspaces.list()
w z interfejsu Chat API lub z adresu URL pokoju.W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_create_text_message_user.py
Interfejs Chat API zwraca instancję
Message
który zawiera szczegóły wysyłanej wiadomości.
Wyślij wiadomości dotyczące karty
W tej sekcji opisano wysyłanie wiadomości dotyczących kart na 2 sposoby:
- Wysyłaj wiadomość w czasie rzeczywistym w odpowiedzi na interakcję użytkownika.
- Wyślij wiadomość na karcie przez asynchroniczne wywołanie interfejsu Google Chat API.
Wysyłaj wiadomości w czasie rzeczywistym
Aplikacje do obsługi czatu mogą tworzyć wiadomości w formie kart, aby odpowiedzieć użytkownikowi interakcji, na przykład gdy użytkownik wysyła wiadomość lub doda aplikację Google Chat do pokoju. Więcej informacji na temat reagowania na interakcje użytkowników przeczytaj sekcję Odbieranie i reagowanie na Interakcja z aplikacją do obsługi czatu wydarzenia.
W tym przykładzie użytkownik wysyła wiadomość do aplikacji Google Chat a aplikacja Google Chat odpowiada, wysyłając wiadomość z nazwą użytkownika i obrazem awatara:
Node.js
Python
Google Apps Script
Ten przykładowy kod karty wysyła wiadomość przez zwrócenie card JSON. Możesz też użyć usługi Usługa karty Apps Script.
Asynchroniczne wysyłanie wiadomości z karty
Aby wysłać wiadomość na karcie, w swoim żądaniu:
- W przypadku uwierzytelniania aplikacji określ zakres autoryzacji
chat.bot
. Nie możesz wysyłanie kart z uwierzytelnianiem użytkownika. - Wywołaj funkcję
Metoda
create
wMessage
zasób.
Oto przykładowy komunikat karty:
Aby wysłać wiadomość karty po uwierzytelnieniu w aplikacji:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_create_card_message.py
Umieść w pliku
chat_create_card_message.py
ten kod:from apiclient.discovery import build from google.oauth2 import service_account # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = service_account.Credentials.from_service_account_file( 'credentials.json', scopes=SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body= { 'cardsV2': [{ 'cardId': 'createCardMessage', 'card': { 'header': { 'title': 'A card message!', 'subtitle': 'Created with the Chat API', 'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png', 'imageType': 'CIRCLE' }, 'sections': [ { 'widgets': [ { 'buttonList': { 'buttons': [ { 'text': 'Read the docs!', 'onClick': { 'openLink': { 'url': 'https://developers.google.com/chat' } } } ] } } ] } ] } }] } ).execute() print(result)
W kodzie zastąp
SPACE
nazwą pokoju, która który znajdziesz w Metodaspaces.list
w interfejsie Chat API lub z adresu URL pokoju.W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_create_card_message.py
Rozpoczynanie wątku wiadomości lub odpowiadanie na niego
Aby rozpocząć wątek wiadomości, wyślij wiadomość i opuść
thread.name
pusty; Google Chat wypełnia je podczas tworzenia wątku. Opcjonalnie:
dostosuj nazwę wątku, podaj
thread.threadKey
.
Aby odpowiedzieć w wątku wiadomości, wyślij wiadomość zawierającą określenie
Pole threadKey
lub name
. Jeśli wątek został utworzony przez osobę lub inną osobę
aplikacji do obsługi czatu, musisz użyć pola thread.name
.
Jeśli nie zostanie znaleziony pasujący wątek, możesz określić
czy wiadomość powinna rozpocząć nowy wątek czy nie zostać skopiowana na podstawie ustawienia
messageReplyOption
.
Jeśli messageReplyOption
musisz też ustawić wartość thread.name
albo thread.threadKey
.
Oto jak rozpocząć wątek lub odpowiedzieć na niego, gdy pole threadKey
jest zdefiniowane jako
nameOfThread
:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_create_message_thread.py
Umieść w pliku
chat_create_message_thread.py
ten kod:from apiclient.discovery import build from google.oauth2 import service_account # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = service_account.Credentials.from_service_account_file( 'credentials.json', scopes=SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # Whether to start a thread or reply to an existing one. # # Required when threading is enabled in a space unless starting a # thread. Ignored in other space types. Threading is enabled when # space.spaceThreadingState is THREADED_MESSAGES. # # REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD replies to an existing thread # if one exists, otherwise it starts a new one. messageReplyOption='REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD', # The message body. body={ # The message to create. 'text': 'Start or reply to another message in a thread!', # The thread to start or reply to. 'thread': { 'threadKey': 'nameOfThread' } } ).execute() print(result)
W kodzie zastąp
SPACE
nazwą pokoju, która który znajdziesz w Metodaspaces.list
w interfejsie Chat API lub z adresu URL pokoju.W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_create_message_thread.py
Interfejs Chat API zwraca instancję
Message
który zawiera szczegóły wysyłanej wiadomości.
Nazywanie wiadomości
W tej sekcji wyjaśniamy, jak nazwać wiadomość przez ustawienie niestandardowego identyfikatora dla
. Za pomocą identyfikatorów niestandardowych możesz pobierać, aktualizować i usuwać wiadomości. Identyfikatory niestandardowe
pozwalają określić wiadomość bez konieczności zapisywania identyfikatora przypisanego przez system
nazwa zasobu wiadomości (reprezentowana w polu name
). Zasób
jest generowana w
treść odpowiedzi
podczas tworzenia wiadomości.
Aby na przykład pobrać wiadomość przy użyciu metody get()
, należy użyć funkcji
nazwę zasobu określającą, którą wiadomość ma zostać pobrana. Nazwa zasobu to
w formacie spaces/{space}/messages/{message}
, gdzie {message}
odpowiada
identyfikator przypisany przez system. Jeśli wiadomość ma przez Ciebie nazwę, możesz zastąpić ciąg
wartość {message}
z identyfikatorem niestandardowym.
Aby nazwać wiadomość, określ identyfikator niestandardowy w
messageId
podczas tworzenia wiadomości. Pole messageId
ustawia wartość parametru
clientAssignedMessageId
zasobu Message
.
Możesz nazwać wiadomość tylko podczas jej tworzenia. Nie można nazwać zmienić niestandardowy identyfikator istniejących wiadomości. Niestandardowy identyfikator musi spełniać te wymagania: wymagania:
- Zaczyna się od
client-
. np.client-custom-name
to prawidłowy atrybut niestandardowy Identyfikator, alecustom-name
już nie. - Może zawierać do 63 znaków i tylko małe litery, cyfry oraz łączników.
- Jest unikalna w obrębie pokoju. Aplikacja do obsługi czatu nie może używać ten sam niestandardowy identyfikator dla różnych wiadomości.
Aby wysłać wiadomość z niestandardowym identyfikatorem:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_create_named_message.py
Umieść w pliku
chat_create_named_message.py
ten kod:from apiclient.discovery import build from google.oauth2 import service_account # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = service_account.Credentials.from_service_account_file( 'credentials.json', scopes=SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Create a Chat message with a custom name. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # Custom name for the message used to facilitate later operations. messageId='client-NAME', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
Zastąp w kodzie następujące elementy:
SPACE
: identyfikator pokoju, w którym chcesz się znaleźć. opublikujemy wiadomość, którą będzie można uzyskać z Metodaspaces.list
w interfejsie Chat API lub z adresu URL pokoju.NAME
: niestandardowa nazwa wiadomości.
W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_create_named_message.py
Interfejs Chat API zwraca instancję
Message
Dodawanie interaktywnych widżetów u dołu wiadomości
Opcjonalnie do wiadomości możesz dołączyć widżety akcesoriów. Widżety akcesoriów wyświetlają się pod tekstem lub kartami w wiadomości. Możesz użyć tych widżety, które zachęcają użytkowników do interakcji z wiadomością na różne sposoby, w tym następujące:
- Oceń dokładność lub satysfakcję wiadomości.
- Zgłoś problem z wiadomością lub aplikacją Google Chat.
- Otwórz link do powiązanych treści, np. dokumentacji.
- Odrzucanie podobnych wiadomości w aplikacji Google Chat i odkładanie na później w wybranym okresie.
Aby dodać widżety akcesoriów, dołącz
accessoryWidgets[]
obiektu w wiadomości i określ co najmniej jeden
AccessoryWidgets
które chcesz uwzględnić. Wiadomość musi być widoczna dla wszystkich w pokoju
(widżetów z akcesoriami nie można dodawać do wiadomości prywatnych).
Ten obraz przedstawia aplikację Google Chat, która dołącza do wiadomości wiadomość tekstowa z widżetami akcesoriów, aby użytkownicy mogli ocenić wrażenia użytkownika. w aplikacji Google Chat.
Poniższy przykładowy kod pokazuje kod JSON dla tej wiadomości. Gdy użytkownik kliknie reklamę
jeden z przycisków, interakcja aktywuje odpowiednią funkcję (np.
doUpvote
), która przetwarza ocenę.
"text": "Rate your experience with this Chat app.",
"accessoryWidgets": [
{
"buttonList": {
"buttons": [
{
"icon": {
"material_icon": {
"name": "thumb_up"
}
},
"color": {
"red": 0,
"blue": 255,
"green": 0
},
"onClick": {
"action": {
"function": "doUpvote",
}
}
},
{
"icon": {
"material_icon": {
"name": "thumb_down"
}
},
"color": {
"red": 0,
"blue": 255,
"green": 0
},
"onClick": {
"action": {
"function": "doDownvote",
}
}
}
]
}
}
]
Wysyłaj wiadomości prywatnie
Aplikacje do obsługi czatu mogą prywatnie wysyłać SMS-y i karty, aby
wiadomość jest widoczna tylko dla jednego użytkownika w pokoju. Aby wysłać wiadomość prywatną,
określisz pole privateMessageViewer
w wiadomości. Tylko
Aplikacje do obsługi czatu mogą wysyłać wiadomości prywatne. Wysyłanie wiadomości prywatnej
asynchronicznie musisz użyć uwierzytelniania aplikacji.
Więcej informacji znajdziesz w artykule Wysyłanie prywatnych wiadomości do Google Chat. użytkowników.
Rozwiązywanie problemów
Gdy aplikacja Google Chat lub card zwraca błąd, Interfejs czatu wyświetla komunikat „Coś poszło nie tak”. lub „Nie można przetworzyć żądania”. Czasami interfejs Google Chat nie wyświetla się żaden komunikat o błędzie, ale aplikacja Google Chat lub zwraca nieoczekiwany wynik; na przykład wiadomość w formie karty .
Komunikat o błędzie może nie wyświetlać się w interfejsie Google Chat, opisowe komunikaty o błędach i dane dziennika, które pomogą Ci w naprawianiu błędów gdy logowanie błędów aplikacji Google Chat jest włączone. Aby uzyskać pomoc w wyświetlaniu, debugowania i naprawiania błędów, zapoznaj się z artykułem Rozwiązywanie problemów z błędami w Google Chat
Powiązane artykuły
- Formatowanie wiadomości
- Sprawdzanie szczegółów wiadomości
- Wyświetlanie listy wiadomości w pokoju
- Aktualizowanie wiadomości
- Usuwanie wiadomości
- Identyfikowanie użytkowników w wiadomościach Google Chat
- Wysyłanie wiadomości do Google Chat za pomocą przychodzących webhooków