Menghubungkan aplikasi Chat dengan layanan & amp; alat lainnya

Meskipun aplikasi sangat canggih, aplikasi tersebut sering bekerja sama dengan sistem lain dan memerlukan aplikasi pendamping untuk menghubungkan akun, memberi otorisasi akses data, menampilkan data tambahan, atau mengonfigurasi preferensi pengguna.

Minta konfigurasi aplikasi

Selain menampilkan URL sebagai bagian dari balasan normal, aplikasi dapat menampilkan URL konfigurasi secara pribadi kepada pengguna sebagai respons atas pesan.

Menampilkan URL konfigurasi

Jika menyelesaikan permintaan memerlukan konfigurasi tambahan yang tidak dapat diselesaikan secara langsung di aplikasi, tampilkan respons formulir berikut:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "<your-config-URL>"
  }
}

Hal ini akan memberi tahu Google Chat untuk menampilkan perintah pribadi kepada pengguna, dengan link untuk mengunjungi URL konfigurasi yang disediakan untuk autentikasi, otorisasi, atau konfigurasi. Respons permintaan-config saling eksklusif dengan pesan respons reguler. Teks, kartu, atau atribut lainnya diabaikan.

Aplikasi meminta pengguna untuk memberikan URL konfigurasi.

Setiap peristiwa ke aplikasi Anda juga menyertakan parameter configCompleteRedirectUrl. URL ini harus dienkode di URL konfigurasi untuk digunakan setelah proses selesai. Mengalihkan ke URL ini memberi sinyal ke Google Chat bahwa permintaan konfigurasi telah dipenuhi.

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

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

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

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

Saat peristiwa dikirim ulang dengan cara ini, biasanya acara harus identik dengan acara asli; namun, ada beberapa situasi saat peristiwa mungkin berbeda. Misalnya, saat pesan menyebutkan aplikasi A dan aplikasi B, pengguna akan dapat mengedit teks pesan jika aplikasi A merespons dengan pesan reguler sebelum mengautentikasi dengan aplikasi B. Dalam hal ini, aplikasi B akan menerima teks pesan yang diedit setelah pengguna menyelesaikan autentikasi.

Mengidentifikasi pengguna dalam pesan aplikasi

Setiap pesan yang dikirim ke aplikasi Anda menyertakan identitas pengguna yang berinteraksi dengan aplikasi tersebut.

Contoh fragmen JSON di bawah ini menunjukkan format identitas pengguna yang diharapkan dalam pesan ke aplikasi Anda.

{
  ...,
  "user": {
    "name": "users/12345678901234567890",
    "displayName": "Sasha",
    "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
    "email": "sasha@example.com"
  }
}

Gunakan nilai properti users.name sebagai ID utama untuk pengguna. Nilainya adalah ID yang stabil dan unik untuk setiap pengguna.

Mengidentifikasi pengguna Chat di luar Google Chat

Dalam beberapa kasus, seperti meminta otorisasi OAuth untuk API, aplikasi Anda perlu menautkan ke URL di luar Google Chat sambil 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 dikaitkan dengan ID dari Google Chat.

Meskipun kedua ID ini tidak sama persis, keduanya mudah dikonversi. Untuk mengonversi nilai klaim sub menjadi nama pengguna Google Chat, tambahkan nilai tersebut di awal dengan "users/". Misalnya, nilai klaim 123 setara dengan nama pengguna users/123 dalam pesan ke aplikasi Chat Anda.

Contoh Lengkap

Aplikasi Profil Saya menunjukkan cara menggunakan respons REQUEST_CONFIG untuk memulai konfigurasi aplikasi dan menggunakan token identitas dari respons Login dengan Google untuk mengidentifikasi pengguna.