Google Chat kullanıcılarından bilgi toplama ve işleme

Bu kılavuzda, Google Chat uygulamalarının bilgileri nasıl toplayıp işleyebileceği açıklanmaktadır. kullanıcılardan gelen verileri kullanarak tamamlayabilirsiniz.

Çeşitli widget'ların gösterildiği bir iletişim kutusu.
Şekil 1: A örnek uygulamasını İletişim bilgilerini toplamak için bir iletişim kutusu açar.

Chat uygulamaları, Chat'te veya Chat dışında işlem yapmak için aşağıdakiler de dahil olmak üzere kullanıcılardan bilgi ister:

  • Ayarları yapılandırın. Örneğin, kullanıcıların bildirim ayarlarını özelleştirmesine izin vermek için veya Chat uygulamasını yapılandırıp bir ya da daha fazla cihaza ekleyin alanlar'a dokunun.
  • Diğer Google Workspace uygulamalarında bilgi oluşturun veya bilgileri güncelleyin. Örneğin, Örneğin, kullanıcıların Google Takvim etkinliği oluşturmasına izin verin.
  • Kullanıcıların diğer uygulamalardaki veya web hizmetlerindeki kaynaklara erişmesine ve bunları güncellemesine izin verme. Örneğin, Örneğin, bir Chat uygulaması, kullanıcıların doğrudan bir Chat alanından gönderilen destek kaydının durumunu gösterir.

Ön koşullar

Etkileşimli özellikler için etkinleştirilmiş bir Google Chat uygulaması. Etkileşimli bir Chat uygulaması oluşturmak için kullanmak istediğiniz uygulama mimarisine göre aşağıdaki hızlı başlangıç kılavuzlarından birini tamamlayın:

Kartları kullanarak formlar oluşturun

Chat uygulamaları, bilgi toplamak için formlar ve bunların girişlerini tasarlar. ve kartlara dönüştürüyorum. Chat uygulamaları, kullanıcılara kart göstermek için aşağıdaki Chat arayüzlerini kullanabilir:

  • Bir veya daha fazla kart içeren mesajlar
  • Chat uygulamasındaki doğrudan mesajlarda Ana Sayfa sekmesinde görünen bir kart olan Ana sayfalar.
  • İletişim kutuları, yani iletişim kutusunda yeni bir pencerede açılır.

Chat uygulamaları, kartları aşağıdaki widget'ları kullanarak oluşturabilir:

  • Kullanıcılardan bilgi isteyen form girişi widget'ları. İsteğe bağlı olarak, kullanıcıların bilgileri doğru şekilde girip biçimlendirdiğinden emin olmak için form giriş widget'larına doğrulama ekleyebilirsiniz. Chat uygulamaları aşağıdaki form giriş widget'larını kullanabilir:

    • Serbest biçimli veya önerilen metin için metin girişleri (textInput).
    • Seçim girişleri (selectionInput) onay kutuları gibi seçilebilir kullanıcı arayüzü öğeleridir radyo düğmelerini ve açılır menüleri kullanabilirsiniz. Seçim giriş widget'ları, statik veya dinamik veri kaynaklarından öğelerle de doldurulabilir. Örneğin, kullanıcılar üyesi olduğu Chat alanları listesinden seçim yapabilir.
    • Tarih ve saat girişleri için tarih saat seçicileri (dateTimePicker).
  • Kullanıcıların karta girdikleri değerleri gönderebilmesi için bir düğme widget'ı. Kullanıcı düğmeyi tıkladıktan sonra Chat uygulaması aldığı bilgileri işleyebilir.

Aşağıda, üç farklı tarih ve saat girişi türünden oluşan bir kart gösterilmektedir:

Widget'ları tek bir yerden toplu olarak toplamak için kullanabileceğiniz bkz. Etkileşimli bir kart veya iletişim kutusu tasarlayın.

Etkileşimli widget'lardan veri alma

