Ce guide explique comment utiliser la méthode upload sur la ressource Media de l'API Google Chat pour importer un fichier multimédia dans Google Chat, puis l'ajouter à un message.
Lorsque l'utilisateur envoie un message à votre application, Google Chat déclenche un événement d'interaction MESSAGE.
L'événement d'interaction reçu par votre application inclut un corps de requête, qui est la charge utile JSON représentant l'événement d'interaction, y compris les pièces jointes. Les données de la pièce jointe varient selon qu'il s'agit d'un contenu importé (fichier local) ou d'un fichier stocké sur Drive. La ressource Media représente un fichier importé dans Google Chat, comme des images, des vidéos et des documents.
La ressource Attachment représente une instance de contenu multimédia (un fichier) jointe à un message. La ressource Attachment inclut les métadonnées de la pièce jointe, comme l'emplacement où elle est enregistrée.
Prérequis
Python
- Compte Google Workspace Business ou Enterprise ayant accès à Google Chat.
- Configurez votre environnement :
- Créez un projet Google Cloud.
- Configurez l'écran de consentement OAuth.
- Activez et configurez l'API Google Chat en attribuant un nom, une icône et une description à votre application Chat.
- Installez la bibliothèque cliente des API Google pour Python.
-
Créez des identifiants d'ID client OAuth pour une application de bureau. Pour exécuter l'exemple de ce guide, enregistrez les identifiants dans un fichier JSON nommé
credentials.jsondans votre répertoire local.
- Choisissez un champ d'application d'autorisation compatible avec l'authentification des utilisateurs.
Importer en tant que pièce jointe
Pour importer un élément multimédia et l'associer à un message, transmettez les éléments suivants dans votre requête :
- Spécifiez le champ d'application de l'autorisation
chat.messages.createouchat.messages. - Appelez les méthodes Google Chat suivantes :
- Pour importer le fichier, appelez la méthode
uploadsur la ressourceMedia.- Définissez
parentsur le nom de l'espace qui héberge le fichier. - Dans
body(corps de la requête), définissezfilenamesur le nom de la pièce jointe importée. - Définissez
media_bodycomme instance du fichier à importer.
- Définissez
- Pour créer un message avec le fichier importé en pièce jointe, appelez la méthode
createsur la ressourceMessages.- Définissez
attachmentcomme réponse à l'appel de la méthodeuploadsur la ressourceMedia. Le champattachmentaccepte une liste.
- Définissez
- Pour importer le fichier, appelez la méthode
L'exemple suivant importe un fichier image PNG et le joint à un message.
Python
- Dans votre répertoire de travail, créez un fichier nommé
chat_media_and_attachment_upload.py. Incluez le code suivant dans
chat_media_and_attachment_upload.py:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.http import MediaFileUpload # 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.create"] def main(): ''' Authenticates with Chat API via user credentials, then uploads a file as media, creates a message, and attaches the file to the message. ''' # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. service = build('chat', 'v1', credentials=creds) # Upload a file to Google Chat. media = MediaFileUpload('test_image.png', mimetype='image/png') # Create a message and attach the uploaded file to it. attachment_uploaded = service.media().upload( # The space to upload the attachment in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The filename of the attachment, including the file extension. body={'filename': 'test_image.png'}, # Media resource of the attachment. media_body=media ).execute() print(attachment_uploaded) # Create a Chat message with attachment. result = service.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Must match the space name that the attachment is uploaded to. parent='spaces/SPACE', # The message to create. body={ 'text': 'Hello, world!', 'attachment': [attachment_uploaded] } ).execute() print(result) if __name__ == '__main__': main()Dans le code, remplacez
SPACEpar le nom de l'espace dans lequel importer la pièce jointe. Vous pouvez l'obtenir à partir de la méthodespaces.listde l'API Chat ou de l'URL d'un espace.Dans votre répertoire de travail, compilez et exécutez l'exemple :
python3 chat_media_and_attachment_upload.py
L'API Chat renvoie un corps de réponse contenant attachmentDataRef avec des informations sur le fichier importé.
Limites et points à prendre en compte
Lorsque vous vous préparez à importer des fichiers et à les joindre à des messages, tenez compte des limites et des points suivants :
- Vous pouvez importer des fichiers de 200 Mo maximum.
- Certains types de fichiers ne sont pas acceptés et ne peuvent pas être importés. Pour en savoir plus, consultez Types de fichiers bloqués dans Google Chat.
- Votre message ne doit pas inclure de widgets d'accessoires.
Articles associés
- Télécharger des contenus multimédias en tant que pièces jointes
- Obtenir les métadonnées d'une pièce jointe d'un message