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.
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:- Google Cloud Functions ile HTTP hizmeti
- Google Apps Komut Dosyası
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
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
).
- Serbest biçimli veya önerilen metin için metin girişleri (
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_CLICKED
etkileş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_CLICKED
etkileş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_CLICKED
etkileş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.
İlgili konular
- Kullanıcılardan kart mesajlarından ve iletişim kutularından bir iletişim formunu doldurmalarını isteyen bir Chat uygulaması olan İletişim Yöneticisi örneğini görüntüleyin.
- Etkileşimli iletişim kutuları açma