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
- Une entreprise Un compte Google Workspace ayant accès à Google Chat :
- Configurez votre environnement:
<ph type="x-smartling-placeholder">
- </ph>
- Créez un projet Google Cloud.
- Configurer l'écran de consentement OAuth
- activer et configurer l'API Google Chat à l'aide d'un nom ; et la description de votre application Chat.
- Installez la Python Bibliothèque cliente des API Google.
- Créez des identifiants d'accès en fonction de la manière dont vous souhaitez vous authentifier dans votre API Google Chat.
requête:
<ph type="x-smartling-placeholder">
- </ph>
- Pour vous authentifier en tant
qu'utilisateur de Chat,
créer un ID client OAuth
identifiants et enregistrez-les dans un fichier JSON nommé
client_secrets.json
dans votre répertoire local. - Pour vous authentifier en tant qu'application Chat,
créer un compte de service
identifiants et enregistrez-les dans un fichier JSON nommé
credentials.json
- Pour vous authentifier en tant
qu'utilisateur de Chat,
créer un ID client OAuth
identifiants et enregistrez-les dans un fichier JSON nommé
- <ph type="x-smartling-placeholder"></ph> Choisissez un champ d'application d'autorisation selon que vous souhaitez vous authentifier en tant qu'utilisateur Application Chat
Modifier un message ou l'ajouter en préfixe à un message de carte avec l'authentification de l'utilisateur
Pour mettre à jour un SMS avec 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 avec authentification des utilisateurs:
Python
- Dans votre répertoire de travail, créez un fichier nommé
chat_update_text_message_user.py
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()
Dans le code, remplacez les éléments suivants:
SPACE
: nom d'espace, que vous pouvez obtenir à partir de la Méthodespaces.list
dans l'API Chat ou depuis 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.
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 avec 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 avec authentification des applications:
Python
- Dans votre répertoire de travail, créez un fichier nommé
chat_update_text_message_app.py
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)
Dans le code, remplacez les éléments suivants:
SPACE
: nom d'espace, que vous pouvez obtenir à partir de la Méthodespaces.list
dans l'API Chat ou depuis 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.
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
- Dans votre répertoire de travail, créez un fichier nommé
chat_update_card_message.py
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)
Dans le code, remplacez les éléments suivants:
SPACE
: nom d'espace, que vous pouvez obtenir à partir de la Méthodespaces.list
dans l'API Chat ou depuis 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.
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'
.Une valeur
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
- Dans votre répertoire de travail, créez un fichier nommé
chat_update_text_message_user.py
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()
Dans le code, remplacez les éléments suivants:
SPACE
: nom d'espace, que vous pouvez obtenir à partir de la Méthodespaces.list
dans l'API Chat ou depuis 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.
Dans votre répertoire de travail, créez et exécutez l'exemple:
python3 chat_update_text_message_user.py
Articles associés
- Mettez en forme un message.
- Supprimer un message
- En savoir plus sur un message
- Lister les messages d'un espace
- Envoyer un message.