Eğik çizgi komutlarına Google Chat uygulaması olarak yanıt verme

Bu sayfada, Google Chat uygulamanız için eğik çizgi komutlarını nasıl ayarlayacağınız ve bu komutlara nasıl yanıt vereceğiniz açıklanmaktadır.

Eğik çizgi komutları, kullanıcıların Chat uygulamasını çağırıp uygulamayla etkileşime geçmesinin yaygın bir yoludur. Eğik çizgi komutları, kullanıcıların Chat uygulamasının önemli özelliklerini keşfetmesine ve kullanmasına da yardımcı olur.

Eğik çizgi komutu kullanmak için kullanıcılar eğik çizgi (/) ve ardından kısa bir metin komutu yazar. Örneğin, Chat uygulaması hakkında bilgi almak için /about yazarlar. Kullanıcılar, Google Chat'e eğik çizgi yazarak mevcut eğik çizgi komutlarını keşfedebilir. Bu komutlar, Chat uygulaması için kullanılabilen komutları listeleyen bir pencerede gösterilir:

Eğik çizgi komutu penceresi
Şekil 1: Kullanıcılar Google Chat'e eğik çizgi yazdığında görünen pencere.

Slash komutları oluşturmanız gerekip gerekmediğine karar vermek ve kullanıcı etkileşimlerini nasıl tasarlayacağınızı öğrenmek için Tüm kullanıcı yolculuklarını tanımlama başlıklı makaleyi inceleyin.

Gizli yanıtlar içeren eğik çizgi komutları

Bir kullanıcı eğik çizgi komutu içeren bir mesaj gönderdiğinde bu mesaj yalnızca kullanıcı ve Chat uygulaması tarafından görülebilir. Chat uygulamanızı birden fazla kullanıcının bulunduğu alanlara eklenecek şekilde yapılandırdıysanız kullanıcı ile Chat uygulaması arasındaki etkileşimi gizli tutmak için eğik çizgi komutuna gizli olarak yanıt verebilirsiniz.

Örneğin, bir alanda keşfettikleri Chat uygulaması hakkında bilgi edinmek için kullanıcılar /about veya /help gibi komutları kullanabilir. Chat uygulaması, alandaki diğer kullanıcıları bilgilendirmemek için Chat uygulamasının nasıl kullanılacağı ve destek alma hakkında bilgilerle özel olarak yanıt verebilir.

Ön koşullar

Node.js

Etkileşimli özellikler için etkinleştirilmiş bir Google Chat uygulaması. HTTP hizmetini kullanarak etkileşimli bir Chat uygulaması oluşturmak için bu hızlı başlangıç kılavuzunu tamamlayın.

Apps Komut Dosyası

Etkileşimli özellikler için etkinleştirilmiş bir Google Chat uygulaması. Apps Komut Dosyası'nda etkileşimli bir Chat uygulaması oluşturmak için bu hızlı başlangıç kılavuzunu tamamlayın.

Python

Etkileşimli özellikler için etkinleştirilmiş bir Google Chat uygulaması. HTTP hizmetini kullanarak etkileşimli bir Chat uygulaması oluşturmak için bu hızlı başlangıç kılavuzunu tamamlayın.

Java

Etkileşimli özellikler için etkinleştirilmiş bir Google Chat uygulaması. HTTP hizmetini kullanarak etkileşimli bir Chat uygulaması oluşturmak için bu hızlı başlangıç kılavuzunu tamamlayın.

Eğik çizgi komutu oluşturma

Bu bölümde, eğik çizgi komutu oluşturmak için aşağıdaki adımları nasıl tamamlayacağınız açıklanmaktadır:

  1. Eğik çizgi komutunuz için bir ad oluşturun.
  2. Google Chat API'de eğik çizgi komutunu yapılandırın.

Eğik çizgi komutunuza ad verin

Eğik çizgi komutunun adı, kullanıcıların Chat uygulamasını çağırmak için Chat mesajına yazdıkları şeydir. Adın altında, kullanıcılara komutun nasıl kullanılacağı hakkında daha fazla bilgi veren kısa bir açıklama da gösterilir:

Eğik çizgi komutu adı ve açıklaması
Şekil 2: Eğik çizgi komutunun adı ve açıklaması.

Slash komutunuz için ad ve açıklama seçerken aşağıdaki önerileri göz önünde bulundurun:

  • Eğik çizgi komutunuzu adlandırmak için:

    • Komutları kullanıcı için net ve basit hale getirmek amacıyla kısa, açıklayıcı ve işlem yapılabilir kelimeler veya kelime öbekleri kullanın. Örneğin, /createAReminder yerine /remindMe yazın.
    • Komutunuz birden fazla kelimeden oluşuyorsa ilk kelime için tümüyle küçük harfleri, diğer kelimelerin ilk harfini büyük yazarak kullanıcıların komutu okumasına yardımcı olun. Örneğin, /updatecontact yerine /updateContact kullanın.
    • Komutunuz için benzersiz mi yoksa yaygın bir ad mı kullanacağınızı düşünün. Komutunuz tipik bir etkileşimi veya özelliği tanımlıyorsa kullanıcıların tanıdığı ve beklediği yaygın bir ad (ör. /settings veya /feedback) kullanabilirsiniz. Aksi takdirde, benzersiz komut adları kullanmayı deneyin. Aksi takdirde, komut adınız diğer Chat uygulamalarıyla aynıysa kullanıcının komutunuzu bulup kullanması için benzer komutları filtrelemesi gerekir.
  • Eğik çizgi komutunuzu açıklamak için:

    • Kullanıcıların komutu çağırdığında ne beklemeleri gerektiğini bilmesi için açıklamayı kısa ve net tutun.
    • Komut için biçimlendirme şartları olup olmadığını kullanıcılara bildirin. Örneğin, bağımsız değişken metni gerektiren bir /remindMe komutu oluşturursanız açıklamayı Remind me to do [something] at [time] gibi bir değere ayarlayın.
    • Chat uygulamasının, alandaki herkese mi yoksa komutu çağıran kullanıcıya özel olarak mı yanıt vereceğini kullanıcılara bildirin. Örneğin, eğik çizgi komutu /about için Learn about this app (Only visible to you) ifadesini kullanabilirsiniz.

