Halaman ini menjelaskan cara aplikasi Google Chat Anda dapat menerima dan merespons interaksi pengguna di Google Chat.
Untuk membangun antarmuka interaktif untuk aplikasi Chat, gunakan komponen berikut:
- Pemicu: Cara pengguna Google Chat dapat memanggil aplikasi Chat, seperti menambahkannya ke ruang atau mengirim pesan ke aplikasi tersebut.
- Objek peristiwa: Data yang diterima aplikasi Chat dari pemicu atau interaksi UI.
- Tindakan: Cara aplikasi Chat dapat merespons interaksi, seperti mengirim pesan atau menampilkan antarmuka pengguna berbasis kartu.
Aplikasi Chat dapat membuat dan menampilkan antarmuka dengan cara berikut:
- Pesan yang dapat berisi teks, kartu statis atau interaktif, dan tombol aksesori.
- Halaman beranda (Beranda Aplikasi) yang muncul di tab Beranda pesan langsung personal dengan aplikasi Chat.
- Dialog, yang merupakan kartu yang terbuka di jendela baru dan biasanya meminta pengguna untuk mengirimkan informasi.
- Pratinjau link, yang merupakan kartu yang menampilkan pratinjau informasi tentang layanan eksternal.
Prasyarat
- Akun Google Workspace Business atau Enterprise dengan akses ke Google Chat.
- Buat project Google Cloud.
- Konfigurasi layar izin OAuth.
- Aktifkan dan konfigurasikan Google Chat API.
Cara kerja interaksi pengguna
Saat pengguna berinteraksi dengan aplikasi Chat, Google Chat akan memanggil pemicu yang dikonfigurasi dan mengirimkan objek peristiwa ke endpoint atau fungsi aplikasi Chat Anda. Aplikasi Chat Anda memproses objek peristiwa dan dapat menampilkan tindakan secara sinkron dalam waktu 30 detik atau merespons secara asinkron menggunakan Chat API.
Diagram berikut menunjukkan cara aplikasi Google Chat memproses dan merespons interaksi pengguna:
Pemicu
Pemicu adalah cara spesifik pengguna memanggil aplikasi Chat menggunakan UI Chat, seperti menggunakan @sebutan atau perintah aplikasi.
Tabel berikut menunjukkan pemicu Chat, deskripsi, dan cara aplikasi Chat biasanya merespons:
| Pemicu | Deskripsi | Respons umum |
|---|---|---|
| Ditambahkan ke ruang |
Pengguna menambahkan aplikasi Chat ke ruang, atau administrator Google Workspace menginstal aplikasi Chat di ruang pesan langsung untuk pengguna di organisasinya. Untuk mempelajari aplikasi Chat yang diinstal oleh administrator, lihat Menginstal aplikasi Marketplace di domain Anda dalam dokumentasi Bantuan Admin Google Workspace. |
Aplikasi Chat mengirimkan pesan orientasi yang menjelaskan fungsinya dan cara pengguna di ruang dapat berinteraksi dengannya. |
| Kirim pesan |
Pengguna berinteraksi dengan aplikasi Chat dalam pesan dengan salah satu cara berikut:
|
Aplikasi Chat merespons berdasarkan konten pesan. Misalnya, aplikasi Chat membalas dengan pesan, melampirkan kartu pratinjau link, atau menyarankan item dalam menu pilihan ganda. |
| Dihapus dari ruang |
Pengguna menghapus aplikasi Chat dari ruang, atau administrator Google Workspace meng-uninstal aplikasi Chat untuk pengguna di organisasinya. Pengguna tidak dapat menghapus aplikasi Chat yang diinstal oleh administrator mereka. Jika pengguna telah menginstal aplikasi Chat sebelumnya, aplikasi Chat akan tetap diinstal, terlepas dari apakah administrator Google Workspace mencoba meng-uninstalnya atau tidak. |
Aplikasi Chat menghapus semua notifikasi masuk yang dikonfigurasi untuk ruang (seperti menghapus webhook) dan mengosongkan semua penyimpanan internal. Aplikasi Chat tidak dapat merespons dengan pesan ke pemicu ini karena aplikasi tersebut bukan lagi anggota ruang. |
| Perintah aplikasi |
Pengguna memanggil perintah aplikasi Chat (seperti perintah garis miring, perintah cepat, atau tindakan pesan). |
Aplikasi Chat merespons perintah. Misalnya, aplikasi akan membalas dengan pesan atau membuka dialog. |
| Beranda Aplikasi |
Pengguna membuka tab Beranda di ruang pesan langsung (DM) personal dengan aplikasi Chat, atau berinteraksi dengan widget di kartu halaman beranda. |
Aplikasi Chat menampilkan objek RenderActions yang mengirimkan kartu halaman beranda (pushCard) atau memperbarui kartu halaman beranda yang ditampilkan (updateCard).
|
Anda mengonfigurasi endpoint atau fungsi callback untuk pemicu ini di Konsol Google Cloud pada halaman Configuration Chat API. Untuk mengetahui petunjuk langkah demi langkah, lihat Mengonfigurasi Google Chat API.
Mengonfigurasi perintah pemicu
Perintah pemicu membantu pengguna menemukan fungsi aplikasi Chat Anda saat mereka membuka pesan langsung personal yang kosong dengan aplikasi Anda. Anda dapat mengonfigurasi hingga tiga perintah pemicu.
Untuk menambahkan dan mengonfigurasi perintah pemicu:
Di konsol Google Cloud, buka halaman Configuration Chat API:
Di bagian Fitur interaktif, cari Perintah pemicu, lalu klik Tambahkan perintah.
Di kolom Peringkat (1-3), masukkan angka dari
1hingga3untuk menentukan urutan tampilan.Di bagian Type selection, pilih perilaku dialog:
- Perintah teks: Mengisi kolom tulis dengan teks yang telah ditentukan saat pengguna mengklik chip perintah.
- Command prompt: Menjalankan perintah garis miring atau perintah cepat yang terdaftar saat diklik. Perintah yang memerlukan argumen tambahan tidak dapat dipilih.
Konfigurasikan perintah berdasarkan pilihan jenis Anda:
Jika Anda memilih perintah teks:
- Di Judul, masukkan judul perintah yang ditampilkan di chip (maksimal 30 karakter).
- Di Teks perintah, masukkan teks yang diisi di kolom tulis (maksimal 60 karakter).
- Opsional: Tambahkan judul dan teks yang dilokalkan untuk pengguna dalam bahasa lain:
- Di bagian Perintah yang dilokalkan, klik Tambahkan bahasa.
- Di bagian Bahasa, pilih bahasa yang didukung dari menu drop-down.
- Di Judul yang Dilokalkan, masukkan judul yang dilokalkan (maksimal 30 karakter).
- Di Teks Perintah yang Dilokalkan, masukkan teks perintah yang dilokalkan (maksimum 60 karakter).
- Ulangi untuk menambahkan bahasa lainnya sesuai kebutuhan.
Jika Anda memilih Command prompt:
- Di Perintah garis miring/Perintah cepat, pilih perintah dari menu drop-down.
Klik Selesai, lalu klik Simpan di bagian bawah halaman.
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 akan mencoba mengirim ulang beberapa kali dalam beberapa menit (tetapi hal ini tidak dijamin). Akibatnya, aplikasi Chat mungkin menerima peristiwa yang sama beberapa kali dalam situasi tertentu. Jika permintaan berhasil diselesaikan, tetapi menampilkan payload respons yang tidak valid, Google Chat tidak akan mencoba ulang permintaan tersebut.
Objek peristiwa
Aplikasi Chat menerima objek peristiwa saat pemicu Chat berjalan, atau saat pengguna Chat berinteraksi dengan UI dari aplikasi Chat (seperti mengklik tombol atau mengirimkan dialog). Objek peristiwa memungkinkan Anda menggunakan data interaksi untuk merespons atau memperbarui UI.
Pada tahun 2025, aplikasi Google Chat diperluas untuk mendukung peristiwa add-on, dan ini telah menjadi default untuk aplikasi Chat baru sejak Juli 2025. Di seluruh dokumentasi Chat, peristiwa add-on adalah jenis peristiwa standar yang ditampilkan dalam panduan dan contoh kode. Dokumentasi untuk peristiwa Chat (untuk aplikasi Chat yang bukan add-on Google Workspace) dipisahkan menjadi bagian yang diciutkan (misalnya, Aplikasi Chat yang bukan add-on: Menerima dan merespons peristiwa interaksi).
Menentukan jenis peristiwa dan respons
Saat aplikasi Chat Anda menerima objek peristiwa, struktur payload dan cara Anda merespons bergantung pada apakah aplikasi Chat Anda dikonfigurasi sebagai add-on Google Workspace.
Untuk mengonfirmasi jenis objek peristiwa yang diterima aplikasi Anda dan cara aplikasi meresponsnya, periksa konfigurasi aplikasi Anda menggunakan tabel berikut:
| Jenis aplikasi | Menerima peristiwa add-on (Default untuk aplikasi baru yang dibuat setelah Juli 2025) |
Menerima peristiwa Chat (Default sebelumnya, sebelum Juli 2025) |
|---|---|---|
| Aplikasi Apps Script Periksa file manifes ( appsscript.json) |
Objek chat dikonfigurasi di dalam addOns:
|
Objek chat dikonfigurasi di root manifes:
|
| Aplikasi lain Periksa halaman Konfigurasi Google Chat API |
Kotak centang "Build this Chat app as a Google Workspace add-on" dicentang. | Kotak centang "Build this Chat app as a Google Workspace add-on" tidak dipilih. |
| Tempat menemukan dokumentasi | Di seluruh panduan dan contoh kode Dokumentasi referensi peristiwa: Objek peristiwa add-on |
Bagian yang diciutkan (misalnya,
Aplikasi Chat yang
bukan add-on: Menerima dan merespons peristiwa
interaksi) Dokumentasi referensi peristiwa: Peristiwa interaksi Chat API |
| Cara merespons | Menampilkan tindakan, seperti DataActions atau
RenderActions.Lihat cara merespons dengan tindakan |
Menampilkan resource Message.Lihat cara merespons dengan pesan |
Payload objek peristiwa
Setiap objek peristiwa add-on menyertakan
commonEventObject
dengan detail host dan platform (hostApp: "CHAT", clientPlatform,
userLocale, userTimezone, parameters, dan formInputs) serta objek
chat
yang berisi konteks khusus Chat:
- Untuk pemicu Beranda Aplikasi (saat pengguna membuka tab Beranda di pesan langsung personal dengan aplikasi Chat), objek
chatberisichat.userdanchat.eventTimetanpa kolompayloadgabungan. Saat pengguna mengklik tombol di kartu halaman beranda, objek peristiwa menyertakanchat.buttonClickedPayloadbersama dengancommonEventObject.parameters(dancommonEventObject.formInputsjika kartu berisi input formulir). - Untuk interaksi ruang dan pesan (Ditambahkan ke ruang, Pesan, Dihapus
dari ruang, Perintah aplikasi, atau interaksi tombol dan widget), objek
chatmencakupchat.user,chat.space,chat.eventTime, dan payload interaksi yang sesuai:messagePayload: Berisispace,message, danconfigCompleteRedirectUrisaat pengguna mengirim pesan.addedToSpacePayload: Berisispace,interactionAdd, danconfigCompleteRedirectUrisaat aplikasi Chat ditambahkan ke ruang.removedFromSpacePayload: Berisispacesaat aplikasi Chat dihapus dari ruang.buttonClickedPayload: Berisispace,message,isDialogEvent, dandialogEventTypesaat pengguna mengklik tombol di kartu atau dialog.widgetUpdatedPayload: Berisispacesaat pengguna berinteraksi dengan widget, seperti mengetik ke dalam menu multipilih dengan sumber data eksternal.appCommandPayload: Berisispace,message,appCommandMetadata,isDialogEvent,dialogEventType, danconfigCompleteRedirectUrisaat pengguna memanggil perintah aplikasi.
Untuk mempelajari objek peristiwa add-on dalam Chat dan aplikasi Google Workspace lainnya, lihat Objek peristiwa.
Mengirim respons
Bagian ini menjelaskan cara aplikasi Chat menggunakan tindakan untuk merespons interaksi pengguna secara sinkron.
Untuk merespons dengan tindakan, aplikasi Chat harus merespons dalam waktu 30 detik, dan respons harus berlaku untuk ruang tempat interaksi terjadi. Respons sinkron ini tidak memerlukan autentikasi. Jika aplikasi Chat Anda memerlukan waktu lebih dari 30 detik atau perlu bertindak di luar ruang, siapkan autentikasi dan respons secara asinkron menggunakan Google Chat API.
Untuk merespons interaksi pengguna secara sinkron, aplikasi Chat Anda menangani objek peristiwa yang masuk dan menampilkan salah satu objek JSON berikut:
DataActions: Membuat atau memperbarui pesan Chat (CreateMessageAction,UpdateMessageAction) atau melampirkan pratinjau link (UpdateInlinePreviewAction) menggunakanchatDataActionMarkup.RenderActions: Membuat, memperbarui, atau menutup halaman beranda atau dialog (pushCard,updateCard,endNavigation: "CLOSE_DIALOG"), atau memberikan saran input dinamis untuk menu multi-pilihan (modifyCard).AuthorizationError: Meminta pengguna dengan kartu otorisasi dasar (basic_authorization_prompt) untuk login atau melakukan autentikasi ke layanan eksternal.
Tabel berikut menunjukkan cara aplikasi Chat dapat merespons dengan
tindakan. Aplikasi Chat dapat menampilkan objek JSON secara langsung atau membuat respons menggunakan AddOnResponseService dan CardService Apps Script.
| Respons aplikasi Chat | Tindakan yang diperlukan untuk ditampilkan (JSON) | Tindakan yang diperlukan untuk mengembalikan (Apps Script) |
|---|---|---|
| Mengirim pesan atau memperbarui pesan. | DataActions (createMessageAction atau updateMessageAction) |
DataActionsResponse |
| Melihat pratinjau link dalam pesan yang dikirim pengguna Chat di ruang. | DataActions (updateInlinePreviewAction) |
DataActionsResponse |
| Me-render atau memperbarui halaman beranda di tab Beranda pesan langsung. | RenderActions (pushCard atau updateCard) |
ActionResponse |
| Membuka, memperbarui, atau menutup dialog. | RenderActions (pushCard, updateCard, atau endNavigation: "CLOSE_DIALOG") |
ActionResponse |
| Untuk mengumpulkan informasi dari kartu atau dialog, sarankan item pilihan berdasarkan apa yang diketik pengguna ke dalam menu pilihan ganda. | RenderActions (modifyCard) |
ActionResponse |
| Minta konfigurasi atau otorisasi untuk layanan eksternal. | AuthorizationError (basic_authorization_prompt) |
AuthorizationException |
Balas dengan pesan
Aplikasi Chat dapat merespons dengan pesan ke salah satu pemicu atau interaksi berikut:
- Pemicu pesan, seperti saat pengguna @menyebut atau mengirim pesan langsung ke aplikasi Chat.
- Pemicu Ditambahkan ke ruang, seperti saat pengguna menginstal aplikasi Chat dari Google Workspace Marketplace atau menambahkannya ke ruang.
- Pemicu perintah aplikasi, seperti saat pengguna memanggil perintah garis miring atau perintah cepat.
- Klik tombol dari kartu dalam pesan atau dialog. Misalnya, saat pengguna memasukkan informasi dan mengklik kirim.
Aplikasi Chat dapat menyertakan salah satu hal berikut dalam pesan:
- Teks yang berisi hyperlink, @sebutan, dan emoji. Lihat Memformat pesan.
- Satu atau beberapa kartu, yang dapat muncul dalam pesan atau terbuka di jendela baru sebagai dialog. Lihat Membuat kartu untuk aplikasi Google Chat.
- Satu atau beberapa widget aksesori, yang merupakan tombol yang muncul setelah teks atau kartu dalam pesan.
Untuk membalas dengan pesan, tampilkan DataActions dengan
objek CreateMessageAction:
{
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
Ganti MESSAGE dengan resource
Message
dari Chat API.
Dalam contoh berikut, aplikasi Chat membuat dan mengirim
pesan teks orientasi setiap kali ditambahkan ke ruang dengan merespons
pemicu Ditambahkan ke ruang dengan DataActions:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The request object from Google Chat.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
const chatEvent = req.body.chat;
// Send an onboarding message when added to a Chat space
if (chatEvent.addedToSpacePayload) {
res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
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`.'
}}}}});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
chat_event = request.get_json()["chat"]
if "addedToSpacePayload" in chat_event:
return json.jsonify({ "hostAppDataAction": { "chatDataAction": {
"createMessageAction": { "message": {
"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`.'
}}
}}})
Java
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public GenericJson onEvent(@RequestBody JsonNode event) throws Exception {
JsonNode chatEvent = event.at("/chat");
if (!chatEvent.at("/addedToSpacePayload").isEmpty()) {
return new GenericJson() { {
put("hostAppDataAction", new GenericJson() { {
put("chatDataAction", new GenericJson() { {
put("createMessageAction", new GenericJson() { {
put("message", new Message().setText(
"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`."
));
} });
} });
} });
} };
}
return new GenericJson();
}
}
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Google Chat.
* @return {Object} Response from the Chat app.
*/
function onAddedToSpace(event) {
return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
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:
Memperbarui pesan
Aplikasi Chat juga dapat memperbarui pesan yang dikirimnya. Misalnya, aplikasi Chat dapat memperbarui pesan setelah pengguna mengirimkan dialog atau mengklik tombol pada kartu dalam pesan.
Untuk memperbarui pesan aplikasi Chat sebagai respons terhadap interaksi, tampilkan DataActions dengan UpdateMessageAction:
{
"hostAppDataAction": {
"chatDataAction": {
"updateMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
Ganti MESSAGE dengan resource
Message
dari Chat API.
Aplikasi Chat juga dapat memperbarui pesan yang dikirim oleh pengguna untuk melampirkan
kartu pratinjau link menggunakan updateInlinePreviewAction. Untuk mengetahui detailnya, lihat
Link pratinjau.
Merespons secara asinkron menggunakan Google Chat API
Alih-alih menampilkan tindakan secara sinkron, aplikasi Chat mungkin perlu memanggil Google Chat API untuk merespons interaksi atau mengirim pesan proaktif. Misalnya, aplikasi Chat harus memanggil Google Chat API untuk melakukan salah satu hal berikut:
- Merespons interaksi setelah 30 detik (seperti setelah menyelesaikan tugas yang berjalan lama).
- Mengirim pesan sesuai jadwal, atau mengirim notifikasi tentang perubahan pada resource eksternal.
- Melakukan tugas di luar ruang tempat interaksi terjadi.
- Melakukan tugas di Chat yang tidak tersedia sebagai tindakan sinkron, seperti mencantumkan ruang atau menambahkan anggota ke ruang.
- Melakukan tugas atas nama pengguna Chat (yang memerlukan autentikasi pengguna).
Saat merespons interaksi setelah 30 detik, untuk menghindari pesan error yang ditampilkan kepada pengguna yang menyatakan bahwa aplikasi Chat Anda tidak merespons, Anda harus mengonfirmasi penerimaan objek peristiwa dalam waktu 30 detik dengan menampilkan respons kosong:
Node.js
async function onEvent(req, res) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return res.send({});
};
Python
def on_event(event) -> dict:
# Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return {}
Java
public String onEvent(JsonNode event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return "{}";
}
Apps Script
function onEvent(event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return null;
}
Untuk mengirim pesan menggunakan Chat API, siapkan autentikasi dan panggil
metode spaces.messages.create. Untuk mengetahui langkah-langkahnya, lihat
Mengirim pesan. Untuk panduan tentang cara menggunakan
metode Chat API tambahan, lihat
Ringkasan Chat API.
Topik terkait
- Mengonfigurasi Google Chat API
- Mengirim pesan
- Merespons perintah
- Membuka dialog interaktif
- Membaca input data formulir oleh pengguna di kartu
- Link pratinjau
- Membuat halaman beranda untuk aplikasi Chat
- Memverifikasi permintaan dari Chat
- Menguji fitur interaktif untuk aplikasi Google Chat
Aplikasi Chat yang bukan add-on: Menerima dan merespons interaksi pengguna
Aplikasi Chat yang bukan add-on Google Workspace menerima
peristiwa interaksi Chat API (Event),
bukan
objek peristiwa add-on Google Workspace (EventObject),
dan merespons dengan menampilkan
resource Message,
bukan tindakan.
Untuk mengupgrade aplikasi Chat yang bukan add-on ke framework add-on Google Workspace, lihat Mengonversi aplikasi Google Chat menjadi add-on Google Workspace.
Jenis peristiwa interaksi
Untuk setiap jenis interaksi pengguna, Google Chat mengirimkan
aplikasi Chat yang bukan add-on
objek Event yang jenisnya diwakili oleh
kolom eventType:
| Interaksi pengguna | eventType |
Respons umum dari aplikasi Chat yang bukan add-on |
|---|---|---|
| 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 mengirim pesan orientasi yang menjelaskan fungsinya dan cara pengguna di ruang dapat berinteraksi dengannya. |
| Pengguna menghapus aplikasi Chat dari ruang. | REMOVED_FROM_SPACE |
Aplikasi Chat akan menghapus semua notifikasi masuk yang dikonfigurasi untuk ruang (seperti menghapus webhook) dan mengosongkan penyimpanan internal. |
| Pengguna mengklik tombol pada kartu dari pesan, dialog, atau halaman beranda aplikasi Chat. | CARD_CLICKED |
Aplikasi Chat akan memproses dan menyimpan data 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 akan memproses dan menyimpan data yang dikirimkan pengguna, atau menampilkan kartu lain. |
| Pengguna memanggil perintah 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 dan contoh payload JSON, lihat
Jenis peristiwa interaksi aplikasi Chat
dan
dokumentasi referensi EventType.
Peristiwa interaksi dari dialog
Jika aplikasi Chat Anda yang bukan add-on membuka dialog, peristiwa interaksi akan berisi informasi tambahan berikut yang dapat Anda gunakan untuk memproses respons:
- Kolom
isDialogEventditetapkan ketrue. DialogEventType(REQUEST_DIALOG,SUBMIT_DIALOG, atauCANCEL_DIALOG) menjelaskan apakah interaksi memicu dialog untuk dibuka, mengirimkan informasi dari dialog, atau menutup dialog.
Mengonfigurasi aplikasi Chat yang bukan add-on untuk menerima peristiwa interaksi
Di konsol Google Cloud, buka halaman Configuration Chat API:
Di bagian Interactive features, hapus centang Build this Chat app as a Google Workspace add-on, dan konfigurasikan Functionality, satu endpoint Connection settings (URL endpoint HTTP, Apps Script, nama topik Cloud Pub/Sub, atau Dialogflow), Commands, Starter prompts, Link previews, dan Visibility.
Klik Simpan.
Membalas dengan pesan di aplikasi Chat yang bukan add-on
Untuk merespons secara sinkron di aplikasi Chat yang bukan
add-on, tampilkan
objek Message
secara langsung. Contoh berikut merespons peristiwa interaksi ADDED_TO_SPACE
dengan pesan teks:
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.
*/
exports.cymbalApp = function cymbalApp(req, res) {
// 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`.'
});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
event = request.get_json()
if event['type'] == 'ADDED_TO_SPACE':
return json.jsonify({
'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`.'
})
return json.jsonify({})
Java
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public Message onEvent(@RequestBody JsonNode event) {
switch (event.get("type").asText()) {
case "ADDED_TO_SPACE":
return new Message().setText(
"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`.");
default:
return new Message();
}
}
}
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.
*/
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`.'
};
}