Menghubungkan aplikasi Chat dengan layanan dan alat lainnya

Halaman ini menjelaskan cara menghubungkan aplikasi Google Chat dengan layanan atau alat di luar Google Chat. Meskipun sudah dapat diandalkan, aplikasi Chat sering kali berfungsi bersama sistem lain dan memerlukan aplikasi pendamping untuk menghubungkan akun, mengizinkan akses data, menampilkan data tambahan, atau mengonfigurasi preferensi pengguna.

Meminta konfigurasi aplikasi Chat dari pengguna

Jika penyelesaian permintaan memerlukan konfigurasi tambahan yang tidak dapat diselesaikan secara langsung di aplikasi Chat, tampilkan URL konfigurasi kepada pengguna sebagai bagian dari balasan normal, atau tampilkan secara pribadi, dalam bentuk berikut:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

Hal ini akan memberi tahu Google Chat untuk menampilkan dialog pribadi kepada pengguna, dengan CONFIGURATION_URL sebagai link bagi pengguna yang dapat dikunjungi untuk autentikasi, otorisasi, atau konfigurasi tambahan. Respons REQUEST_CONFIG bersifat eksklusif satu sama lain dengan pesan respons reguler. Teks, kartu, atau atribut lainnya akan diabaikan.

Menyelesaikan permintaan konfigurasi

Setiap peristiwa interaksi MESSAGE yang diterima aplikasi Chat Anda juga menyertakan parameter configCompleteRedirectUrl. URL ini harus dienkode dalam URL konfigurasi Anda untuk digunakan setelah proses selesai. Mengalihkan ke URL ini memberikan sinyal ke Google Chat bahwa permintaan konfigurasi telah terpenuhi.

Saat aplikasi Chat Anda dimulai, alurnya bergantung pada pesan khusus yang diterima. Merespons pesan seperti @app help, aplikasi Chat harus merespons dengan pesan tanpa memerlukan konfigurasi tambahan.

Saat pengguna berhasil dialihkan ke configCompleteRedirectUrl yang disediakan dalam pesan asli, Google Chat akan melakukan langkah-langkah berikut:

  1. Menghapus perintah yang ditampilkan kepada pengguna yang melakukan inisialisasi.
  2. Konversikan pesan asli menjadi publik, sehingga dapat dilihat oleh anggota ruang lainnya.
  3. Mengirim pesan asli ke aplikasi Chat yang sama untuk kedua kalinya.

Mengunjungi configCompleteRedirectUrl hanya memengaruhi satu pesan pengguna. Jika pengguna telah mencoba mengirim pesan ke aplikasi Chat beberapa kali, dan akibatnya menerima beberapa perintah, mengklik dialog tertentu serta menyelesaikan proses autentikasi dan konfigurasi hanya akan memengaruhi pesan tersebut. Pesan lainnya tidak diubah.

Jika peristiwa interaksi MESSAGE dikirim ulang dengan cara ini, peristiwa tersebut harus identik dengan peristiwa aslinya. Namun, ada beberapa situasi saat peristiwa interaksi MESSAGE dapat berbeda. Misalnya, jika pesan menyebutkan aplikasi Chat A dan aplikasi Chat B, pengguna dapat mengedit pesan tersebut jika aplikasi Chat A merespons dengan pesan reguler sebelum melakukan autentikasi dengan aplikasi Chat B. Dalam hal ini, aplikasi Chat B menerima teks pesan yang diedit setelah pengguna menyelesaikan autentikasi dan konfigurasi.

Mengautentikasi pengguna Chat di luar Chat

Dalam beberapa kasus, seperti meminta otorisasi OAuth untuk API, aplikasi Anda harus ditautkan ke URL di luar Chat dengan tetap mempertahankan identitas pengguna. Cara terbaik untuk mengidentifikasi pengguna dalam kasus ini adalah dengan melindungi aplikasi tujuan dengan Login dengan Google.

Gunakan token identitas yang dikeluarkan saat login untuk mendapatkan ID pengguna. Klaim sub berisi ID unik pengguna dan dapat dikorelasikan dengan ID pengguna dari Google Chat.

Meskipun tidak persis sama, kedua ID tersebut dapat dipaksa. Untuk mengonversi nilai klaim sub ke users/{user} Google Chat, tambahkan nilai dengan users/. Misalnya, nilai klaim 123 setara dengan nama pengguna users/123 dalam pesan ke aplikasi Chat Anda.