Google Chat API'de eğik çizgi komutunuzu yapılandırma

Eğik çizgi komutu oluşturmak için Chat uygulamanızın Google Chat API yapılandırmasında komutla ilgili bilgileri belirtmeniz gerekir.

Google Chat API'de eğik çizgi komutu yapılandırmak için aşağıdaki adımları uygulayın:

  1. Google Cloud Console'da Menü > API'ler ve Hizmetler > Etkin API'ler ve Hizmetler > Google Chat API'yi tıklayın.

    Google Chat API sayfasına gidin

  2. Yapılandırma'yı tıklayın.

  3. Eğik çizgi komutları bölümünde Eğik çizgi komutu ekle'yi tıklayın.

  4. Komut için bir ad, komut kimliği ve açıklama girin:

    1. Ad: Komutun görünen adı ve kullanıcıların uygulamanızı çağırmak için yazdığı metin. / ile başlamalı, yalnızca metin içermeli ve en fazla 50 karakter uzunluğunda olmalıdır.
    2. Açıklama: Komutun nasıl kullanılacağını ve biçimlendirileceğini açıklayan metin. Açıklamalar en fazla 50 karakter olabilir.
    3. Komut kimliği: Chat uygulamanızın eğik çizgi komutunu tanıyıp yanıt döndürmek için kullandığı 1 ile 1.000 arasında bir sayı.
  5. İsteğe bağlı: Chat uygulamanızın komuta iletişim kutusu ile yanıt vermesini istiyorsanız İletişim kutusu aç onay kutusunu işaretleyin.

  6. Kaydet'i tıklayın.

Eğik çizgi komutu artık Chat uygulaması için yapılandırılmıştır.

Eğik çizgi komutuna yanıt verme

Kullanıcılar eğik çizgi komutu içeren bir Chat mesajı oluşturduğunda Chat uygulamanız bir MESSAGE etkileşim etkinliği alır. Etkinlik yükü, slashCommand ve slashCommandMetadata nesnelerini içerir. Bu nesneler, uygun bir yanıt döndürebilmeniz için mesajda kullanılan komutla ilgili ayrıntıları (komut kimliği dahil) içerir.

Cymbal Labs Chat uygulamasına gönderilen özel mesaj. Mesajda, Chat uygulamasının Cymbal Labs tarafından oluşturulduğu belirtilir ve dokümanların yanı sıra destek ekibiyle iletişime geçebileceğiniz bir bağlantı paylaşılır.
Chat uygulaması, nasıl destek alacağınızı açıklamak için eğik çizgi komutuna /help özel olarak yanıt verir.

Aşağıdaki kodda, MESSAGE etkileşim etkinliklerini işleyerek ve mesajın eşleşen komut kimliğini içerip içermediğini tespit ederek /about eğik çizgi komutuna yanıt veren bir Chat uygulaması örneği gösterilmektedir. Mesajda komut kimliği varsa Chat uygulaması özel bir mesaj döndürür:

Node.js

node/avatar-app/index.js
/**
 * Handles slash and quick commands.
 *
 * @param {Object} event - The Google Chat event.
 * @param {Object} res - The HTTP response object.
 */
function handleAppCommands(event, res) {
  const {appCommandId, appCommandType} = event.appCommandMetadata;

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
    case HELP_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
  }
}

Apps Komut Dosyası

apps-script/avatar-app/avatar-app.gs
// Checks for the presence of a slash command in the message.
if (event.message.slashCommand) {
  // Executes the slash command logic based on its ID.
  // Slash command IDs are set in the Google Chat API configuration.
  switch (event.message.slashCommand.commandId) {
    case ABOUT_COMMAND_ID:
      return {
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      };
  }
}

Python

python/avatar-app/main.py
def handle_app_commands(event: Mapping[str, Any]) -> Mapping[str, Any]:
    """Handles slash and quick commands.

    Args:
        Mapping[str, Any] event: The Google Chat event.

    Returns:
        Mapping[str, Any]: the response
    """
    app_command_id = event["appCommandMetadata"]["appCommandId"]

    if app_command_id == ABOUT_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    elif app_command_id == HELP_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    return {}

Java

java/avatar-app/src/main/java/AvatarApp.java
/**
 * Handles slash and quick commands.
 *
 * @param event    The Google Chat event.
 * @param response The HTTP response object.
 */
private void handleAppCommands(JsonObject event, HttpResponse response) throws Exception {
  int appCommandId = event.getAsJsonObject("appCommandMetadata").get("appCommandId").getAsInt();

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      Message aboutMessage = new Message();
      aboutMessage.setText("The Avatar app replies to Google Chat messages.");
      aboutMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(aboutMessage));
      return;
    case HELP_COMMAND_ID:
      Message helpMessage = new Message();
      helpMessage.setText("The Avatar app replies to Google Chat messages.");
      helpMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(helpMessage));
      return;
  }
}

ABOUT_COMMAND_ID değerini, Chat API'de eğik çizgi komutunu yapılandırırken belirttiğiniz komut kimliğiyle ayarlayın. Bu kodu test etmek için Google Chat uygulamaları için etkileşimli özellikleri test etme başlıklı makaleyi inceleyin.