Modifier un message

Ce guide explique comment utiliser la méthode patch sur la ressource Message de l'API Google Chat pour modifier un message texte ou une carte dans un espace. Mettre à jour un pour modifier les attributs du message, tels que son contenu ou le contenu d'une . Vous pouvez également ajouter un préfixe à un ou ajouter une carte à un message.

L'API Chat est également compatible avec Méthode update, Toutefois, nous vous recommandons vivement d'appeler la méthode Méthode patch car il utilise une requête HTTP PATCH update utilise un PUT Requête HTTP. Pour en savoir plus, consultez les Section PATCH et PUT de l'AIP-134

Dans l'API Chat, un message Chat est représenté par l'icône Ressource Message. Les utilisateurs de Chat ne peuvent envoyer que des messages contenant du texte, Les applications de chat peuvent utiliser de nombreuses autres fonctionnalités de messagerie, y compris l'affichage d'interfaces utilisateur statiques ou interactives, la collecte d'informations et en distribuant des messages en privé. Pour en savoir plus sur la messagerie disponibles pour l'API Chat, consultez la Présentation des messages Google Chat

Prérequis

Python

Modifier un message ou l'ajouter en préfixe à un message de carte avec l'authentification de l'utilisateur

Pour mettre à jour un SMS par authentification utilisateur, transmettre les éléments suivants dans votre demande:

  • Le champ d'application de l'autorisation chat.messages.
  • name du message à mettre à jour.
  • updateMask='text'
  • Élément body spécifiant le message mis à jour.

Si le message mis à jour est un message sous forme de fiche, puis le message est ajouté au début du message de la carte (qui continue de s'afficher).

Voici comment mettre à jour un SMS, ou ajouter un préfixe à un message sous forme de fiche par authentification des utilisateurs:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_update_text_message_user.py
  2. Ajoutez le code suivant dans chat_update_text_message_user.py:

    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. Dans le code, remplacez les éléments suivants:

    • SPACE: nom d'espace, que vous pouvez obtenir à partir de la Méthode spaces.list dans l'API Chat ou via l'URL d'un espace.
    • MESSAGE: nom du message, que vous pouvez obtenir à partir du corps de la réponse renvoyé après la création d'un message de manière asynchrone. à l'aide de l'API Chat ou nom personnalisé attribué au message lors de sa création.
  4. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_update_text_message_user.py
    

Modifiez un message ou ajoutez-y un message de carte avec l'authentification par application

Pour mettre à jour un SMS par l'authentification des applications, transmettez les éléments suivants dans votre requête:

  • Le champ d'application de l'autorisation chat.bot.
  • name du message à mettre à jour.
  • updateMask='text'
  • Élément body spécifiant le message mis à jour.

Si le message mis à jour est un message sous forme de fiche : puis le message est ajouté au début du message de la carte (qui continue de s'afficher).

Voici comment mettre à jour un SMS à un SMS, ou ajoutez un préfixe à un message sous forme de fiche par authentification des applications:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_update_text_message_app.py
  2. Ajoutez le code suivant dans chat_update_text_message_app.py:

    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. Dans le code, remplacez les éléments suivants:

    • SPACE: nom d'espace, que vous pouvez obtenir à partir de la Méthode spaces.list dans l'API Chat ou via l'URL d'un espace.
    • MESSAGE: nom du message, que vous pouvez obtenir à partir du corps de la réponse renvoyé après la création d'un message de manière asynchrone. à l'aide de l'API Chat ou nom personnalisé attribué au message lors de sa création.
  4. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_update_text_message_app.py
    

Mettez à jour un message de fiche ou ajoutez un message de fiche à un SMS

Pour mettre à jour un message sous forme de fiche, transmettez les éléments suivants dans votre requête:

  • Le champ d'application de l'autorisation chat.bot. La mise à jour d'un message de carte nécessite authentification des applications.
  • name du message à mettre à jour.
  • updateMask='cardsV2'
  • Élément body spécifiant le message mis à jour.

Si le message mis à jour est un message texte, puis une fiche est ajoutée au message (qui continue de s'afficher). Si le le message mis à jour est lui-même card, la fiche affichée est mis à jour.

Voici comment remplacer un message par un message de la fiche:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_update_card_message.py
  2. Ajoutez le code suivant dans chat_update_card_message.py:

    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. Dans le code, remplacez les éléments suivants:

    • SPACE: nom d'espace, que vous pouvez obtenir à partir de la Méthode spaces.list dans l'API Chat ou via l'URL d'un espace.

    • MESSAGE: nom du message, que vous pouvez obtenir à partir du corps de la réponse renvoyé après la création d'un message de manière asynchrone. à l'aide de l'API Chat ou nom personnalisé attribué au message lors de sa création.

  4. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_update_card_message.py
    

L'API Chat renvoie une instance de Message qui détaille le message mis à jour.

Mettre à jour simultanément un message comportant plusieurs chemins d'accès de champs

Lorsqu'un message est mis à jour, vous pouvez mettre à jour les chemins d'accès de plusieurs champs de message à la section en temps réel. Par exemple, dans une requête de message de mise à jour, vous pouvez spécifier une modification du les chemins d'accès des champs text et cardsv2 simultanément, ce qui met à jour à la fois les le texte et la carte du message. Si le message ne contient que du texte et pas de carte, une fiche est ajouté au message. Pour en savoir plus sur les chemins d'accès de champ acceptés, voir Paramètres updateMask.

Pour mettre à jour à la fois text et card d'un message avec l'authentification des utilisateurs, transmettez les éléments suivants dans votre requête:

  • Le champ d'application de l'autorisation chat.messages.
  • name du message à mettre à jour.
  • Élément updateMask spécifiant les chemins d'accès des champs de message à mettre à jour, séparés par des virgules: updateMask='text', 'cardsV2'.

  • Élément body spécifiant le message mis à jour, y compris tous les champs mis à jour chemins d'accès.

Voici comment mettre à jour les chemins d'accès des champs text et cardsV2 dans une envoyer un message à authentification utilisateur:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_update_text_message_user.py
  2. Ajoutez le code suivant dans chat_update_text_message_user.py:

    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. Dans le code, remplacez les éléments suivants:

    • SPACE: nom d'espace, que vous pouvez obtenir à partir de la Méthode spaces.list dans l'API Chat ou via l'URL d'un espace.
    • MESSAGE: nom du message, que vous pouvez obtenir à partir du corps de la réponse renvoyé après la création d'un message de manière asynchrone. à l'aide de l'API Chat ou nom personnalisé attribué au message lors de sa création.
  4. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_update_text_message_user.py