Z tego przewodnika dowiesz się, jak używać metody patch
w zasobie Message
interfejsu Google Chat API w celu zaktualizowania wiadomości tekstowej lub karty w pokoju. Zaktualizuj
aby zmienić atrybuty wiadomości, takie jak treść
Możesz również dołączyć wiadomość tekstową na początku
lub dołączyć kartę do SMS-a.
Interfejs Chat API obsługuje też
metodą update
,
ale zdecydowanie zalecamy wywołanie funkcji
Metoda patch
ponieważ używa żądania HTTP PATCH
, a jednocześnie
update
korzysta z
Żądanie HTTP PUT
. Aby dowiedzieć się więcej, przeczytaj
Sekcja PATCH
i PUT
linii AIP-134.
W interfejsie Chat API wiadomość z Google Chat jest reprezentowana przez
Message
zasób.
Użytkownicy Google Chat mogą wysyłać tylko wiadomości zawierające tekst,
Aplikacje do obsługi czatu mogą korzystać z wielu innych funkcji wiadomości, w tym
używające statycznych lub interaktywnych interfejsów użytkownika i zbierając informacje z
użytkowników i dostarczanie wiadomości prywatnie. Aby dowiedzieć się więcej o funkcji przesyłania wiadomości
funkcji dostępnych w interfejsie Chat API, zapoznaj się z
Omówienie wiadomości w Google Chat
Wymagania wstępne
Python
- Firmy lub przedsiębiorstwa Konto Google Workspace z dostępem do Google Chat.
- Skonfiguruj środowisko:
- Utwórz projekt Google Cloud.
- Skonfiguruj ekran zgody OAuth
- Włącz i skonfiguruj interfejs Google Chat API pod nazwą. ikonę i opis aplikacji Google Chat.
- Zainstaluj Python Biblioteka klienta interfejsów API Google.
- Utwórz dane uwierzytelniające na podstawie sposobu uwierzytelniania w interfejsie Google Chat API
żądanie:
- Aby uwierzytelnić się jako użytkownik Google Chat:
utwórz identyfikator klienta OAuth
dane logowania i zapisz je w pliku JSON o nazwie
client_secrets.json
do katalogu lokalnego. - Aby uwierzytelnić się jako aplikacja Google Chat:
utwórz konto usługi
dane logowania i zapisz je w pliku JSON o nazwie
credentials.json
- Aby uwierzytelnić się jako użytkownik Google Chat:
utwórz identyfikator klienta OAuth
dane logowania i zapisz je w pliku JSON o nazwie
- Wybierz zakres autoryzacji w zależności od tego, czy chcesz się uwierzytelnić jako użytkownik czy jako aplikacja Google Chat.
Aktualizowanie SMS-a lub dodawanie wiadomości na początku do wiadomości w ramach karty z uwierzytelnianiem użytkownika
Aby zaktualizować SMS z uwierzytelnianie użytkownika, zaliczone następujące elementy w żądaniu:
- Zakres autoryzacji
chat.messages
. name
wiadomości do zaktualizowania.updateMask='text'
- Pole
body
, które określa zaktualizowany komunikat.
Jeśli zaktualizowana wiadomość to wiadomość na karcie, wiadomość tekstowa zostanie dodana do wiadomości na karcie (która będzie nadal wyświetlana).
Aby zaktualizować SMS lub dołącz wiadomość tekstową do wiadomość na karcie z Uwierzytelnianie użytkownika:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_update_text_message_user.py
Umieść w pliku
chat_update_text_message_user.py
ten kod:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # 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"] def main(): ''' Authenticates with Chat API via user credentials, then updates a message. ''' # 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) # Update a Chat message. result = chat.spaces().messages().patch( # The message to update, and the updated message. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MESSAGE with a message name. # Obtain the message name from the response body returned # after creating a message asynchronously with Chat REST API. name='spaces/SPACE/messages/MESSAGE', updateMask='text', body={'text': 'Updated message!'} ).execute() # Prints details about the updated message. print(result) if __name__ == '__main__': main()
Zastąp w kodzie następujące elementy:
SPACE
: nazwa pokoju, którą możesz uzyskać z: Metodaspaces.list
w interfejsie Chat API lub z adresu URL pokoju.MESSAGE
: nazwa wiadomości, którą możesz uzyskać; z treści odpowiedzi zwróconej po asynchronicznym utworzeniu wiadomości za pomocą interfejsu Chat API albo nazwa niestandardowa jest przypisany do wiadomości w momencie utworzenia.
W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_update_text_message_user.py
Aktualizowanie SMS-a lub dodawanie wiadomości na początku karty z uwierzytelnianiem w aplikacji
Aby zaktualizować SMS z uwierzytelnianie aplikacji, w swoim żądaniu:
- Zakres autoryzacji
chat.bot
. name
wiadomości do zaktualizowania.updateMask='text'
- Pole
body
, które określa zaktualizowany komunikat.
Jeśli zaktualizowana wiadomość to wiadomość z karty, wiadomość tekstowa zostanie dodana do wiadomości na karcie (która będzie nadal wyświetlana).
Aby zaktualizować SMS lub dodaj wiadomość na początku wiadomość na karcie z Uwierzytelnianie aplikacji:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_update_text_message_app.py
Umieść w pliku
chat_update_text_message_app.py
ten kod:from google.oauth2 import service_account from apiclient.discovery import build # 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') .with_scopes(SCOPES) ) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Update a Chat message. result = chat.spaces().messages().patch( # The message to update, and the updated message. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MESSAGE with a message name. # Obtain the message name from the response body returned # after creating a message asynchronously with Chat REST API. name='spaces/SPACE/messages/MESSAGE', updateMask='text', body={'text': 'Updated message!'} ).execute() # Print Chat API's response in your command line interface. print(result)
Zastąp w kodzie następujące elementy:
SPACE
: nazwa pokoju, którą możesz uzyskać z: Metodaspaces.list
w interfejsie Chat API lub z adresu URL pokoju.MESSAGE
: nazwa wiadomości, którą możesz uzyskać; z treści odpowiedzi zwróconej po asynchronicznym utworzeniu wiadomości za pomocą interfejsu Chat API albo nazwa niestandardowa jest przypisany do wiadomości w momencie utworzenia.
W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_update_text_message_app.py
Aktualizowanie wiadomości w formie karty lub dołączanie wiadomości z kartą do SMS-a
Aby zaktualizować wiadomość na karcie, w swoim żądaniu:
- Zakres autoryzacji
chat.bot
. Aby zaktualizować wiadomość dotyczącą karty, uwierzytelnianie aplikacji. name
wiadomości do zaktualizowania.updateMask='cardsV2'
- Pole
body
, które określa zaktualizowany komunikat.
Jeśli zaktualizowana wiadomość to SMS, do wiadomości (która będzie dalej wyświetlana) pojawi się karta. Jeśli zaktualizowana wiadomość jest sama card, wyświetlana karta będzie Zaktualizowano.
Oto jak zaktualizować wiadomość do wiadomość na karcie:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_update_card_message.py
Umieść w pliku
chat_update_card_message.py
ten kod:from google.oauth2 import service_account from apiclient.discovery import build # 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') .with_scopes(SCOPES) ) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Update a Chat message. result = chat.spaces().messages().patch( # The message to update, and the updated message. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MESSAGE with a message name. # Obtain the message name from the response body returned # after creating a message asynchronously with Chat REST API. name='spaces/SPACE/messages/MESSAGE', updateMask='cardsV2', body= { 'cardsV2': [{ 'cardId': 'updateCardMessage', 'card': { 'header': { 'title': 'An Updated Card Message!', 'subtitle': 'Updated with Chat REST 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 Chat API's response in your command line interface. print(result)
Zastąp w kodzie następujące elementy:
SPACE
: nazwa pokoju, którą możesz uzyskać z: Metodaspaces.list
w interfejsie Chat API lub z adresu URL pokoju.MESSAGE
: nazwa wiadomości, którą możesz uzyskać; z treści odpowiedzi zwróconej po asynchronicznym utworzeniu wiadomości za pomocą interfejsu Chat API albo nazwa niestandardowa jest przypisany do wiadomości w momencie utworzenia.
W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_update_card_message.py
Interfejs Chat API zwraca instancję
Message
zawierający szczegóły zaktualizowanej wiadomości.
Aktualizowanie wiadomości z wieloma ścieżkami pól jednocześnie
Po zaktualizowaniu wiadomości możesz zaktualizować wiele ścieżek pól wiadomości w
obecnie się znajdujesz. Na przykład w żądaniu wiadomości o aktualizacji możesz określić zmianę
text
i cardsv2
ścieżek pól jednocześnie, co aktualizuje zarówno wartości
tekst i kartę wiadomości. Jeśli wiadomość zawiera tylko tekst bez karty,
zostanie dodany do wiadomości. Więcej informacji o obsługiwanych ścieżkach pól znajdziesz
zobacz
Parametry typu updateMask
.
Aby zaktualizować
text
oraz
card
wiadomości z
uwierzytelnienie użytkownika.
w swoim żądaniu:
- Zakres autoryzacji
chat.messages
. name
wiadomości do zaktualizowania.updateMask
określający rozdzielane pola wiadomości ścieżki do zaktualizowania przecinkami:updateMask='text', 'cardsV2'
.body
, który określa zaktualizowany komunikat, w tym wszystkie zaktualizowane pola ścieżek konwersji.
Oto jak zaktualizować ścieżki pól text
i cardsV2
w
wiadomość z
Uwierzytelnianie użytkownika:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_update_text_message_user.py
Umieść w pliku
chat_update_text_message_user.py
ten kod:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # 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"] def main(): ''' Authenticates with Chat API via user credentials, then updates a message. ''' # 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) # Update a Chat message. result = chat.spaces().messages().patch( # The message to update, and the updated message. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MESSAGE with a message name. # Obtain the message name from the response body returned # after creating a message asynchronously with Chat REST API. name='spaces/SPACE/messages/MESSAGE', updateMask='text,cardsV2', body= {'text': 'Updated message!', 'cardsV2': [{ 'cardId': 'updateCardMessage', 'card': { 'header': { 'title': 'An Updated Card Message!', 'subtitle': 'Updated with Chat REST 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() # Prints details about the updated message. print(result) if __name__ == '__main__': main()
Zastąp w kodzie następujące elementy:
SPACE
: nazwa pokoju, którą możesz uzyskać z: Metodaspaces.list
w interfejsie Chat API lub z adresu URL pokoju.MESSAGE
: nazwa wiadomości, którą możesz uzyskać; z treści odpowiedzi zwróconej po asynchronicznym utworzeniu wiadomości za pomocą interfejsu Chat API albo nazwa niestandardowa jest przypisany do wiadomości w momencie utworzenia.
W katalogu roboczym skompiluj i uruchom przykład:
python3 chat_update_text_message_user.py
Powiązane artykuły
- Formatowanie wiadomości
- Usuwanie wiadomości
- Sprawdzanie szczegółów wiadomości
- Wyświetlanie listy wiadomości w pokoju
- Wyślij wiadomość.