Menerima dan merespons peristiwa interaksi

Halaman ini menjelaskan cara aplikasi Google Chat Anda dapat menerima dan merespons interaksi pengguna, yang juga dikenal sebagai peristiwa interaksi aplikasi Google Chat.

Halaman ini menjelaskan cara melakukan hal berikut:

  • Konfigurasi aplikasi Chat Anda untuk menerima peristiwa interaksi.
  • Memproses peristiwa interaksi di infrastruktur Anda.
  • Jika sesuai, respons peristiwa interaksi.

Prasyarat

Jenis peristiwa interaksi

Peristiwa interaksi aplikasi Google Chat mewakili tindakan apa pun yang dilakukan pengguna untuk memanggil atau berinteraksi dengan aplikasi Chat, seperti @menyebut aplikasi Chat atau menambahkannya ke ruang.

Saat pengguna berinteraksi dengan aplikasi Chat, Google Chat akan mengirimkan peristiwa interaksi ke aplikasi Chat, yang ditampilkan sebagai jenis Event di Chat API. Aplikasi Chat dapat menggunakan peristiwa untuk memproses interaksi, dan secara opsional, merespons dengan pesan.

Untuk setiap jenis interaksi pengguna, Google Chat mengirimkan jenis peristiwa interaksi yang berbeda yang membantu aplikasi Chat Anda menangani setiap jenis peristiwa dengan tepat. Jenis peristiwa interaksi diwakili menggunakan objek eventType.

Misalnya, Google Chat menggunakan jenis peristiwa ADDED_TO_SPACE untuk setiap interaksi saat pengguna menambahkan aplikasi Chat ke ruang, sehingga aplikasi Chat dapat langsung merespons dengan pesan selamat datang di ruang.

Aplikasi chat memposting pesan selamat datang.
Gambar 1: Saat pengguna menambahkan aplikasi Chat ke ruang, aplikasi Chat menerima peristiwa interaksi ADDED_TO_SPACE yang ditangani aplikasi Chat untuk mengirim pesan selamat datang di ruang.

Tabel berikut menunjukkan interaksi pengguna umum, jenis peristiwa interaksi yang diterima aplikasi Chat, dan cara aplikasi Chat biasanya merespons:

Interaksi pengguna eventType Respons umum dari aplikasi Chat
Pengguna mengirim pesan ke aplikasi Chat. Misalnya, @menyebut aplikasi Chat atau menggunakan perintah garis miring. MESSAGE Aplikasi Chat merespons berdasarkan konten pesan. Misalnya, aplikasi Chat membalas perintah garis miring /about dengan pesan yang menjelaskan tugas yang dapat dilakukan aplikasi Chat.
Pengguna menambahkan aplikasi Chat ke ruang. ADDED_TO_SPACE Aplikasi Chat mengirimkan pesan aktivasi yang menjelaskan fungsi aplikasi dan cara pengguna di ruang berinteraksi dengannya.
Pengguna menghapus aplikasi Chat dari ruang. REMOVED_FROM_SPACE Aplikasi Chat menghapus notifikasi masuk yang dikonfigurasi untuk ruang (seperti menghapus webhook) dan menghapus semua penyimpanan internal.
Pengguna mengklik tombol pada kartu dari pesan, dialog, atau halaman beranda aplikasi Chat. CARD_CLICKED Aplikasi Chat memproses dan menyimpan data apa pun yang dikirimkan pengguna, atau menampilkan kartu lain.
Pengguna membuka halaman beranda aplikasi Chat dengan mengklik tab Beranda dalam pesan 1:1. APP_HOME Aplikasi Chat menampilkan kartu statis atau interaktif dari halaman beranda.
Pengguna mengirimkan formulir dari halaman beranda aplikasi Chat. SUBMIT_FORM Aplikasi Chat memproses dan menyimpan data apa pun yang dikirimkan pengguna, atau menampilkan kartu lain.
Pengguna memanggil perintah dengan menggunakan perintah cepat. APP_COMMAND Aplikasi Chat merespons berdasarkan perintah yang dipanggil. Misalnya, aplikasi Chat membalas perintah Tentang dengan pesan yang menjelaskan tugas yang dapat dilakukan aplikasi Chat.

Untuk melihat semua peristiwa interaksi yang didukung, lihat dokumentasi referensi EventType.

Peristiwa interaksi dari dialog

Jika aplikasi Chat Anda membuka dialog, peristiwa interaksi berisi informasi tambahan berikut yang dapat Anda gunakan untuk memproses respons:

  • isDialogEvent disetel ke true.
  • DialogEventType memperjelas apakah interaksi memicu dialog untuk terbuka, mengirimkan informasi dari dialog, atau menutup dialog.

