In diesem Leitfaden wird erläutert, wie Sie die Methode upload
für die Ressource Media
von
Google Chat API verwenden, um Medien (eine Datei) in Google Chat hochzuladen und sie dann an
eine Nachricht.
Wenn der Nutzer eine Nachricht an Ihre App sendet, sendet Google Chat eine
MESSAGE
-Interaktionsereignis.
Das von Ihrer App empfangene Interaktionsereignis enthält einen Anfragetext, also den
JSON-Nutzlast, die das Interaktionsereignis darstellt, einschließlich etwaiger Anhänge. Die
Daten im Anhang unterschiedlich sind, je nachdem, ob der Anhang
hochgeladene Inhalte (eine lokale Datei) oder eine in Google Drive gespeicherte Datei. Die
Media
-Ressource
steht für eine in Google Chat hochgeladene Datei, z. B. Bilder, Videos und Dokumente.
Die
Attachment
-Ressource
steht für eine Instanz von Medien – eine Datei –, die an eine Nachricht angehängt ist. Das Attachment
Ressource die Metadaten zum Anhang enthält, z. B.
wo sie gespeichert wird.
Vorbereitung
Python
- Unternehmen Google Workspace-Konto mit Zugriff auf Google Chat:
- Richten Sie Ihre Umgebung ein:
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud-Projekt erstellen
- Konfigurieren Sie den OAuth-Zustimmungsbildschirm.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, und eine Beschreibung der Chat App.
- Installieren Sie die Python Google API-Clientbibliothek
- <ph type="x-smartling-placeholder"></ph>
Erstellen Sie OAuth-Client-ID-Anmeldedaten für eine Desktopanwendung. Um das Beispiel in diesem
sollten Sie die Anmeldedaten als JSON-Datei mit dem Namen
client_secrets.json
in Ihrem lokales Verzeichnis.
- <ph type="x-smartling-placeholder"></ph> Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Als Dateianhang hochladen
Um Medien hochzuladen und an eine Nachricht anzuhängen, übergeben Sie Folgendes in Ihrem Anfrage:
- Geben Sie den Autorisierungsbereich
chat.messages.create
oderchat.messages
an. - Rufen Sie die folgenden Google Chat-Methoden auf:
<ph type="x-smartling-placeholder">
- </ph>
- Rufen Sie zum Hochladen der Datei die Methode
upload
-Methode für dieMedia
-Ressource.- Legen Sie
parent
auf den Namen des Gruppenbereichs fest, in dem die Datei gehostet wird. - Legen Sie in
body
(Anfragetext)filename
auf den Namen der hochgeladenen Datei fest. Dateianhang. - Legen Sie
media_body
als Instanz der hochzuladenden Datei fest.
- Legen Sie
- Um eine Nachricht mit der hochgeladenen Datei zu erstellen, rufen Sie die Methode
create
-Methode amMessages
-Ressource.- Legen Sie
attachment
als Antwort für den Aufruf der Methodeupload
amMedia
-Ressource Dasattachment
akzeptiert eine Liste.
- Legen Sie
- Rufen Sie zum Hochladen der Datei die Methode
Im folgenden Beispiel wird eine PNG-Bilddatei hochgeladen und an eine Nachricht angehängt.
Python
- Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
chat_media_and_attachment_upload.py
Fügen Sie den folgenden Code in
chat_media_and_attachment_upload.py
ein: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()
Ersetzen Sie im Code
SPACE
durch den Namen des Gruppenbereichs, um laden Sie den Anhang hoch. Diesen erhalten Sie im Methodespaces.list
in der Chat API oder über die URL eines Gruppenbereichs.Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:
python3 chat_media_and_attachment_upload.py
Die Chat API gibt einen Antworttext zurück, der
attachmentDataRef
durch Details zur hochgeladenen Datei.
Einschränkungen und Hinweise
Achten Sie auf Folgendes, wenn Sie Dateien hochladen und an Nachrichten anhängen: Einschränkungen und Hinweise:
- Sie können Dateien mit einer Größe von bis zu 200 MB hochladen.
- Einige Dateitypen werden nicht unterstützt und können nicht hochgeladen werden. Weitere Informationen finden Sie unter In Google Chat blockierte Dateitypen
- Ihre Nachricht muss ausgelassen werden. Zubehör-Widgets.