Panduan ini menjelaskan cara menggunakan metode upload pada resource Media Google Chat API untuk mengupload media (file) ke Google Chat, lalu melampirkannya ke pesan.
Saat pengguna mengirim pesan ke aplikasi Anda, Google Chat akan mengirimkan peristiwa interaksi
MESSAGE.
Peristiwa interaksi yang diterima oleh aplikasi Anda mencakup isi permintaan, yang merupakan payload JSON yang mewakili peristiwa interaksi, termasuk lampiran apa pun. Data dalam lampiran berbeda-beda, bergantung pada apakah lampiran tersebut adalah konten yang diupload (file lokal) atau file yang disimpan di Drive. Resource
Media mewakili file yang diupload ke Google Chat, seperti gambar, video, dan dokumen.
Resource
Attachment mewakili instance media—file—yang dilampirkan ke pesan.
Resource Attachment mencakup metadata tentang lampiran, seperti tempat lampiran disimpan.
Prasyarat
Python
- Siapkan lingkungan Anda:
- Buat project Google Cloud.
- Konfigurasikan layar izin OAuth.
- Aktifkan dan konfigurasi Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- Instal Library Klien Google APIPython .
-
Buat kredensial ID klien OAuth untuk aplikasi desktop. Untuk menjalankan contoh dalam panduan ini, simpan kredensial sebagai file JSON bernama
credentials.jsonke direktori lokal Anda.
- Pilih cakupan otorisasi yang mendukung autentikasi pengguna.
Mengupload sebagai lampiran file
Untuk mengupload media dan melampirkannya ke pesan, teruskan hal berikut dalam permintaan Anda:
- Tentukan cakupan otorisasi
chat.messages.createatauchat.messages. - Panggil metode Google Chat berikut:
- Untuk mengupload file, panggil metode
uploadpadaMediaresource.- Tetapkan
parentke nama ruang yang menghosting file. - Di
body(isi permintaan), tetapkanfilenameke nama lampiran file yang diupload. - Tetapkan
media_bodysebagai instance file yang akan diupload.
- Tetapkan
- Untuk membuat pesan dengan file yang diupload dilampirkan, panggil metode
createpadaMessagesresource.
- Untuk mengupload file, panggil metode
Contoh berikut mengupload file gambar PNG dan melampirkannya ke pesan.
Python
- Di direktori kerja Anda, buat file bernama
chat_media_and_attachment_upload.py. Sertakan kode berikut di
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()Dalam kode, ganti
SPACEdengan nama ruang untuk mengupload lampiran, yang dapat Anda peroleh dari metodespaces.listdi Chat API, atau dari URL ruang.Di direktori kerja Anda, buat dan jalankan contoh:
python3 chat_media_and_attachment_upload.py
Chat API menampilkan isi respons yang berisi attachmentDataRef dengan detail tentang file yang diupload.
Batas dan pertimbangan
Saat Anda bersiap mengupload file dan melampirkannya ke pesan, perhatikan batas dan pertimbangan berikut:
- Anda dapat mengupload ukuran file hingga 200 MB.
- Beberapa jenis file tidak didukung, dan tidak dapat diupload. Untuk mengetahui detailnya, lihat Jenis file yang diblokir di Google Chat.
- Pesan Anda tidak boleh menyertakan widget aksesori.