Ce guide explique comment utiliser la méthode upload
sur la ressource Media
de
l'API Google Chat pour importer du contenu multimédia (un fichier) dans Google Chat et le joindre à
un message.
Lorsque l'utilisateur envoie un message à votre application, Google Chat envoie une
Événement d'interaction MESSAGE
.
L'événement d'interaction reçu par votre application inclut un corps de requête, qui correspond au
Charge utile JSON représentant l'événement d'interaction, y compris les pièces jointes. La
les données de la pièce jointe varient selon que la pièce jointe est
contenu importé (fichier local) ou s'il s'agit 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) joint à un message. Attachment
ressource inclut les métadonnées sur le rattachement, telles que
où elles sont enregistrées.
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.
- <ph type="x-smartling-placeholder"></ph>
Créez des identifiants client OAuth pour une application de bureau. Pour exécuter l'exemple
enregistrez les identifiants dans un fichier JSON nommé
client_secrets.json
dans votre dans votre répertoire local.
- <ph type="x-smartling-placeholder"></ph> Choisissez un niveau d'autorisation compatible avec l'authentification des utilisateurs.
Importer en tant que pièce jointe
Pour importer du contenu multimédia et le joindre à un message, transmettez le code suivant dans votre requête :
- Spécifiez le champ d'application de l'autorisation
chat.messages.create
ouchat.messages
. - Appelez les méthodes Google Chat suivantes:
<ph type="x-smartling-placeholder">
- </ph>
- Pour importer le fichier, appelez la méthode
Méthode
upload
sur la ressourceMedia
.- Définissez
parent
sur le nom de l'espace qui héberge le fichier. - Dans
body
(le corps de la requête), définissezfilename
sur le nom de l'élément en pièce jointe. - Définissez
media_body
comme instance du fichier à importer.
- Définissez
- Pour créer un message auquel le fichier importé est joint, appelez la méthode
Méthode
create
le RessourceMessages
.- Définissez
attachment
comme réponse de l'appel de la méthode Méthodeupload
le RessourceMedia
.attachment
accepte une liste.
- Définissez
- Pour importer le fichier, appelez la méthode
Méthode
L'exemple suivant permet d'importer un fichier image PNG et de le joindre à un message.
Python
- Dans votre répertoire de travail, créez un fichier nommé
chat_media_and_attachment_upload.py
Ajoutez 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( 'client_secrets.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
SPACE
par le nom de l'espace pour la pièce jointe. Pour l'obtenir, Méthodespaces.list
dans l'API Chat ou via l'URL d'un espace.Dans votre répertoire de travail, créez 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 considérations
Lorsque vous vous préparez à importer des fichiers et à les joindre à des messages, notez ces Limites et considérations:
- Vous pouvez importer des fichiers d'une taille maximale de 200 Mo.
- Certains types de fichiers ne sont pas compatibles et ne peuvent pas être importés. Pour en savoir plus, consultez Types de fichiers bloqués dans Google Chat
- Votre message doit omettre widgets accessoires.