Ce guide explique comment utiliser la méthode upload sur la ressource Media de l'API Google Chat pour importer un élément multimédia (un fichier) dans Google Chat, puis le joindre à un message.
Lorsque l'utilisateur envoie un message à votre application, Google Chat distribue un
MESSAGE événement d'interaction.
L'événement d'interaction reçu par votre application inclut un corps de requête, qui correspond à 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é (un fichier local) ou d'un fichier stocké sur Drive. La ressource
Media `Media`
représente un fichier importé dans Google Chat, comme des images, des vidéos et des documents.
La
Attachment ressource
représente une instance de média (un fichier) jointe à un message. La ressource Attachment inclut les métadonnées de la pièce jointe, par exemple l'emplacement où elle est enregistrée.
Prérequis
Python
- Un compte Google Workspace Business ou Enterprise avec accès à Google Chat.
- Configurez votre environnement :
- Créez un projet Google Cloud.
- Configurez l'écran d'autorisation OAuth.
- Activez et configurez l'API Google Chat avec un nom, une icône et une description pour 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 le joindre à un message, transmettez les éléments suivants dans votre requête :
- Spécifiez le champ d'application d'autorisation
chat.messages.createouchat.messages. - Appelez les méthodes Google Chat suivantes :
- Pour importer le fichier, appelez la
uploadméthode sur laMediaressource.- Définissez
parentsur le nom de l'espace qui héberge le fichier. - Dans
body(le corps de la requête), définissezfilenamesur le nom de la pièce jointe importée. - Définissez
media_bodycomme une instance du fichier à importer.
- Définissez
- Pour créer un message avec le fichier importé en pièce jointe, appelez la
createméthode sur laMessagesressource.- Définissez
attachmentcomme la réponse à l'appel de lauploadméthode sur laMediaressource. Le champattachmentaccepte une liste.
- Définissez
- Pour importer le fichier, appelez la
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 à noter
Lorsque vous vous préparez à importer des fichiers et à les joindre à des messages, tenez compte des limites et points suivants :
- Vous pouvez importer des fichiers de 200 Mo maximum.
- Certains types de fichiers ne sont pas compatibles et ne peuvent pas être importés. Pour plus d'informations, consultez Types de fichiers bloqués dans Google Chat.
- Votre message doit omettre les widgets accessoires.
Articles associés
- Télécharger un élément multimédia en tant que pièce jointe
- Obtenir les métadonnées d'une pièce jointe d'un message