Panduan ini menjelaskan cara menyiapkan dan menggunakan akun layanan untuk mengakses REST API Google Chat atas nama aplikasi Chat. Pertama, panduan ini akan memandu Anda mempelajari cara membuat akun layanan. Kemudian, bagian ini menunjukkan cara menulis skrip yang menggunakan akun layanan untuk mengautentikasi dengan Chat API dan memposting pesan di ruang Chat.
Aplikasi Chat dapat menggunakan akun layanan untuk melakukan autentikasi saat memanggil REST API Google Chat secara asinkron sehingga aplikasi tersebut dapat:
- Kirim pesan ke Google Chat dengan
spaces.messages.create
ke:- Memberi tahu pengguna saat tugas latar belakang yang berjalan lama selesai dijalankan.
- Beri tahu pengguna bahwa server telah offline.
- Minta staf dukungan pelanggan untuk menangani kasus pelanggan yang baru dibuka.
- Perbarui pesan yang dikirim sebelumnya dengan
spaces.messages.update
ke:- Ubah status operasi yang sedang berlangsung.
- Memperbarui penerima tugas atau batas waktu.
- Cantumkan pengguna di ruang dengan
spaces.members.list
untuk:- Melihat siapa saja yang ada di ruang.
- Verifikasi keanggotaan ruang mencakup semua orang dalam tim.
Saat diautentikasi dengan akun layanan, untuk mendapatkan data tentang atau melakukan tindakan di ruang Chat, aplikasi Chat harus memiliki keanggotaan di ruang. Misalnya, untuk mencantumkan anggota ruang, atau membuat pesan di ruang, aplikasi Chat harus menjadi anggota ruang itu sendiri.
Jika aplikasi Chat Anda perlu mengakses data pengguna atau melakukan tindakan atas nama pengguna, lakukan autentikasi sebagai pengguna.
Jika Anda merupakan administrator domain, Anda dapat memberikan delegasi otoritas seluruh domain untuk mengizinkan akun layanan aplikasi mengakses data pengguna Anda tanpa mengharuskan setiap pengguna untuk memberikan izin. Setelah mengonfigurasi delegasi di seluruh domain, Anda dapat melakukan panggilan API menggunakan akun layanan untuk meniru identitas akun pengguna. Meskipun akun layanan digunakan untuk autentikasi, delegasi seluruh domain akan meniru identitas pengguna dan dianggap sebagai autentikasi pengguna. Setiap fungsi yang memerlukan autentikasi pengguna, Anda dapat menggunakan delegasi di seluruh domain.
Untuk mempelajari lebih lanjut kapan aplikasi Chat memerlukan autentikasi dan jenis autentikasi yang akan digunakan, lihat Jenis autentikasi yang diperlukan di ringkasan autentikasi dan otorisasi Chat API.
Prasyarat
Untuk menjalankan contoh dalam panduan ini, Anda memerlukan prasyarat berikut:
Python
- Python 3.6 atau yang lebih baru
- Alat pengelolaan paket pip
Library klien Google untuk Python. Untuk menginstalnya, jalankan perintah berikut di antarmuka command line Anda:
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
Akun Google Workspace dengan akses ke Google Chat.
Project Google Cloud dengan Chat API diaktifkan. Untuk membuat project dan mengaktifkan API, lihat Membuat project dan mengaktifkan API.
Aplikasi Chat yang dipublikasikan dengan keanggotaan di ruang Chat:
- Untuk membuat dan memublikasikan aplikasi Chat, lihat Mem-build aplikasi Google Chat dengan Cloud Functions.
- Untuk menambahkan aplikasi Chat ke ruang Chat, lihat Menambahkan aplikasi ke ruang atau percakapan di Google Chat.
Langkah 1: Buat akun layanan di Google Cloud Console
Buat akun layanan yang akan digunakan aplikasi Chat Anda untuk mengakses Google API.
Membuat akun layanan:
Untuk membuat akun layanan, ikuti langkah-langkah berikut:
- Di Google Cloud Console, buka Menu > IAM & Admin > Akun Layanan.
- Klik Create service account.
- Isi detail akun layanan, lalu klik Buat dan lanjutkan.
- Opsional: Tetapkan peran ke akun layanan Anda untuk memberikan akses ke resource project Google Cloud. Untuk mengetahui detail selengkapnya, lihat Memberikan, mengubah, dan mencabut akses ke resource.
- Klik Continue.
- Opsional: Masukkan pengguna atau grup yang dapat mengelola dan melakukan tindakan dengan akun layanan ini. Untuk detail selengkapnya, lihat Mengelola peniruan identitas akun layanan.
- Klik Selesai. Catat alamat email untuk akun layanan.
Akun layanan akan muncul di halaman akun layanan. Berikutnya, buat kunci pribadi untuk akun layanan.
Buat kunci pribadi
Untuk membuat kunci pribadi bagi akun layanan, ikuti langkah-langkah ini:
- Di Google Cloud Console, buka Menu > IAM & Admin > Akun Layanan.
- Pilih akun layanan Anda.
- Klik Keys > Add key > Create new key.
- Pilih JSON, lalu klik Buat.
Pasangan kunci umum/pribadi baru Anda akan dibuat dan didownload ke mesin Anda sebagai file baru. File ini adalah satu-satunya salinan kunci ini. Untuk informasi tentang cara menyimpan kunci Anda dengan aman, lihat Mengelola kunci akun layanan.
- Klik Tutup.
Untuk informasi selengkapnya tentang akun layanan, lihat akun layanan di dokumentasi IAM Google Cloud.
Langkah 2: Tulis skrip yang menggunakan akun layanan untuk mengautentikasi dengan Chat REST API
Kode berikut melakukan autentikasi dengan Chat REST API menggunakan akun layanan, lalu memposting pesan ke ruang Chat:
Python
- Di direktori kerja, buat file dengan nama
chat_app_auth.py
. Sertakan kode berikut di
chat_app_auth.py
:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'service_account.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE_NAME', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
Dalam kode, ganti
SPACE_NAME
dengan nama ruang, yang dapat Anda peroleh dari metodespaces.list
di Chat API, atau dari URL ruang.
Langkah 3: Jalankan contoh lengkap
Di direktori kerja, buat dan jalankan contoh:
Python
python3 chat_app_auth.py
Skrip Anda membuat permintaan yang diautentikasi ke Chat REST API, yang merespons dengan memposting pesan di ruang Chat sebagai aplikasi Chat.
Memecahkan masalah contoh
Bagian ini menjelaskan masalah umum yang mungkin Anda alami saat mencoba menjalankan contoh ini.
Anda tidak diizinkan menggunakan aplikasi ini
Saat menjalankan chat_app_auth.py
, Anda mungkin menerima error yang menyatakan:
<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}/messages?alt=json returned "You are not permitted to use this app". Details: "You are not permitted to use this app">
Pesan error ini berarti aplikasi Chat tidak memiliki izin untuk memposting pesan Chat di ruang Chat tempat aplikasi tersebut mencoba memposting.
Untuk mengatasi error, tambahkan aplikasi Chat ke ruang Chat
yang ditentukan di chat_app_auth.py
.
Langkah berikutnya
Pelajari hal lain yang dapat dilakukan Chat API dengan meninjau dokumentasi referensi Chat API.