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 verebileceği yöntemler (ö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şturup gösterebilir:

Ön koşullar

Kullanıcı etkileşimlerinin işleyiş şekli

Bir kullanıcı 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 şema, Google Chat uygulamalarının kullanıcı etkileşimlerini nasıl işlediğini ve bunlara nasıl yanıt verdiğini gösterir:

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 Chat uygulamasını çağırmasının belirli yollarıdır. Örneğin, @bahsetme veya uygulama komutlarını kullanma.

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 Normal yanıt
Alana eklendi

Bir kullanıcı, Chat uygulamasını bir alana ekler veya bir Google Workspace yöneticisi, kuruluşundaki kullanıcılar için Chat uygulamasını 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 Dokümanları'ndaki Marketplace uygulamalarını alanınıza yükleme başlıklı makaleyi inceleyin.

Chat uygulaması, ne yaptığını ve alandaki kullanıcıların uygulamayla nasıl etkileşim kurabileceğini açıklayan bir ilk katılım mesajı gönderir.
Mesaj

Bir kullanıcı, aşağıdaki yöntemlerden biriyle bir iletideki Chat uygulamasıyla etkileşimde bulunur:

  • Chat uygulamasıyla doğrudan mesaj (DM) alanında mesaj gönderir.
  • Herhangi bir alanda Chat uygulamasından @bahsederse
  • 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 yazar.
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ı

Bir kullanıcı Chat uygulamasını alandan kaldırdığında veya bir Google Workspace yöneticisi, kuruluşundaki bir kullanıcı için Chat uygulamasını kaldırdığında

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 uygulamayı kaldırmaya çalışsa bile uygulama yüklü kalır.

Chat uygulaması, alan için yapılandırılmış tüm gelen bildirimleri (ör. webhook silme) kaldırır ve dahili depolama birimini temizler. Sohbet uygulamaları, artık alanın üyesi olmadıkları için bu tetikleyiciye mesajla yanıt veremez.
Uygulama komutu

Bir kullanıcı, Chat uygulaması komutu (ö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ı

Bir 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'la etkileşime girer.

Chat uygulaması, ana sayfa kartı gönderen (pushCard) veya gösterilen 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 uygulamanızla boş bir bire bir doğrudan mesaj açtıklarında Chat uygulamanızın işlevlerini keşfetmelerine yardımcı olur. En fazla üç başlangıç istemi yapılandırabilirsiniz.

Başlatıcı istemleri eklemek ve yapılandırmak için:

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

    Chat API Yapılandırma sayfasına gitme

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

  3. Gösterim 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:

    • Metin istemi: Kullanıcı istem çipini 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. İstemleri tür seçiminize göre yapılandırın:

    • Metin istemi'ni seçtiyseniz:

      1. Başlık bölümünde, çipte gösterilen istem başlığını girin (en fazla 30 karakter).
      2. İstem metni bölümüne, oluşturma çubuğunda doldurulan metni girin (en fazla 60 karakter).
      3. İsteğe bağlı: Diğer dillerdeki 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 listeden desteklenen bir dil seçin.
      6. Yerelleştirilmiş Başlık bölümüne yerelleştirilmiş başlığı girin (en fazla 30 karakter).
      7. Yerelleştirilmiş istem metni bölümüne yerelleştirilmiş istem metnini girin (en fazla 60 karakter).
      8. Gerekirse daha fazla dil eklemek için işlemi tekrarlayın.
    • Komut istemi'ni seçtiyseniz:

      1. Eğik çizgi komutu / Hızlı komut bölümünde, açılır listeden komutu seçin.
  6. Bitti'yi ve ardından sayfanın alt kısmındaki Kaydet'i tıklayın.

Hizmetinize yapılan HTTP çağrısı yeniden denemelerini işleme

Hizmetinize yapılan 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 birkaç kez teslimatı yeniden deneyebilir (ancak bu garanti edilmez). Sonuç olarak, bir sohbet uygulaması 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 (ör. bir düğmeyi tıklayarak ya da bir iletişim kutusu göndererek) etkileşimde bulunduğunda etkinlik nesneleri alır. Etkinlik nesnesi, etkileşim verilerini kullanarak bir kullanıcı arayüzünü yanıtlamanıza veya güncellemenize olanak tanır.

Etkinlik nesnesi yükleri

Her Chat etkinliği nesnesi, ana makine ve platform ayrıntılarını (hostApp: "CHAT", clientPlatform, userLocale, userTimezone, parameters ve formInputs) içeren bir commonEventObject ile Chat'e özgü 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, bir birleşim payload alanı olmadan chat.user ve chat.eventTime içerir. Bir kullanıcı ana sayfa kartındaki bir düğmeyi tıkladığında etkinlik nesnesi, commonEventObject.parameters ile birlikte chat.buttonClickedPayload'yı (ve kart form girişleri içeriyorsa 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 karşılık gelen etkileşim yükünü içerir:
    • messagePayload: Kullanıcı mesaj gönderdiğinde space, message ve configCompleteRedirectUri değerlerini içerir.
    • addedToSpacePayload: Chat uygulaması bir alana eklendiğinde space, interactionAdd ve configCompleteRedirectUri simgelerini içerir.
    • removedFromSpacePayload: Chat uygulaması bir alandan kaldırıldığında space içerir.
    • buttonClickedPayload: Kullanıcı bir karttaki veya iletişim kutusundaki düğmeyi tıkladığında space, message, isDialogEvent ve dialogEventType değerlerini içerir.
    • widgetUpdatedPayload: Kullanıcı, harici veri kaynağı içeren çoklu seçim menüsüne yazma gibi bir işlem yaparak widget'la etkileşimde bulunduğunda space öğesini içerir.
    • appCommandPayload: Bir kullanıcı 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 işlemle yanıt vermek için Chat uygulamasının 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 senkron yanıtlar için kimlik doğrulama gerekmez. Chat uygulamanızın 30 saniyeden uzun sürmesi veya alanın dışında işlem yapması gerekiyorsa kimlik doğrulama ayarlayın ve Google Chat API'yi kullanarak eşzamansız yanıt verin.

Kullanıcı etkileşimlerine senkron olarak yanıt vermek için sohbet 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, harici bir hizmette oturum açmak veya hizmeti doğrulamak için temel yetkilendirme kartı (basic_authorization_prompt) ile giriş yapmalarını ister.

Aşağıdaki tabloda, Chat uygulamalarının işlemlerle nasıl yanıt verebileceği gösterilmektedir. Sohbet uygulamaları, JSON nesnelerini doğrudan döndürebilir veya Apps Komut Dosyası'nın AddOnResponseService ve CardService kullanarak yanıtı oluşturabilir.

Sohbet uygulaması yanıtı Döndürmek için gereken işlem (JSON) Döndürmek için gerekli işlem (Apps Komut Dosyası)
Mesaj gönderebilir veya mesajı güncelleyebilirsiniz. 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şturma veya güncelleme RenderActions (pushCard veya updateCard) ActionResponse
İletişim kutusunu açma, güncelleme veya kapatma RenderActions (pushCard, updateCard veya endNavigation: "CLOSE_DIALOG") ActionResponse
Bir kart 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 bulunun. 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 bir Chat uygulamasından @bahsettiğinde veya uygulamaya doğrudan mesaj gönderdiğinde olduğu gibi mesaj tetikleyicileri.
  • Kullanıcılar Google Workspace Marketplace'ten Chat uygulamasını yüklediğinde veya bir alana eklediğinde tetiklenen alana ekleme tetikleyicileri
  • Kullanıcıların eğik çizgi komutu veya hızlı komut çağırması gibi uygulama komutu tetikleyicileri.
  • İletilerdeki veya iletişim kutularındaki kartlardan gelen düğme tıklamaları. Örneğin, kullanıcılar bilgi girip gönder'i tıkladığında.

Sohbet uygulamaları, mesajlara aşağıdakilerden herhangi birini ekleyebilir:

  • Köprüler, @bahsetmeler ve emoji içeren metinler İletileri biçimlendirme başlıklı makaleyi inceleyin.
  • İletide görünebilen veya yeni pencerede iletişim kutusu olarak açılabilen bir veya daha fazla kart. Google Chat uygulamaları için kart oluşturma başlıklı makaleyi inceleyin.
  • İletideki metin veya kartlardan sonra görünen düğmeler olan bir veya daha fazla aksesuar widget'ı.

Mesajla yanıt vermek için DataActions ile birlikte CreateMessageAction nesnesini döndürün:

{
  "hostAppDataAction": {
    "chatDataAction": {
      "createMessageAction": {
        "message": <var>MESSAGE</var>
      }
    }
  }
}

MESSAGE kısmını Chat API'den bir Message kaynağıyla değiştirin.

Aşağıdaki örnekte, bir Chat uygulaması DataActions ile Alana eklendi tetikleyicisine yanıt vererek bir alana her eklendiğinde bir karşılama metin mesajı oluşturup gönderiyor:

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 karşılama mesajı.

Mesaj güncelleme

Sohbet uygulamaları, gönderdikleri mesajları da güncelleyebilir. Örneğin, bir sohbet uygulaması, kullanıcı bir iletişim gönderdikten veya mesajdaki bir kartta düğmeyi tıkladıktan sonra mesajı güncelleyebilir.

Bir etkileşime yanıt olarak Chat uygulaması mesajını güncellemek için DataActions ile birlikte UpdateMessageAction döndürün:

{
  "hostAppDataAction": {
    "chatDataAction": {
      "updateMessageAction": {
        "message": <var>MESSAGE</var>
      }
    }
  }
}

MESSAGE kısmını Chat API'den bir Message kaynağıyla değiştirin.

Chat uygulamaları, kullanıcı tarafından gönderilen bir mesajı da güncelleyerek updateInlinePreviewAction kullanarak bağlantı önizleme kartı ekleyebilir. 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 senkron olarak döndürmek yerine etkileşime yanıt vermek veya proaktif mesajlar göndermek için Google Chat API'sini çağırması gerekebilir. Örneğin, Chat uygulamalarının aşağıdakilerden herhangi birini yapabilmek için Google Chat API'yi çağırması gerekir:

  • 30 saniye sonra bir etkileşime yanıt verme (ör. uzun süren bir görevi tamamladıktan sonra)
  • Belirli bir zamanda mesaj gönderebilir veya harici kaynaklardaki değişikliklerle ilgili bildirimler gönderebilirsiniz.
  • Etkileşimin gerçekleştiği alanın dışında görevler gerçekleştirme.
  • Chat'te eşzamanlı işlemler olarak kullanılamayan görevleri (ör. alanları listeleme veya alana üye ekleme) gerçekleştirme
  • Bir Chat kullanıcısı adına görev gerçekleştirme (kullanıcı kimlik doğrulaması gerekir).

30 saniye sonra bir etkileşime yanıt verirken, Chat uygulamanızın yanıt vermediğini belirten kullanıcılara yönelik bir hata mesajı gösterilmesini önlemek için 30 saniye içinde boş bir yanıt döndürerek etkinlik nesnesinin alındığını 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. Ek 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 sohbet uygulamaları, Google Workspace eklentisi etkinlik nesneleri (EventObject) yerine Chat API etkileşim etkinlikleri (Event) alır ve işlem yerine Message kaynağı döndürerek yanıt verir.

Eklenti olmayan bir Chat uygulamasını Google Workspace eklenti ç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 Event alanıyla türü temsil edilen bir eventType nesnesi gönderir:

Kullanıcı etkileşimi eventType Eklenti olmayan bir Chat uygulamasından gelen tipik yanıt
Bir kullanıcı, 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 komutunu, Chat uygulamasının yapabileceği görevleri açıklayan bir mesajla yanıtlar.
Kullanıcı, bir alana Chat uygulaması eklediğinde ADDED_TO_SPACE Chat uygulaması, ne yaptığını ve alandaki kullanıcıların uygulamayla nasıl etkileşim kurabileceğini açıklayan bir oryantasyon mesajı gönderir.
Kullanıcı, bir Chat uygulamasını alandan kaldırır. REMOVED_FROM_SPACE Chat uygulaması, alan için yapılandırılmış tüm gelen bildirimleri (ör. webhook silme) kaldırır ve dahili depolama birimini temizler.
Bir kullanıcı, Chat uygulaması mesajı, iletişim kutusu veya ana sayfasındaki bir kartta 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.
Bir 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ı, About (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 belgelerini inceleyin.

İletişim kutularından gelen 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 ayarlanır.
  • 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ı yapılandırma

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

    Chat API Yapılandırma sayfasına gitme

  2. Etkileşimli özellikler bölümünde Bu sohbet uygulamasını Google Workspace eklentisi olarak oluştur seçeneğinin işaretini kaldırın ve İşlevsellik, tek bir Bağlantı ayarları uç noktası (HTTP uç noktası 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'ü yapılandırın.

  3. Kaydet'i tıklayın.

Eklenti olmayan bir Chat uygulamasında mesajla yanıtlama

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, ADDED_TO_SPACE etkileşim etkinliğine kısa mesajla yanıt veriliyor:

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