Kullanıcı etkileşimlerini alın ve yanıtlayın

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 uygulaması, "Alana eklendi" tetikleyicisinden bir etkinlik nesnesi alır.
Şekil 1: Bir kullanıcı bir alana Chat uygulaması eklediğinde Alana eklendi tetikleyicisi etkinleşir ve bir etkinlik nesnesi gönderir. Mesajla yanıt vermek için Chat uygulaması, etkinlik nesnesini işler ve mesajı oluşturan bir işlem döndürür.

Chat uygulamaları, arayüzleri aşağıdaki şekillerde oluşturabilir ve görüntüleyebilir:

Ön koşullar

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:

Google Chat uygulamalarının kullanıcı etkileşimlerini işleme şeklinin mimarisi.

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ıyla doğrudan mesaj (DM) alanında mesaj gönderir.
  • Herhangi bir alanda Chat uygulamasından @bahsetme
  • Bağlantı önizlemeleri için URL kalıbıyla eşleşen bir bağlantı içeren mesaj gönderir.
  • Bir selectionInput widget'ının çoklu seçim menüsüne metin girer.
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:

  1. Google Cloud Console'da Chat API Yapılandırma sayfasına gidin:

    Chat API Configuration (Chat API Yapılandırması) sayfasına gidin

  2. Etkileşimli özellikler bölümünde Başlangıç istemleri'ni bulun ve İstem ekle'yi tıklayın.

  3. Görüntüleme sırasını belirtmek için Sıra (1-3) alanına 1 ile 3 arasında bir sayı girin.

  4. 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.
  5. İstemi, tür seçiminize göre yapılandırın:

    • Metin istemi'ni seçtiyseniz:

      1. Başlık alanına, çipte gösterilen istem başlığını girin (en fazla 30 karakter).
      2. İstem metni alanına, oluşturma çubuğunda doldurulan metni girin (en fazla 60 karakter).
      3. İsteğe bağlı: Diğer dilleri kullanan kullanıcılar için yerelleştirilmiş başlıklar ve metinler ekleyin:
      4. Yerelleştirilmiş istemler bölümünde Dil ekle'yi tıklayın.
      5. Dil bölümünde, açılır menüden desteklenen bir dil seçin.
      6. Yerelleştirilmiş Başlık alanına yerelleştirilmiş başlığı girin (en fazla 30 karakter).
      7. Yerelleştirilmiş istem metni alanına yerelleştirilmiş istem metnini girin (en fazla 60 karakter).
      8. Gerektiği kadar dil eklemek için bu adımları tekrarlayın.
    • Komut istemi'ni seçtiyseniz:

      1. Eğik çizgi komutu / Hızlı komut bölümünde, açılır menüden komutu seçin.
  6. 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:
{
  "addOns": {
    "chat": {}
  }
}
chat nesnesi, manifest dosyasının kökünde yapılandırılır:
{
  "chat": {}
}
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) chat nesnesi, birleşim payload alanı olmadan chat.user ve chat.eventTime içerir. Kullanıcı, ana sayfa kartındaki bir düğmeyi tıkladığında etkinlik nesnesi chat.buttonClickedPayload ile birlikte commonEventObject.parameters (ve kartta form girişleri varsa commonEventObject.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 chat nesnesi chat.user, chat.space, chat.eventTime ve ilgili etkileşim yükünü içerir:
    • messagePayload: Kullanıcı mesaj gönderdiğinde space, message ve configCompleteRedirectUri bilgilerini içerir.
    • addedToSpacePayload: Chat uygulaması bir alana eklendiğinde space, interactionAdd ve configCompleteRedirectUri bilgilerini içerir.
    • removedFromSpacePayload: Chat uygulaması bir alandan kaldırıldığında space değerini içerir.
    • buttonClickedPayload: Kullanıcı bir kart veya iletişim kutusundaki düğmeyi tıkladığında space, message, isDialogEvent ve dialogEventType değ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) space değerini içerir.
    • appCommandPayload: Kullanıcı bir uygulama komutu çağırdığında space, message, appCommandMetadata, isDialogEvent, dialogEventType ve configCompleteRedirectUri değ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: chatDataActionMarkup kullanarak 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:

Örnek ilk katılım mesajı.

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.

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:

  • isDialogEvent alanı true olarak ayarlanmış.
  • DialogEventType (REQUEST_DIALOG, SUBMIT_DIALOG veya CANCEL_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

  1. Google Cloud Console'da Chat API Yapılandırma sayfasına gidin:

    Chat API Configuration (Chat API Yapılandırması) sayfasına gidin

  2. 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.

  3. 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`.'
  };
}