Menghubungkan aplikasi Chat dengan layanan dan alat lainnya

Halaman ini menjelaskan cara menghubungkan aplikasi Google Chat dengan layanan atau alat yang berada di luar Google Chat. Meskipun aplikasi Chat sangat canggih, aplikasi ini sering kali bekerja bersama sistem lain dan memerlukan aplikasi pendamping untuk menghubungkan akun, mengizinkan akses data, menampilkan data tambahan, atau mengonfigurasi preferensi pengguna.

Prasyarat

Aplikasi Google Chat yang dikonfigurasi untuk menerima dan merespons peristiwa interaksi. Untuk membuat aplikasi Chat interaktif, selesaikan salah satu panduan memulai berikut berdasarkan arsitektur aplikasi yang ingin Anda gunakan:

Meminta konfigurasi aplikasi Chat dari pengguna

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

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

Hal ini memberi tahu Google Chat untuk menampilkan perintah pribadi kepada pengguna, dengan CONFIGURATION_URL adalah link yang dapat dikunjungi pengguna untuk melakukan autentikasi, otorisasi, atau konfigurasi tambahan. Respons REQUEST_CONFIG tidak dapat muncul bersamaan dengan pesan respons reguler. Teks, kartu, atau atribut lainnya akan diabaikan.

Menyelesaikan permintaan konfigurasi

Setiap peristiwa interaksi MESSAGE, ADDED_TO_SPACE, dan APP_COMMAND yang diterima aplikasi Chat Anda juga menyertakan kolom configCompleteRedirectUrl. Anda harus mengenkode URL ini di URL konfigurasi untuk digunakan setelah proses selesai. Pengalihan ke URL ini memberi sinyal kepada Google Chat bahwa permintaan konfigurasi telah dipenuhi.

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

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

  1. Menghapus perintah yang ditampilkan kepada pengguna yang memulai.
  2. Mengonversi pesan asli menjadi publik, sehingga dapat dilihat oleh anggota ruang lainnya.
  3. Kirim 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 sebagai hasilnya menerima beberapa perintah, mengklik perintah tertentu dan menyelesaikan proses autentikasi dan konfigurasi hanya akan memengaruhi pesan tertentu tersebut. Pesan lainnya tidak berubah.

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, saat pesan menyebutkan aplikasi Chat A dan aplikasi Chat B, pengguna dapat mengedit pesan jika aplikasi Chat A merespons dengan pesan biasa 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 perlu menautkan ke URL di luar Chat sambil mempertahankan identitas pengguna. Cara terbaik untuk mengidentifikasi pengguna dalam kasus ini adalah dengan melindungi aplikasi tujuan menggunakan Login dengan Google.

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

Meskipun kedua ID tidak persis sama, keduanya dapat dipaksa. Untuk memaksa 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.