Tabel berikut menunjukkan interaksi umum dengan dialog, jenis peristiwa dialog yang sesuai, dan deskripsi tentang cara aplikasi Chat biasanya merespons:

Interaksi pengguna dengan dialog Jenis peristiwa dialog Respons umum
Pengguna memicu permintaan dialog. Misalnya, mereka menggunakan perintah garis miring atau mengklik tombol dari pesan. REQUEST_DIALOG Aplikasi Chat akan membuka dialog.
Pengguna mengirimkan informasi dalam dialog dengan mengklik tombol. SUBMIT_DIALOG Aplikasi Chat akan membuka dialog lain atau menutup dialog untuk menyelesaikan interaksi.
Pengguna keluar atau menutup dialog sebelum mengirimkan informasi. CANCEL_DIALOG Secara opsional, aplikasi Chat dapat merespons dengan pesan baru, atau memperbarui pesan atau kartu tempat pengguna membuka dialog.

Untuk mengetahui informasi selengkapnya, lihat Membuka dialog interaktif.

Menerima peristiwa interaksi aplikasi Chat

Bagian ini menjelaskan cara menerima dan memproses peristiwa interaksi untuk aplikasi Chat Anda.

Mengonfigurasi aplikasi Chat Anda untuk menerima peristiwa interaksi

Tidak semua aplikasi Chat bersifat interaktif. Misalnya,webhook masuk hanya dapat mengirim pesan keluar dan tidak dapat merespons pengguna. Jika Anda membuat aplikasi Chat interaktif, Anda harus memilih endpoint yang memungkinkan aplikasi Chat Anda menerima, memproses, dan merespons peristiwa interaksi. Untuk mempelajari lebih lanjut cara mendesain aplikasi Chat, lihat Arsitektur penerapan aplikasi Chat.

Untuk setiap fitur interaktif yang ingin Anda buat, Anda harus memperbarui konfigurasi di Chat API agar Google Chat dapat mengirim peristiwa interaksi terkait ke aplikasi Chat Anda:

  1. Di konsol Google Cloud, buka halaman Chat API, lalu klik halaman Configuration:

    Buka halaman Konfigurasi Chat API

  2. Di bagian Fitur interaktif, tinjau setelan dan perbarui berdasarkan fitur yang ingin Anda buat:

    Kolom Deskripsi
    Fungsi Wajib. Kumpulan kolom yang menentukan cara aplikasi Chat dapat berinteraksi dengan pengguna. Secara default, pengguna dapat menemukan dan mengirim pesan ke aplikasi Chat langsung di Google Chat.
    • Bergabung ke ruang dan percakapan grup: Pengguna dapat menambahkan aplikasi Chat ke ruang dan percakapan grup.
    Setelan koneksi Wajib. Endpoint untuk aplikasi Chat, yang merupakan salah satu dari berikut ini:
    • URL endpoint HTTP: Endpoint HTTPS yang menghosting penerapan aplikasi Chat.
    • Apps Script: ID deployment untuk project Apps Script yang menerapkan aplikasi Chat.
    • Nama topik Cloud Pub/Sub: Topik Pub/Sub yang digunakan aplikasi Chat sebagai endpoint untuk berlangganan.
    • Dialogflow: Mendaftarkan aplikasi Chat dengan integrasi Dialogflow. Untuk mengetahui informasi selengkapnya, lihat Membangun aplikasi Dialogflow Google Chat yang memahami bahasa alami.
    Perintah Opsional. Perintah garis miring dan perintah cepat untuk aplikasi Chat. Perintah memungkinkan pengguna meminta tindakan atau menggunakan fitur tertentu dari aplikasi Chat Anda. Untuk mengetahui informasi selengkapnya, lihat Menanggapi perintah aplikasi Google Chat.
    Pratinjau link Opsional. Pola URL yang dikenali aplikasi Chat dan menyediakan konten tambahan saat pengguna mengirim link. Untuk mengetahui informasi selengkapnya, lihat Link pratinjau.
    Visibilitas Opsional. Hingga lima individu, atau satu atau beberapa Grup Google yang dapat melihat dan menginstal aplikasi Chat Anda. Gunakan kolom ini untuk menguji aplikasi Chat Anda, atau untuk membagikan aplikasi Chat kepada tim Anda. Untuk mengetahui informasi selengkapnya, lihat Menguji fitur interaktif.
  3. Klik Simpan. Saat Anda menyimpan konfigurasi aplikasi Chat, aplikasi Chat Anda tersedia untuk pengguna tertentu di organisasi Google Workspace Anda.

