In dieser Anleitung wird beschrieben, wie Sie mit der Methode upload für die Ressource Media der Google Chat API Medien (eine Datei) in Google Chat hochladen und sie dann an eine Nachricht anhängen.
Wenn der Nutzer eine Nachricht an Ihre App sendet, sendet Google Chat ein
MESSAGE Interaktionsereignis.
Das von Ihrer App empfangene Interaktionsereignis enthält einen Anfragetext, der die JSON-Nutzlast darstellt, die das Interaktionsereignis enthält, einschließlich aller Anhänge. Die Daten im Anhang unterscheiden sich je nachdem, ob der Anhang hochgeladener Inhalt (eine lokale Datei) oder eine in Drive gespeicherte Datei ist. Die Ressource
Media stellt eine in Google Chat hochgeladene Datei dar, z. B. Bilder, Videos und Dokumente.
Die
Attachment Ressource
stellt eine Instanz von Medien – eine Datei – dar, die an eine Nachricht angehängt ist. Die Ressource Attachment enthält die Metadaten zum Anhang, z. B. wo er gespeichert ist.
Vorbereitung
Python
- Ein Google Workspace-Konto für Unternehmen oder Enterprise mit Zugriff auf Google Chat.
- Umgebung einrichten:
- Google Cloud-Projekt erstellen.
- OAuth-Zustimmungsbildschirm konfigurieren.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Google API-Clientbibliothek für Python.
-
Erstellen Sie Anmeldedaten für die OAuth-Client-ID für eine Desktopanwendung. Wenn Sie das Beispiel in dieser
Anleitung ausführen möchten, speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
credentials.jsonin Ihrem lokalen Verzeichnis.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Als Dateianhang hochladen
Wenn Sie Medien hochladen und an eine Nachricht anhängen möchten, übergeben Sie Folgendes in Ihrer Anfrage:
- Geben Sie den
chat.messages.createoderchat.messagesAutorisierungsbereich an. - Rufen Sie die folgenden Google Chat-Methoden auf:
- Rufen Sie die
uploadMethode für dieMediaRessource auf, um die Datei hochzuladen.- Setzen Sie
parentauf den Namen des Bereichs, in dem sich die Datei befindet. - Setzen Sie in
body(dem Anfragetext)filenameauf den Namen des hochgeladenen Dateianhangs. - Legen Sie
media_bodyals Instanz der hochzuladenden Datei fest.
- Setzen Sie
- Rufen Sie die
createMethode für dieMessagesRessourceauf, um eine Nachricht mit der angehängten hochgeladenen Datei zu erstellen.- Legen Sie
attachmentals Antwort auf den Aufruf deruploadMethode für dieMediaRessource fest. Das Feldattachmentakzeptiert eine Liste.
- Legen Sie
- Rufen Sie die
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.pyein: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()Ersetzen Sie im Code
SPACEdurch den Namen des Bereichs, in den Sie den Anhang hochladen möchten. Sie können ihn mit der Methodespaces.listin der Chat API oder über die URL eines Bereichs abrufen.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 mit Details zur hochgeladenen Datei enthält.
Einschränkungen und Überlegungen
Beachten Sie beim Hochladen von Dateien und Anhängen an Nachrichten die folgenden Einschränkungen und Überlegungen:
- 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 darf keine Zubehör-Widgets enthalten.