Panduan ini menjelaskan cara menggunakan metode upload
pada resource Media
Google Chat API untuk mengupload media (file) ke Google Chat, lalu melampirkannya ke
sebuah pesan.
Saat pengguna mengirim pesan ke aplikasi Anda, Google Chat akan mengirimkan
Peristiwa interaksi MESSAGE
.
Peristiwa interaksi yang diterima oleh aplikasi Anda menyertakan isi permintaan, yang merupakan
Payload JSON yang mewakili peristiwa interaksi, termasuk lampiran apa pun. Tujuan
data dalam lampiran dapat berbeda tergantung
pada apakah lampiran itu
konten yang diupload (file lokal) atau file yang disimpan di Drive. Tujuan
Referensi Media
mewakili file yang diupload ke Google Chat, seperti gambar, video, dan dokumen.
Tujuan
Referensi Attachment
mewakili instance media—sebuah file—yang dilampirkan ke pesan. Attachment
menyertakan metadata tentang lampiran, seperti
di mana data disimpan.
Prasyarat
Python
- Sebuah Business atau Enterprise Akun Google Workspace yang memiliki akses ke Google Chat.
- Python 3.6 atau yang lebih baru
- Alat pengelolaan paket pip
- Library klien Google terbaru. Untuk menginstal atau memperbaruinya,
jalankan perintah berikut di antarmuka command line Anda:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Menyiapkan lingkungan Anda:
- Buat project Google Cloud.
- Konfigurasi layar izin OAuth.
- Aktifkan dan konfigurasikan Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
-
Membuat kredensial client ID OAuth untuk aplikasi desktop. Untuk menjalankan
sampel dalam
panduan, simpan kredensial sebagai file JSON (
client_secrets.json
) ke direktori lokal.
- Pilih cakupan otorisasi yang mendukung autentikasi pengguna.
Upload sebagai lampiran file
Untuk mengupload media dan melampirkannya ke pesan, teruskan teks berikut dalam permintaan::
- Tentukan cakupan otorisasi
chat.messages.create
atauchat.messages
. - Panggil metode Google Chat berikut:
- Untuk mengupload file, panggil metode
Metode
upload
pada resourceMedia
.- Tetapkan
parent
ke nama ruang ruang yang menghosting file. - Di
body
(isi permintaan), tetapkanfilename
ke nama permintaan yang diupload lampiran file. - Tetapkan
media_body
sebagai instance file yang akan diupload.
- Tetapkan
- Untuk membuat pesan dengan lampiran file yang diupload, panggil metode
Metode
create
di ResourceMessages
.- Tetapkan
attachment
sebagai respons dari pemanggilan Metodeupload
di referensiMedia
.attachment
menerima daftar.
- Tetapkan
- Untuk mengupload file, panggil metode
Metode
Contoh berikut mengupload file gambar PNG dan melampirkannya ke pesan.
Python
- Di direktori kerja, 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( '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()
Dalam kode, ganti
SPACE
dengan nama ruang untuk unggah lampiran itu, yang dapat Anda ambil dari Metodespaces.list
di Chat API, atau dari URL ruang.Dalam direktori kerja, build 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 mempersiapkan diri untuk mengunggah file dan melampirkannya ke pesan, perhatikan hal-hal berikut batasan dan pertimbangan:
- Anda dapat mengupload file dengan ukuran 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 harus dihilangkan widget aksesori.