Aplikasi Chat Anda kini dikonfigurasi untuk menerima peristiwa interaksi dari Google Chat.

Menangani percobaan ulang panggilan HTTP ke layanan Anda

Jika permintaan HTTPS ke layanan Anda gagal (seperti waktu tunggu habis, kegagalan jaringan sementara, atau kode status HTTPS non-2xx), Google Chat mungkin mencoba lagi pengiriman beberapa kali dalam beberapa menit (tetapi hal ini tidak dijamin). Akibatnya, aplikasi Chat mungkin menerima pesan yang sama beberapa kali dalam situasi tertentu. Jika permintaan berhasil diselesaikan, tetapi menampilkan payload pesan yang tidak valid, Google Chat tidak akan mencoba ulang permintaan.

Memproses atau merespons peristiwa interaksi

Bagian ini menjelaskan cara aplikasi Google Chat dapat memproses dan merespons peristiwa interaksi.

Setelah aplikasi Chat Anda menerima peristiwa interaksi dari Google Chat, aplikasi tersebut dapat merespons dengan berbagai cara. Dalam banyak kasus, aplikasi Chat interaktif membalas pengguna dengan pesan. Aplikasi Google Chat juga dapat mencari beberapa informasi dari sumber data, mencatat informasi peristiwa interaksi, atau hampir semua hal lainnya. Perilaku pemrosesan ini pada dasarnya menentukan aplikasi Google Chat.

Untuk merespons secara sinkron, aplikasi Chat harus merespons dalam waktu 30 detik, dan respons harus diposting di ruang tempat interaksi terjadi. Jika tidak, aplikasi Chat dapat merespons secara asinkron.

Untuk setiap peristiwa interaksi, aplikasi Chat menerima isi permintaan, yaitu payload JSON yang merepresentasikan peristiwa tersebut. Anda dapat menggunakan informasi untuk memproses respons. Untuk contoh payload peristiwa, lihat Jenis peristiwa interaksi aplikasi Chat.

Diagram berikut menunjukkan cara aplikasi Google Chat biasanya memproses atau merespons berbagai jenis peristiwa interaksi:

Arsitektur cara aplikasi Google Chat memproses peristiwa interaksi.

Tampilkan respons secara real time

Peristiwa interaksi memungkinkan aplikasi Chat merespons secara real time, atau secara sinkron. Respons sinkron tidak memerlukan autentikasi.

Untuk merespons secara real time, aplikasi Chat harus menampilkan objek Message. Untuk membalas dengan pesan di ruang, objek Message dapat berisi objek text, cardsV2, dan accessoryWidgets. Untuk menggunakannya dengan jenis respons lainnya, lihat panduan berikut:

Balas dengan pesan

Dalam contoh ini, aplikasi Chat Anda membuat dan mengirim pesan teks setiap kali aplikasi ditambahkan ke ruang. Untuk mempelajari praktik terbaik dalam mengaktifkan pengguna, lihat Memperkenalkan aplikasi Chat Anda kepada pengguna.

Untuk mengirim pesan teks saat pengguna menambahkan aplikasi Chat Anda ke ruang, aplikasi Chat Anda merespons ADDED_TO_SPACE peristiwa interaksi. Untuk merespons peristiwa interaksi ADDED_TO_SPACE dengan pesan teks, gunakan kode berikut:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The event object from Chat API.
 * @param {Object} res The response object from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send(
      'Hello! This function is meant to be used in a Google Chat space.');
  }

  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar
      from Google Chat. Take a look at your schedule today by typing
      `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
      learn what else I can do, type `/help`.'
    });
  }
};

Apps Script

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
function onAddToSpace(event) {

  return {
    'text': 'Hi, Cymbal at your service. I help you manage your calendar
    from Google Chat. Take a look at your schedule today by typing
    `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
    what else I can do, type `/help`.'
  }
}

Contoh kode menampilkan pesan teks berikut:

Contoh pesan orientasi.

Menanggapi secara asinkron

Terkadang aplikasi Chat harus merespons peristiwa interaksi setelah 30 detik atau melakukan tugas di luar ruang tempat peristiwa interaksi dibuat. Misalnya, aplikasi Chat mungkin perlu merespons pengguna setelah menyelesaikan tugas yang berjalan lama. Dalam hal ini, aplikasi Chat dapat merespons secara asinkron dengan memanggil Google Chat API.

Untuk membuat pesan menggunakan Chat API, lihat Membuat pesan. Untuk panduan tentang penggunaan metode Chat API tambahan, lihat Ringkasan Chat API.