Kullanıcılar bir düğmeyi tıkladığında Chat uygulamaları, etkileşimle ilgili bilgileri içeren bir CARD_CLICKEDetkileşim etkinliği alır. CARD_CLICKED etkileşim etkinliklerinin yükü, kullanıcının girdiği tüm değerleri içeren bir common.formInputs nesnesi içerir.

Değerleri nesneden alabilirsiniz common.formInputs.WIDGET_NAME, burada: WIDGET_NAME, widget için belirttiğiniz name alanıdır. Değerler, widget için belirli bir veri türü olarak döndürülür (Inputs nesnesi olarak temsil edilir). Aşağıdaki örnekte, bir kart metin girişi, tarih saat seçici ve seçim girişi widget'ı kullanarak iletişim bilgilerini toplamaktadır:

{
  "textInput": {
    "name": "contactName",
    "label": "First and last name",
    "type": "SINGLE_LINE"
  }
}, {
  "dateTimePicker": {
    "name": "contactBirthdate",
    "label": "Birthdate",
    "type": "DATE_ONLY"
  }
}, {
  "selectionInput": {
    "name": "contactType",
    "label": "Contact type",
    "type": "RADIO_BUTTON",
    "items": [
      {
        "text": "Work",
        "value": "Work",
        "selected": false
      },
      {
        "text": "Personal",
        "value": "Personal",
        "selected": false
      }
    ]
  }
}

Etkileşim etkinliğini işleme

Bir kullanıcı bir karta veya iletişim kutusuna veri girdiğinde Chat uygulamanız, kullanıcı tarafından girilen değerleri içeren bir Chat uygulaması CARD_CLICKEDetkileşimi etkinliği alır.

Aşağıda, kullanıcının her widget için değer girdiği bir CARD_CLICKED etkileşim etkinliğinin bir kısmı gösterilmektedir:

HTTP

{
  "type": "CARD_CLICKED",
  "common": { "formInputs": {
    "contactName": { "stringInputs": {
      "value": ["Kai 0"]
    }},
    "contactBirthdate": { "dateInput": {
      "msSinceEpoch": 1000425600000
    }},
    "contactType": { "stringInputs": {
      "value": ["Personal"]
    }}
  }}
}

Apps Komut Dosyası

{
  "type": "CARD_CLICKED",
  "common": { "formInputs": {
    "contactName": { "": { "stringInputs": {
      "value": ["Kai 0"]
    }}},
    "contactBirthdate": { "": { "dateInput": {
      "msSinceEpoch": 1000425600000
    }}},
      "contactType": { "": { "stringInputs": {
      "value": ["Personal"]
    }}}
  }}
}

Chat uygulamanız, kullanıcıların widget'lara girdikleri değerleri almak için etkileşim etkinliğini yöneterek verileri alır. Aşağıdakiler tablosu, belirli bir form giriş widget'ı için değerin nasıl alınacağını gösterir. Her widget için Tabloda, widget'ın kabul ettiği veri türü ve değerin nerede depolandığı gösterilir. ve örnek bir değer girin.

Form girişi widget'ı Giriş verilerinin türü Etkileşim etkinliğinden alınan giriş değeri Örnek değer
textInput stringInputs events.common.formInputs.contactName.stringInputs.value[0] Kai O
selectionInput stringInputs İlk veya tek değeri elde etmek için events.common.formInputs.contactType.stringInputs.value[0] Personal
Yalnızca tarihleri kabul eden dateTimePicker. dateInput events.common.formInputs.contactBirthdate.dateInput.msSinceEpoch. 1000425600000

Verileri başka bir karta aktarma

Kullanıcı bir karttaki bilgileri gönderdikten sonra geri dönmeniz gerekebilir ek kartları kullanabilirsiniz:

  • Ayrı bölümler oluşturarak kullanıcıların daha uzun formları doldurmasına yardımcı olun.
  • Kullanıcıların ilk karttaki bilgileri önizlemelerine ve onaylamalarına izin verin. Böylece, ve göndermeden önce yanıtlarını inceleyebilir.
  • Formun geri kalan bölümlerini dinamik olarak doldurun. Örneğin, randevu almasını sağlarsanız Chat uygulaması randevunun nedenini isteyen bir başlangıç kartı görüntülemelidir ve Ardından, seçilen karta göre uygun zamanları sağlayan randevu türü.

