In diesem Leitfaden wird erläutert, wie Sie die Methode patch
für die Ressource Message
von
die Google Chat API verwenden, um eine Text- oder Kartennachricht in einem Gruppenbereich zu aktualisieren. Aktualisieren
Nachrichtenattribute ändern, z. B. was sie sagt, oder den Inhalt einer
. Sie können auch eine Textnachricht
oder eine Karte an eine SMS anhängen.
Die Chat API unterstützt auch den
update
-Methode,
Wir empfehlen jedoch dringend, die Methode
patch
-Methode
da sie eine PATCH
-HTTP-Anfrage verwendet,
update
verwendet ein
PUT
-HTTP-Anfrage. Weitere Informationen finden Sie in der
Abschnitt PATCH
und PUT
von AIP-134.
In der Chat API wird eine Chatnachricht durch das
Message
-Ressource
Chat-Nutzer können zwar nur Nachrichten senden, die Text enthalten,
Chat-Apps können viele andere Messaging-Funktionen nutzen, darunter
Anzeige statischer oder interaktiver Benutzeroberflächen, das Erfassen von Informationen
und Nachrichten privat zu übermitteln. Weitere Informationen zur Nachrichtenfunktion
die für die Chat API zur Verfügung stehen, finden Sie in der
Nachrichten in Google Chat
Vorbereitung
Python
- Unternehmen Google Workspace-Konto mit Zugriff auf Google Chat:
- Richten Sie Ihre Umgebung ein:
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud-Projekt erstellen
- Konfigurieren Sie den OAuth-Zustimmungsbildschirm.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, und eine Beschreibung der Chat App.
- Installieren Sie die Python Google API-Clientbibliothek
- Anmeldedaten für den Zugriff basierend auf der Authentifizierung in der Google Chat API erstellen
Anfrage:
<ph type="x-smartling-placeholder">
- </ph>
- So authentifizieren Sie sich als Chat-Nutzer:
OAuth-Client-ID erstellen
Anmeldedaten und speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
client_secrets.json
in Ihr lokales Verzeichnis. - So authentifizieren Sie sich als Chat-App:
Dienstkonto erstellen
Anmeldedaten und speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
credentials.json
- So authentifizieren Sie sich als Chat-Nutzer:
OAuth-Client-ID erstellen
Anmeldedaten und speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
- <ph type="x-smartling-placeholder"></ph> Wählen Sie einen Autorisierungsbereich aus, je nachdem, ob Sie sich als Nutzer oder als Chat-App.
Textnachricht aktualisieren oder einer Kartennachricht eine Textnachricht voranstellen (mit Nutzerauthentifizierung)
So aktualisieren Sie ein sms mit Nutzerauthentifizierung, übergeben Folgendes in Ihrer Anfrage angeben:
- Der Autorisierungsbereich
chat.messages
. - Die
name
der zu aktualisierenden Nachricht. updateMask='text'
- Ein
body
, der die aktualisierte Nachricht angibt.
Wenn die aktualisierte Nachricht Kartennachricht, wird die Textnachricht der Kartennachricht vorangestellt (die weiterhin angezeigt wird).
So aktualisieren Sie ein SMS oder eine Textnachricht Kartennachricht mit Nutzerauthentifizierung:
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_update_text_message_user.py
Fügen Sie den folgenden Code in
chat_update_text_message_user.py
ein: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()
Ersetzen Sie im Code Folgendes:
SPACE
: ein Name für den Gruppenbereich, den Sie über die Methodespaces.list
in der Chat API oder über die URL eines Gruppenbereichs.MESSAGE
: ein Nachrichtenname, den Sie abrufen können aus dem Antworttext, der nach dem asynchronen Erstellen einer Nachricht zurückgegeben wurde mit der Chat API oder der API benutzerdefinierter Name der Nachricht bei der Erstellung zugewiesen ist.
Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:
python3 chat_update_text_message_user.py
Mit der App-Authentifizierung eine SMS aktualisieren oder einer Kartennachricht eine Textnachricht voranstellen
So aktualisieren Sie ein sms mit App-Authentifizierung Übergeben Sie in Ihrer Anfrage Folgendes:
- Der Autorisierungsbereich
chat.bot
. - Die
name
der zu aktualisierenden Nachricht. updateMask='text'
- Ein
body
, der die aktualisierte Nachricht angibt.
Wenn die aktualisierte Nachricht eine Kartennachricht ist, wird die Textnachricht der Kartennachricht vorangestellt (die weiterhin angezeigt wird).
So aktualisieren Sie ein sms oder einer Textnachricht Kartennachricht mit App-Authentifizierung:
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_update_text_message_app.py
Fügen Sie den folgenden Code in
chat_update_text_message_app.py
ein: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)
Ersetzen Sie im Code Folgendes:
SPACE
: ein Name für den Gruppenbereich, den Sie über die Methodespaces.list
in der Chat API oder über die URL eines Gruppenbereichs.MESSAGE
: ein Nachrichtenname, den Sie abrufen können aus dem Antworttext, der nach dem asynchronen Erstellen einer Nachricht zurückgegeben wurde mit der Chat API oder der API benutzerdefinierter Name der Nachricht bei der Erstellung zugewiesen ist.
Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:
python3 chat_update_text_message_app.py
Kartennachricht aktualisieren oder SMS an SMS anhängen
So aktualisieren Sie ein Kartennachricht, Übergeben Sie in Ihrer Anfrage Folgendes:
- Der Autorisierungsbereich
chat.bot
. Das Aktualisieren einer Kartennachricht erfordert App-Authentifizierung. - Die
name
der zu aktualisierenden Nachricht. updateMask='cardsV2'
- Ein
body
, der die aktualisierte Nachricht angibt.
Wenn die aktualisierte Nachricht SMS, wird eine Karte an die Textnachricht angehängt (die weiterhin angezeigt wird). Wenn die aktualisierte Nachricht selbst card hat, wird die angezeigte Karte aktualisiert.
So aktualisieren Sie eine Nachricht zu einem Kartennachricht:
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_update_card_message.py
Fügen Sie den folgenden Code in
chat_update_card_message.py
ein: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)
Ersetzen Sie im Code Folgendes:
SPACE
: ein Name für den Gruppenbereich, den Sie über die Methodespaces.list
in der Chat API oder über die URL eines Gruppenbereichs.MESSAGE
: ein Nachrichtenname, den Sie abrufen können aus dem Antworttext, der nach dem asynchronen Erstellen einer Nachricht zurückgegeben wurde mit der Chat API oder der API benutzerdefinierter Name der Nachricht bei der Erstellung zugewiesen ist.
Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:
python3 chat_update_card_message.py
Die Chat API gibt eine Instanz von
Message
der die aktualisierte Nachricht enthält.
Eine Nachricht mit mehreren Feldpfaden gleichzeitig aktualisieren
Wenn eine Nachricht aktualisiert wird, können Sie mehrere Pfade im Nachrichtenfeld auf der
. In einer Aktualisierungsnachrichtenanfrage können Sie beispielsweise eine Änderung an der
text
- und cardsv2
-Feldpfade gleichzeitig, wodurch die beiden Felder
den Text und die Karte der Nachricht. Wenn die Nachricht nur Text und keine Karte enthält, wird eine Karte
wird der Nachricht hinzugefügt. Weitere Informationen zu den unterstützten Feldpfaden
Siehe
updateMask
-Parameter.
Um sowohl die
text
und
card
einer Nachricht mit
Nutzerauthentifizierung,
Übergeben Sie in Ihrer Anfrage Folgendes:
- Der Autorisierungsbereich
chat.messages
. - Die
name
der zu aktualisierenden Nachricht. Ein
updateMask
, der die zu aktualisierenden Nachrichtenfeldpfade angibt, getrennt voneinander durch Kommas:updateMask='text', 'cardsV2'
.Ein
body
, der die aktualisierte Nachricht angibt, einschließlich aller aktualisierten Felder Pfade.
So aktualisieren Sie die Feldpfade text
und cardsV2
in einem
Nachricht an
Nutzerauthentifizierung:
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_update_text_message_user.py
Fügen Sie den folgenden Code in
chat_update_text_message_user.py
ein: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()
Ersetzen Sie im Code Folgendes:
SPACE
: ein Name für den Gruppenbereich, den Sie über die Methodespaces.list
in der Chat API oder über die URL eines Gruppenbereichs.MESSAGE
: ein Nachrichtenname, den Sie abrufen können aus dem Antworttext, der nach dem asynchronen Erstellen einer Nachricht zurückgegeben wurde mit der Chat API oder der API benutzerdefinierter Name der Nachricht bei der Erstellung zugewiesen ist.
Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:
python3 chat_update_text_message_user.py
Weitere Informationen
- Nachricht formatieren
- Nachricht löschen
- Details zu einer Nachricht abrufen
- Nachrichten in einem Gruppenbereich auflisten
- Nachricht senden: