Nachricht aktualisieren

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

  • Python 3.6 oder höher
  • Paketverwaltungstool pip
  • Die neuesten Google-Clientbibliotheken So installieren oder aktualisieren Sie sie: Führen Sie in der Befehlszeile den folgenden Befehl aus:
    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    

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

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_update_text_message_user.py
  2. 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()
    
  3. Ersetzen Sie im Code Folgendes:

    • SPACE: ein Name für den Gruppenbereich, den Sie über die Methode spaces.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.
  4. 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

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_update_text_message_app.py
  2. 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)
    
  3. Ersetzen Sie im Code Folgendes:

    • SPACE: ein Name für den Gruppenbereich, den Sie über die Methode spaces.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.
  4. 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

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_update_card_message.py
  2. 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)
    
  3. Ersetzen Sie im Code Folgendes:

    • SPACE: ein Name für den Gruppenbereich, den Sie über die Methode spaces.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.

  4. 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

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_update_text_message_user.py
  2. 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()
    
  3. Ersetzen Sie im Code Folgendes:

    • SPACE: ein Name für den Gruppenbereich, den Sie über die Methode spaces.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.
  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_update_text_message_user.py