İlk karttaki veri girişini aktarmak için button actionParameters içeren widget gibi, widget'ın name ve kullanıcının girdiği değeri içeren aşağıdaki örnekte:

{
  "buttonList": {
    "buttons": [{
      "text": "Submit",
      "onClick": {
        "action": {
          "function": "openNextCard",
          "parameters": [{
            "key": "WIDGET_NAME",
            "value": "USER_INPUT_VALUE"
          }]
        }
      }
    }]
  }
}

Burada WIDGET_NAME widget'ın name ve USER_INPUT_VALUE, kullanıcının girdiği giriştir. Örneğin, bir kişinin adını toplayan bir metin girişi için widget adı contactName ve örnek değer Kai O olur.

Kullanıcı düğmeyi tıkladığında Chat uygulamanız bir CARD_CLICKEDetkileşim etkinliği alır. Değerleri almak için event.common.parameters nesnesini kullanabilirsiniz.

Aşağıda, kullanıcı adı içeren parametrelerin nasıl iletileceğine verileri sonraki kartı açan bir fonksiyona girin:

Node.js

// Respond to button clicks on cards or dialogs
if (event.type === "CARD_CLICKED") {

  // Open another card.
  if (event.common.invokedFunction === "openNextCard") {
    const parameters = event.common.parameters;
    openNextCard(event);
  }
}

Python

  # Respond to button clicks on cards or dialogs
  if request.get('type') == 'CARD_CLICKED':
    if invoked_function := request.get('common', dict()).get('invokedFunction'):
      if invoked_function == 'open_next_card':
        parameters = request.get('common', dict()).get('parameters'),
        return open_next_card(parameters)

Apps Komut Dosyası

// Respond to button clicks on cards or dialogs
function onCardClick(event) {
  if (event.common.invokedFunction === "openNextCard") {
    const parameters = event.common.parameters;
    return openNextCard(parameters);
  }
}

Form gönderimine yanıt verme

Bir kart mesajından veya iletişim kutusundan veri aldıktan sonra Chat uygulaması, okundu bilgisini onaylayarak veya hata döndürüyor.

Aşağıdaki örnekte, bir Chat uygulaması gönderilen bir formu başarıyla aldığını teyit etmek için kart mesajı.

Apps Komut Dosyası

function submitCardForm(contactName, contactBirthdate, contactType) {
    return {
      "text": "You entered the following contact information:\n\n" +
      "*Name:* " + contactName + "\n" +
      "*Birthdate:* " + contactBirthdate + "\n" +
      "*Type:* " + contactType
      }
}

Bir iletişim kutusunu işlemek ve kapatmak için onay mesajı göndermek, orijinal mesajı veya kartı güncellemek ya da yalnızca iletişim kutusunu kapatmak istediğinizi belirten bir ActionResponse nesnesi döndürürsünüz. Adımlar için İletişim kutusunu kapatma başlıklı makaleyi inceleyin.

Sorun giderme

Bir Google Chat uygulaması veya card bir hata döndürürse Chat arayüzünde "Bir sorun oluştu" mesajı gösteriliyor. veya "İsteğiniz işlenemiyor." Chat kullanıcı arayüzü herhangi bir hata mesajı görüntülenmiyor ancak Chat uygulaması veya kart beklenmeyen bir sonuç veriyorsa; Örneğin karttaki bir mesajda görünür.

Chat kullanıcı arayüzünde hata mesajı gösterilmeyebilir ancak Chat uygulamaları için hata günlüğü etkinleştirildiğinde hataları düzeltmenize yardımcı olacak açıklayıcı hata mesajları ve günlük verileri kullanılabilir. Hataları görüntüleme, hata ayıklama ve düzeltme hakkında yardım için Google Chat hatalarını giderme başlıklı makaleyi inceleyin.