Bu sayfada, Google Chat uygulamanızın Google Chat'teki kullanıcı etkileşimlerini nasıl alıp yanıtlayabileceği açıklanmaktadır.
Chat uygulamaları için etkileşimli arayüzler oluşturmak üzere aşağıdaki bileşenleri kullanırsınız:
- Tetikleyiciler: Google Chat kullanıcılarının bir Chat uygulamasını çağırma yöntemleri (ör. uygulamayı bir alana ekleme veya uygulamaya mesaj gönderme).
- Etkinlik nesneleri: Chat uygulamalarının tetikleyicilerden veya kullanıcı arayüzü etkileşimlerinden aldığı veriler.
- İşlemler: Chat uygulamalarının etkileşimlere yanıt verme yöntemleridir (ör. mesaj gönderme veya kart tabanlı bir kullanıcı arayüzü döndürme).
Chat uygulamaları, arayüzleri aşağıdaki şekillerde oluşturabilir ve görüntüleyebilir:
- Metin, statik veya etkileşimli kartlar ve aksesuar düğmeleri içerebilen mesajlar.
- Chat uygulamasıyla bire bir doğrudan mesajların Ana Sayfa sekmesinde görünen ana sayfalar (Uygulama Ana Sayfası).
- İletişim kutuları: Yeni bir pencerede açılan ve genellikle kullanıcılardan bilgi göndermelerini isteyen kartlardır.
- Harici bir hizmetle ilgili bilgileri önizleyen kartlar olan bağlantı önizlemeleri.
Ön koşullar
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası ekranını yapılandırın.
- Google Chat API'yi etkinleştirin ve yapılandırın.
Kullanıcı etkileşimlerinin işleyiş şekli
Bir kullanıcı bir Chat uygulamasıyla etkileşimde bulunduğunda Google Chat, yapılandırılmış bir tetikleyiciyi çağırır ve Chat uygulamanızın uç noktasına veya işlevine bir etkinlik nesnesi gönderir. Chat uygulamanız etkinlik nesnesini işler ve 30 saniye içinde eşzamanlı olarak bir işlem döndürebilir veya Chat API'yi kullanarak eşzamansız olarak yanıt verebilir.
Aşağıdaki diyagramda, Google Chat uygulamalarının kullanıcı etkileşimlerini nasıl işlediği ve bunlara nasıl yanıt verdiği gösterilmektedir:
Tetikleyiciler
Tetikleyiciler, kullanıcıların Chat kullanıcı arayüzünü kullanarak bir Chat uygulamasını çağırmasının belirli yollarıdır. Örneğin, @bahsetmeler veya uygulama komutları kullanmak.
Aşağıdaki tabloda Chat tetikleyicileri, açıklamaları ve Chat uygulamalarının genellikle nasıl yanıt verdiği gösterilmektedir:
| Tetikleyici | Açıklama | Tipik yanıt |
|---|---|---|
| Alana eklendi |
Bir kullanıcı, Chat uygulamasını bir alana ekler veya bir Google Workspace yöneticisi, Chat uygulamasını kuruluşundaki kullanıcılar için doğrudan mesaj alanlarına yükler. Yöneticiler tarafından yüklenen Chat uygulamaları hakkında bilgi edinmek için Google Workspace Yönetici Yardım belgelerindeki Marketplace uygulamalarını alanınıza yükleme başlıklı makaleyi inceleyin. |
Chat uygulaması, ne yaptığını ve alandaki kullanıcıların kendisiyle nasıl etkileşim kurabileceğini açıklayan bir oryantasyon mesajı gönderir. |
| Mesaj |
Kullanıcı, Chat uygulamasıyla bir mesajda aşağıdaki yöntemlerden biriyle etkileşim kurar:
|
Chat uygulaması, mesajın içeriğine göre yanıt verir. Örneğin, bir Chat uygulaması mesajla yanıt verir, bağlantı önizleme kartı ekler veya çoklu seçim menüsünde öğeler önerir. |
| Alandan kaldırıldı |
Kullanıcı, Chat uygulamasını bir alandan kaldırırsa veya Google Workspace yöneticisi, kuruluşundaki bir kullanıcı için Chat uygulamasını kaldırırsa. Kullanıcılar, yöneticileri tarafından yüklenen Chat uygulamalarını kaldıramaz. Kullanıcı daha önce Chat uygulamasını yüklediyse Google Workspace yöneticisi kaldırmaya çalışsa bile Chat uygulaması yüklü kalır. |
Chat uygulaması, alan için yapılandırılmış tüm gelen bildirimleri kaldırır (ör. bir webhook'u siler) ve dahili depolama alanını temizler. Chat uygulamaları artık alanın üyesi olmadığından bu tetikleyiciye mesajla yanıt veremez. |
| Uygulama komutu |
Kullanıcı bir Chat uygulaması komutunu (ör. eğik çizgi komutu, hızlı komut veya mesaj işlemi) çağırır. |
Chat uygulaması komuta yanıt verir. Örneğin, bir mesajla yanıt verir veya bir iletişim kutusu açar. |
| Uygulama Ana Sayfası |
Kullanıcı, Chat uygulamasıyla bire bir doğrudan mesaj (DM) alanında Ana Sayfa sekmesini açar veya ana sayfa kartındaki bir widget ile etkileşimde bulunur. |
Chat uygulaması, ana sayfa kartını gönderen (pushCard) veya görüntülenen ana sayfa kartını güncelleyen (updateCard) bir RenderActions nesnesi döndürür.
|
Bu tetikleyiciler için uç noktaları veya geri çağırma işlevlerini Google Cloud Console'daki Chat API Yapılandırma sayfasında yapılandırırsınız. Adım adım talimatlar için Google Chat API'yi yapılandırma başlıklı makaleyi inceleyin.
Başlangıç istemlerini yapılandırma
Başlangıç istemleri, kullanıcıların Chat uygulamanızla boş bir bire bir doğrudan mesaj açtıklarında uygulamanızın işlevlerini keşfetmelerine yardımcı olur. En fazla üç başlangıç istemi yapılandırabilirsiniz.
Başlangıç istemleri eklemek ve yapılandırmak için:
Google Cloud Console'da Chat API Yapılandırma sayfasına gidin:
Chat API Configuration (Chat API Yapılandırması) sayfasına gidin
Etkileşimli özellikler bölümünde Başlangıç istemleri'ni bulun ve İstem ekle'yi tıklayın.
Görüntüleme sırasını belirtmek için Sıra (1-3) alanına
1ile3arasında bir sayı girin.Tür seçimi bölümünde, istemin nasıl davranacağını seçin:
- Yazılı istem: Kullanıcı istem çipine tıkladığında oluşturma çubuğunu önceden tanımlanmış metinle doldurur.
- Komut istemi: Tıklandığında kayıtlı bir eğik çizgi komutunu veya hızlı komutu çalıştırır. Ek bağımsız değişkenler gerektiren komutlar seçilemez.
İstemi, tür seçiminize göre yapılandırın:
Metin istemi'ni seçtiyseniz:
- Başlık alanına, çipte gösterilen istem başlığını girin (en fazla 30 karakter).
- İstem metni alanına, oluşturma çubuğunda doldurulan metni girin (en fazla 60 karakter).
- İsteğe bağlı: Diğer dilleri kullanan kullanıcılar için yerelleştirilmiş başlıklar ve metinler ekleyin:
- Yerelleştirilmiş istemler bölümünde Dil ekle'yi tıklayın.
- Dil bölümünde, açılır menüden desteklenen bir dil seçin.
- Yerelleştirilmiş Başlık alanına yerelleştirilmiş başlığı girin (en fazla 30 karakter).
- Yerelleştirilmiş istem metni alanına yerelleştirilmiş istem metnini girin (en fazla 60 karakter).
- Gerektiği kadar dil eklemek için bu adımları tekrarlayın.
Komut istemi'ni seçtiyseniz:
- Eğik çizgi komutu / Hızlı komut bölümünde, açılır menüden komutu seçin.
Bitti'yi ve ardından sayfanın alt kısmındaki Kaydet'i tıklayın.
Hizmetinize yönelik HTTP çağrısı yeniden denemelerini yönetme
Hizmetinize gönderilen bir HTTPS isteği başarısız olursa (ör. zaman aşımı, geçici ağ hatası veya 2xx olmayan HTTPS durum kodu) Google Chat, birkaç dakika içinde teslimatı birkaç kez yeniden deneyebilir (ancak bu garanti edilmez). Bu nedenle, Chat uygulamaları belirli durumlarda aynı etkinliği birkaç kez alabilir. İstek başarıyla tamamlanır ancak geçersiz bir yanıt yükü döndürürse Google Chat isteği yeniden denemez.
Etkinlik nesneleri
Chat uygulamaları, bir Chat tetikleyicisi çalıştığında veya Chat kullanıcıları Chat uygulamasının kullanıcı arayüzüyle etkileşime geçtiğinde (ör. bir düğmeyi tıklama veya iletişim kutusu gönderme) etkinlik nesneleri alır. Etkinlik nesnesi, etkileşim verilerini kullanarak bir kullanıcı arayüzüne yanıt vermenizi veya arayüzü güncellemenizi sağlar.
2025'te Google Chat uygulamaları, eklenti etkinliklerini destekleyecek şekilde genişletildi ve Temmuz 2025'ten itibaren yeni Chat uygulamaları için varsayılan olarak bu özellik kullanılmaya başlandı. Chat belgelerinde, eklenti etkinlikleri, kılavuzlarda ve kod örneklerinde gösterilen standart etkinlik türüdür. Chat etkinlikleriyle ilgili dokümanlar (Google Workspace eklentisi olmayan Chat uygulamaları için), daraltılmış bölümlere ayrılmıştır (ör. Eklenti olmayan Chat uygulamaları: Etkileşim etkinliklerini alma ve yanıtlama).
Etkinlik ve yanıt türlerinizi belirleme
Chat uygulamanız bir etkinlik nesnesi aldığında, yükün yapısı ve nasıl yanıt vereceğiniz, Chat uygulamanızın Google Workspace eklentisi olarak yapılandırılıp yapılandırılmadığına bağlıdır.
Uygulamanızın hangi tür etkinlik nesnelerini aldığını ve nasıl yanıt vermesi gerektiğini doğrulamak için aşağıdaki tabloyu kullanarak uygulamanızın yapılandırmasını kontrol edin:
| Uygulama türü | Eklenti etkinliklerini alır (Temmuz 2025'ten sonra oluşturulan yeni uygulamalar için varsayılan) |
Chat etkinliklerini alır (Temmuz 2025'ten önceki varsayılan ayar) |
|---|---|---|
| Apps Komut Dosyası uygulamaları Manifest dosyasını ( appsscript.json) kontrol edin. |
chat nesnesi, addOns içinde yapılandırılır:
|
chat nesnesi, manifest dosyasının kökünde yapılandırılır:
|
| Diğer uygulamalar Google Chat API Yapılandırma sayfasını kontrol edin. |
"Bu Chat uygulamasını Google Workspace eklentisi olarak oluştur" onay kutusu seçilidir. | "Bu Chat uygulamasını Google Workspace eklentisi olarak oluştur" onay kutusu seçili değildir. |
| Belgeleri bulabileceğiniz yerler | Kılavuzlar ve kod örnekleri genelinde Etkinlik referans belgeleri: Eklenti etkinlik nesneleri |
Daraltılmış bölümler (ör. Eklenti olmayan Chat uygulamaları: Etkileşim etkinliklerini alma ve yanıtlama) Etkinlik referans belgeleri: Chat API etkileşim etkinlikleri |
| Nasıl karşılık vermeli? | DataActions veya RenderActions gibi bir işlem döndürün.İşlemle nasıl yanıt vereceğinizi öğrenin |
Message kaynağı döndürür.Mesajla nasıl yanıt vereceğinizi öğrenin |
Etkinlik nesnesi yükleri
Her eklenti etkinlik nesnesi, ana makine ve platform ayrıntılarını (hostApp: "CHAT", clientPlatform, userLocale, userTimezone, parameters ve formInputs) içeren bir commonEventObject ve Chat'e özel bağlamı içeren bir chat nesnesi içerir:
- Uygulama Ana Sayfası tetikleyicisi için (kullanıcı, Chat uygulamasıyla bire bir doğrudan mesajda Ana Sayfa sekmesini açtığında)
chatnesnesi, birleşimpayloadalanı olmadanchat.uservechat.eventTimeiçerir. Kullanıcı, ana sayfa kartındaki bir düğmeyi tıkladığında etkinlik nesnesichat.buttonClickedPayloadile birliktecommonEventObject.parameters(ve kartta form girişleri varsacommonEventObject.formInputs) içerir. - Alan ve mesaj etkileşimleri (Alana eklendi, Mesaj, Alandan kaldırıldı, Uygulama komutu veya düğme ve widget etkileşimleri) için
chatnesnesichat.user,chat.space,chat.eventTimeve ilgili etkileşim yükünü içerir:messagePayload: Kullanıcı mesaj gönderdiğindespace,messageveconfigCompleteRedirectUribilgilerini içerir.addedToSpacePayload: Chat uygulaması bir alana eklendiğindespace,interactionAddveconfigCompleteRedirectUribilgilerini içerir.removedFromSpacePayload: Chat uygulaması bir alandan kaldırıldığındaspacedeğerini içerir.buttonClickedPayload: Kullanıcı bir kart veya iletişim kutusundaki düğmeyi tıkladığındaspace,message,isDialogEventvedialogEventTypedeğerlerini içerir.widgetUpdatedPayload: Kullanıcı bir widget ile etkileşimde bulunduğunda (ör. harici veri kaynağı içeren çoklu seçim menüsüne yazı yazdığında)spacedeğerini içerir.appCommandPayload: Kullanıcı bir uygulama komutu çağırdığındaspace,message,appCommandMetadata,isDialogEvent,dialogEventTypeveconfigCompleteRedirectUrideğerlerini içerir.
Chat ve diğer Google Workspace uygulamalarındaki eklenti etkinlik nesneleri hakkında bilgi edinmek için Etkinlik nesneleri başlıklı makaleyi inceleyin.
Yanıt verme
Bu bölümde, Chat uygulamalarının kullanıcı etkileşimlerine eşzamanlı olarak yanıt vermek için işlemleri nasıl kullandığı açıklanmaktadır.
Bir Chat uygulamasının işlemle yanıt verebilmesi için 30 saniye içinde yanıt vermesi ve yanıtın, etkileşimin gerçekleştiği alan için geçerli olması gerekir. Bu eşzamanlı yanıtlar kimlik doğrulama gerektirmez. Chat uygulamanızın 30 saniyeden daha uzun süreye ihtiyacı varsa veya alanın dışında işlem yapması gerekiyorsa kimlik doğrulamayı ayarlayın ve Google Chat API'yi kullanarak asenkron olarak yanıt verin.
Kullanıcı etkileşimlerine eşzamanlı olarak yanıt vermek için Chat uygulamanız, gelen etkinlik nesnesini işler ve aşağıdaki JSON nesnelerinden birini döndürür:
DataActions:chatDataActionMarkupkullanarak sohbet mesajları (CreateMessageAction,UpdateMessageAction) oluşturur veya günceller ya da bağlantı önizlemeleri (UpdateInlinePreviewAction) ekler.RenderActions: Ana sayfa veya iletişim kutusu (pushCard,updateCard,endNavigation: "CLOSE_DIALOG") oluşturur, günceller ya da kapatır veya çoklu seçim menüsü (modifyCard) için dinamik giriş önerileri sağlar.AuthorizationError: Kullanıcılardan temel bir yetkilendirme kartıyla (basic_authorization_prompt) harici bir hizmette oturum açmalarını veya kimliklerini doğrulamalarını ister.
Aşağıdaki tabloda, Chat uygulamalarının işlemlerle nasıl yanıt verebileceği gösterilmektedir. Chat uygulamaları, JSON nesnelerini doğrudan döndürebilir veya Apps Komut Dosyası'nın AddOnResponseService ve CardService hizmetlerini kullanarak yanıtı oluşturabilir.
| Chat uygulaması yanıtı | Döndürülecek gerekli işlem (JSON) | Geri dönmek için yapılması gereken işlem (Apps Komut Dosyası) |
|---|---|---|
| Mesaj gönderme veya mesaj güncelleme | DataActions (createMessageAction veya updateMessageAction) |
DataActionsResponse |
| Chat kullanıcılarının bir alanda gönderdiği mesajlardaki bağlantıları önizleme | DataActions (updateInlinePreviewAction) |
DataActionsResponse |
| Doğrudan mesajın Ana Sayfa sekmesinde bir ana sayfa oluşturun veya güncelleyin. | RenderActions (pushCard veya updateCard) |
ActionResponse |
| İletişim kutusu açma, güncelleme veya kapatma | RenderActions (pushCard, updateCard veya endNavigation: "CLOSE_DIALOG") |
ActionResponse |
| Bir karttan veya iletişim kutusundan bilgi toplamak için kullanıcıların çoklu seçim menüsüne yazdıklarına göre seçim öğeleri önerin. | RenderActions (modifyCard) |
ActionResponse |
| Harici bir hizmet için yapılandırma veya yetkilendirme isteğinde bulunma | AuthorizationError (basic_authorization_prompt) |
AuthorizationException |
Mesajla yanıtla
Chat uygulamaları, aşağıdaki tetikleyicilerden veya etkileşimlerden herhangi birine mesajla yanıt verebilir:
- Kullanıcıların bir Chat uygulamasından @bahsettiği veya uygulamaya doğrudan mesaj gönderdiği durumlar gibi mesaj tetikleyicileri.
- Kullanıcıların Chat uygulamasını Google Workspace Marketplace'ten yüklemesi veya bir alana eklemesi gibi alana ekleme tetikleyicileri.
- Kullanıcıların eğik çizgi komutu veya hızlı komut çağırması gibi uygulama komutu tetikleyicileri.
- Mesajlardaki veya iletişim kutularındaki kartlardan düğme tıklamaları. Örneğin, kullanıcılar bilgi girip gönder düğmesini tıkladığında.
Chat uygulamaları, mesajlara aşağıdakilerden herhangi birini ekleyebilir:
- Köprü, @bahsetme ve emoji içeren metinler. İletileri biçimlendirme başlıklı makaleyi inceleyin.
- Bir mesajda görünebilen veya yeni bir pencerede iletişim kutusu olarak açılabilen bir ya da daha fazla kart. Google Chat uygulamaları için kart oluşturma başlıklı makaleyi inceleyin.
- Bir veya daha fazla aksesuar widget'ı. Bunlar, bir mesajdaki metin veya kartlardan sonra görünen düğmelerdir.
Mesajla yanıt vermek için DataActions değerini bir CreateMessageAction nesnesiyle döndürün:
{
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
MESSAGE değerini Chat API'deki bir Message kaynağıyla değiştirin.
Aşağıdaki örnekte, bir Chat uygulaması, Alana eklendi tetikleyicisine DataActions ile yanıt vererek bir alana her eklendiğinde oryantasyon kısa mesajı oluşturur ve gönderir:
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 Komut Dosyası
/**
* 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`.'
}}}}};
}
Kod örneği aşağıdaki kısa mesajı döndürür:
Mesaj güncelleme
Chat uygulamaları, gönderdikleri mesajları da güncelleyebilir. Örneğin, bir Chat uygulaması, kullanıcı bir iletişim kutusu gönderdikten veya mesajdaki bir kartta bulunan düğmeyi tıkladıktan sonra mesajı güncelleyebilir.
Bir etkileşime yanıt olarak Chat uygulaması mesajını güncellemek için UpdateMessageAction ile DataActions değerini döndürün:
{
"hostAppDataAction": {
"chatDataAction": {
"updateMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
MESSAGE değerini Chat API'deki bir Message kaynağıyla değiştirin.
Chat uygulamaları, updateInlinePreviewAction kullanarak bağlantı önizleme kartı eklemek için kullanıcı tarafından gönderilen bir mesajı da güncelleyebilir. Ayrıntılar için Bağlantıları önizleme başlıklı makaleyi inceleyin.
Google Chat API'yi kullanarak asenkron olarak yanıt verme
Chat uygulamalarının, bir işlemi eşzamanlı olarak döndürmek yerine bir etkileşime yanıt vermek veya proaktif mesajlar göndermek için Google Chat API'yi çağırması gerekebilir. Örneğin, Chat uygulamaları aşağıdakilerden herhangi birini yapmak için Google Chat API'yi çağırmalıdır:
- 30 saniye sonra bir etkileşime yanıt verme (ör. uzun süren bir görevi tamamladıktan sonra)
- Mesajları belirli bir programa göre gönderme veya harici kaynaklardaki değişikliklerle ilgili bildirim gönderme
- Etkileşimin gerçekleştiği alanın dışında görevler gerçekleştirme
- Chat'te, alanları listeleme veya bir alana üye ekleme gibi eşzamanlı işlemler olarak kullanılamayan görevleri gerçekleştirme
- Chat kullanıcısı adına görevleri yerine getirme (kullanıcı kimlik doğrulaması gerekir).
Bir etkileşime 30 saniye sonra yanıt verirken, kullanıcılara yönelik olarak Chat uygulamanızın yanıt vermediğini belirten bir hata mesajı gösterilmesini önlemek için boş bir yanıt döndürerek etkinlik nesnesinin alındığını 30 saniye içinde onaylamanız gerekir:
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 Komut Dosyası
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;
}
Chat API'yi kullanarak mesaj göndermek için kimlik doğrulamayı ayarlayın ve spaces.messages.create yöntemini çağırın. Adımlar için Mesaj gönderme başlıklı makaleyi inceleyin. Diğer Chat API yöntemlerini kullanmayla ilgili kılavuzlar için Chat API'ye genel bakış başlıklı makaleyi inceleyin.
İlgili konular
- Google Chat API'yi yapılandırma
- Mesaj gönderme
- Komutlara yanıt verme
- Etkileşimli iletişim kutularını açma
- Kullanıcıların kartlara girdiği form verilerini okuma
- Bağlantıları önizleme
- Chat uygulaması için ana sayfa oluşturma
- Chat'ten gelen istekleri doğrulama
- Google Chat uygulamaları için etkileşimli özellikleri test etme
Eklenti olmayan Chat uygulamaları: Kullanıcı etkileşimlerini alma ve yanıtlama
Google Workspace eklentisi olmayan Chat uygulamaları,
Google Workspace eklentisi etkinlik nesneleri (EventObject)
yerine
Chat API etkileşim etkinliklerini (Event)
alır ve bir işlem yerine
Message
kaynağı döndürerek yanıt verir.
Eklenti olmayan bir Chat uygulamasını Google Workspace eklentileri çerçevesine yükseltmek için Google Chat uygulamasını Google Workspace eklentisine dönüştürme başlıklı makaleyi inceleyin.
Etkileşim etkinliği türleri
Google Chat, her kullanıcı etkileşimi türü için eklenti olmayan bir Chat uygulamasına, türü eventType alanıyla temsil edilen bir Event nesnesi gönderir:
| Kullanıcı etkileşimi | eventType |
Eklenti olmayan bir Chat uygulamasından gelen tipik yanıt |
|---|---|---|
| Kullanıcı, bir Chat uygulamasına mesaj gönderir. Örneğin, Chat uygulamasından @bahseder veya eğik çizgi komutu kullanır. | MESSAGE |
Chat uygulaması, mesajın içeriğine göre yanıt verir. Örneğin, bir Chat uygulaması, /about eğik çizgi komutuna Chat uygulamasının yapabileceği görevleri açıklayan bir mesajla yanıt verir. |
| Kullanıcı, bir alana Chat uygulaması eklediğinde | ADDED_TO_SPACE |
Chat uygulaması, ne yaptığını ve alandaki kullanıcıların kendisiyle nasıl etkileşim kurabileceğini açıklayan bir oryantasyon mesajı gönderir. |
| Kullanıcı, bir Chat uygulamasını alandan kaldırdığında | REMOVED_FROM_SPACE |
Chat uygulaması, alan için yapılandırılmış tüm gelen bildirimleri kaldırır (ör. bir webhook'u siler) ve dahili depolama alanını temizler. |
| Kullanıcı, bir Chat uygulaması mesajı, iletişim kutusu veya ana sayfasındaki bir kartta bulunan düğmeyi tıklar. | CARD_CLICKED |
Chat uygulaması, kullanıcının gönderdiği verileri işleyip depolar veya başka bir kart döndürür. |
| Kullanıcı, bire bir mesajda Ana Sayfa sekmesini tıklayarak Chat uygulamasının ana sayfasını açar. | APP_HOME |
Chat uygulaması, ana sayfadan statik veya etkileşimli bir kart döndürür. |
| Kullanıcı, Chat uygulamasının ana sayfasından bir form gönderir. | SUBMIT_FORM |
Chat uygulaması, kullanıcının gönderdiği verileri işleyip depolar veya başka bir kart döndürür. |
| Kullanıcı, hızlı komut kullanarak bir komut çağırır. | APP_COMMAND |
Chat uygulaması, çağrılan komuta göre yanıt verir. Örneğin, bir Chat uygulaması, Hakkında komutuna Chat uygulamasının yapabileceği görevleri açıklayan bir mesajla yanıt verir. |
Desteklenen tüm etkileşim etkinliklerini ve örnek JSON yüklerini görmek için Chat uygulaması etkileşim etkinliklerinin türleri ve EventType referans dokümanlarını inceleyin.
İletişim kutularından etkileşim etkinlikleri
Eklenti olmayan Chat uygulamanız iletişim kutuları açıyorsa etkileşim etkinliği, yanıtı işlemek için kullanabileceğiniz aşağıdaki ek bilgileri içerir:
isDialogEventalanıtrueolarak ayarlanmış.DialogEventType(REQUEST_DIALOG,SUBMIT_DIALOGveyaCANCEL_DIALOG), etkileşimin bir iletişim kutusunun açılmasını tetikleyip tetiklemediğini, bir iletişim kutusundan bilgi gönderip göndermediğini veya bir iletişim kutusunu kapatıp kapatmadığını netleştirir.
Etkileşim etkinliklerini almak için eklenti olmayan bir Chat uygulamasını yapılandırma
Google Cloud Console'da Chat API Yapılandırma sayfasına gidin:
Chat API Configuration (Chat API Yapılandırması) sayfasına gidin
Etkileşimli özellikler bölümünde Bu Chat uygulamasını Google Workspace eklentisi olarak derle seçeneğinin işaretini kaldırın ve İşlev, tek bir Bağlantı ayarları uç noktası (HTTP uç nokta URL'si, Apps Komut Dosyası, Cloud Pub/Sub konu adı veya Dialogflow), Komutlar, Başlangıç istemleri, Bağlantı önizlemeleri ve Görünürlük ayarlarını yapılandırın.
Kaydet'i tıklayın.
Eklenti olmayan bir Chat uygulamasında mesajla yanıt verme
Eklenti olmayan bir Chat uygulamasında eşzamanlı olarak yanıt vermek için doğrudan bir Message nesnesi döndürün. Aşağıdaki örnekte, bir ADDED_TO_SPACE etkileşim etkinliğine kısa mesajla yanıt verilmektedir:
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 Komut Dosyası
/**
* 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`.'
};
}