Questa guida spiega come utilizzare il metodo upload
nella risorsa Media
di
l'API Google Chat per caricare elementi multimediali (un file) in Google Chat e quindi allegarli a
un messaggio.
Quando l'utente invia un messaggio alla tua app, Google Chat invia un
Evento di interazione MESSAGE
.
L'evento di interazione ricevuto dalla tua app include un corpo della richiesta, ovvero
Payload JSON che rappresenta l'evento di interazione, inclusi eventuali allegati. La
dati nell'allegato sono diversi a seconda che l'allegato sia
contenuti caricati (un file locale) o è un file archiviato su Drive. La
Media
risorsa
rappresenta un file caricato su Google Chat, come immagini, video e documenti.
La
Attachment
risorsa
rappresenta un'istanza di un elemento multimediale, ovvero un file, allegato a un messaggio. Attachment
La risorsa include i metadati sull'allegato, ad esempio
dove viene salvato.
Prerequisiti
Python
- Un'azienda o un'impresa Google Workspace con accesso a Google Chat.
- Configura l'ambiente:
- Creare un progetto Google Cloud.
- Configura la schermata per il consenso OAuth.
- Abilita e configura l'API Google Chat con un nome, l'icona e la descrizione dell'app Chat.
- Installa il Python Libreria client delle API di Google.
-
Creare credenziali con ID client OAuth per un'applicazione desktop. Per eseguire l'esempio in questo
guida, salva le credenziali come file JSON denominato
client_secrets.json
nel tuo nella directory locale.
- Scegli un ambito di autorizzazione che supporti l'autenticazione degli utenti.
Carica come file allegato
Per caricare contenuti multimediali e allegarli a un messaggio, trasmetti quanto segue nel tuo richiesta:
- Specifica l'ambito dell'autorizzazione
chat.messages.create
ochat.messages
. - Chiama i seguenti metodi di Google Chat:
- Per caricare il file, richiama il metodo
Metodo
upload
sulla risorsaMedia
.- Imposta
parent
sul nome dello spazio che ospita il file. - In
body
(il corpo della richiesta), impostafilename
sul nome dell'elemento caricato allegato. - Imposta
media_body
come istanza del file da caricare.
- Imposta
- Per creare un messaggio con il file caricato allegato, richiama il metodo
Metodo
create
ilMessages
risorsa.- Imposta
attachment
come risposta alla chiamata al Metodoupload
ilMedia
risorsa.attachment
accetta un elenco.
- Imposta
- Per caricare il file, richiama il metodo
Metodo
L'esempio seguente carica un file immagine PNG e lo allega a un messaggio.
Python
- Nella directory di lavoro, crea un file denominato
chat_media_and_attachment_upload.py
. Includi il seguente codice in
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()
Nel codice, sostituisci
SPACE
con il nome dello spazio per caricare l'allegato, che puoi ottenere Metodospaces.list
nell'API Chat o dall'URL di uno spazio.Nella directory di lavoro, crea ed esegui l'esempio:
python3 chat_media_and_attachment_upload.py
L'API Chat restituisce un corpo della risposta contenente
attachmentDataRef
con i dettagli sul file caricato.
Limiti e considerazioni
Quando ti prepari a caricare i file e a allegarli ai messaggi, prendi nota di questi limiti e considerazioni:
- Puoi caricare file di dimensioni fino a 200 MB.
- Alcuni tipi di file non sono supportati e non possono essere caricati. Per maggiori dettagli, vedi Tipi di file bloccati in Google Chat
- Il messaggio deve essere omesso widget di accessori.
Argomenti correlati
- Scaricare contenuti multimediali come file allegato
- Recuperare i metadati relativi a un allegato di un messaggio