Bu kılavuzda, kullanıcıların girdiği bilgilerin nasıl alınacağı ve okunacağı açıklanmaktadır. kart mesajları ve iletişim kutuları. Kullanıcılar, Chat uygulamalarının aldığı, okuduğu ve yanıt verdiği verileri girebilir . Kullanıcıların bilgi girmesine olanak tanıyan widget'lar şunlardır:
TextInput
önerileri de destekleyen serbest biçimli metin girişi için.SelectionInput
liste öğeleri ve menüler için (onay kutuları, radyo düğmeleri ve açılır menüler gibi) kullanın.DateTimePicker
kullanabilirsiniz.
Chat uygulamaları için JSON kart mesajları tasarlayıp önizlemek üzere Kart Oluşturucu'yu kullanın:
Kart Oluşturucu'yu açınKullanıcılardan veri girişi alındığında Chat uygulamaları aşağıdaki gibi işlemleri yapabilir: şu:
- Müşteri hizmetleri destek kayıtlarını güncelleme.
- İş siparişleri oluşturabilir.
- Web hizmetleriyle kimlik doğrulayın.
Ön koşullar
Node.js
Etkileşimli özellikler için etkinleştirilmiş bir Google Chat uygulaması. Bir HTTP hizmeti kullanarak etkileşimli Chat uygulaması 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ı. Bir Apps Komut Dosyası'ndaki etkileşimli Chat uygulaması için bu hızlı başlangıç kılavuzunu tamamlayın.
Python
Etkileşimli özellikler için etkinleştirilmiş bir Google Chat uygulaması. Bir HTTP hizmeti kullanarak etkileşimli Chat uygulaması için bu hızlı başlangıç kılavuzunu tamamlayın.
Veri almanın işleyiş şekli
Chat uygulaması, bilgileri kullanıcıya
iletişim kutusu veya kart mesajı gösterir. Bu örnekte, bir iletişim kutusunda kullanıcıdan
iletişim bilgilerini kullanarak
TextInput
ve
SelectionInput
widget'lar:
İşlem tamamlandığında Chat uygulaması, iletişim kutusuna JSON biçiminde ve etkileşim etkinliği:
EventType
içinCARD_CLICKED
.DialogEventType
SUBMIT_DIALOG
(yalnızca iletişim kutuları için).
Kullanıcıların yazdıklarıyla ilgili verileri almak için şunu kullanın:
Event.common.formInputs
alanına girin. formInputs
alanı, anahtarların bulunduğu haritadır
her bir widget'a atanan dize kimlikleri ve değerler,
tıklayın. Farklı nesneler, farklı giriş verisi türlerini temsil eder. Örneğin,
Örneğin,
Event.common.formInputs.stringInputs
dize girişlerini temsil eder.
Uygulamanız, kullanıcı tarafından girilen ilk değere şu adreste erişebilir:
event.common.formInputs.NAME.stringInputs.value[0]
,
burada NAME
bir değeri name
alanıdır
TextInput
widget'ı.
Kartlardan veri alma
Kullanıcı bir kart mesajına veri girdiğinde Chat uygulaması bir Chat uygulaması alır aşağıdaki örnekteki gibi bir etkileşim etkinliği oluşturun:
JSON
{
"type": enum (EventType),
"eventTime": string,
"threadKey": string,
"message": {
object (Message)
},
"user": {
object (User)
},
"space": {
object (Space)
},
"action": {
object (FormAction)
},
"configCompleteRedirectUrl": string,
"common": {
// Represents user data entered in a card.
"formInputs": {
// Represents user data entered for a specific field in a card.
"NAME": {
// Represents string data entered in a card, like text input fields
// and check boxes.
"stringInputs": {
// An array of strings entered by the user in a card.
"value": [
string
]
}
}
},
"parameters": {
string: string,
...
},
"invokedFunction": string
}
}
İletişim kutularından veri alma
Kullanıcı iletişim kutusunda veri gönderdiğinde Chat uygulamanız başka bir Chat uygulaması etkileşim etkinliği aldığında, aşağıdaki örneği inceleyin:
JSON
{
"type": enum (EventType),
"eventTime": string,
"threadKey": string,
"message": {
object (Message)
},
"user": {
object (User)
},
"space": {
object (Space)
},
"action": {
object (FormAction)
},
"configCompleteRedirectUrl": string,
// Indicates that this event is dialog-related.
"isDialogEvent": true,
// Indicates that a user clicked a button, and all data
// they entered in the dialog is included in Event.common.formInputs.
"dialogEventType": "SUBMIT_DIALOG",
"common": {
"userLocale": string,
"hostApp": enum (HostApp),
"platform": enum (Platform),
"timeZone": {
object (TimeZone)
},
// Represents user data entered in a dialog.
"formInputs": {
// Represents user data entered for a specific field in a dialog.
"NAME": {
// Represents string data entered in a dialog, like text input fields
// and check boxes.
"stringInputs": {
// An array of strings entered by the user in a dialog.
"value": [
string
]
}
}
},
"parameters": {
string: string,
...
},
"invokedFunction": string
}
}
Kart mesajından veya iletişim kutusundan toplanan verilere yanıt verme
Bir kart mesajından veya iletişim kutusundan veri aldıktan sonra
Chat uygulaması, makbuzu onaylayarak veya
hatası döndürüyor. Bu işlemlerin her ikisi de bir
ActionResponse
:
- Başarılı makbuzu onaylamak için
ActionResponse
parametresi için"actionStatus": "OK"
değerine ayarlanır. - Hata döndürmek için
ActionResponse
parametresi için"actionStatus": "ERROR MESSAGE"
değerine ayarlanır.
Örnek
Aşağıdaki örnekte bir name
değerinin olup olmadığı kontrol edilir. Yoksa
uygulama hata döndürüyor. Varsa uygulama, form verilerinin alındığını onaylar
ve iletişim kutusunu kapatır.
Node.js
/**
* Checks for a form input error, the absence of
* a "name" value, and returns an error if absent.
* Otherwise, confirms successful receipt of a dialog.
*
* Confirms successful receipt of a dialog.
*
* @param {Object} event the event object from Chat API.
*
* @return {object} open a Dialog in Google Chat.
*/
function receiveDialog(event) {
// Checks to make sure the user entered a name
// in a dialog. If no name value detected, returns
// an error message.
if (event.common.formInputs.WIDGET_NAME.stringInputs.value[0] == "") {
res.json({
"actionResponse": {
"type": "DIALOG",
"dialogAction": {
"actionStatus": "Don't forget to name your new contact!"
}
}
});
// Otherwise the app indicates that it received
// form data from the dialog. Any value other than "OK"
// gets returned as an error. "OK" is interpreted as
// code 200, and the dialog closes.
} else {
res.json({
"actionResponse": {
"type": "DIALOG",
"dialogAction": {
"actionStatus": "OK"
}
}
});
}
}
Apps Komut Dosyası
Bu örnekte, kart JSON'a ekleyin. Ayrıca şunu da kullanabilirsiniz: Apps Komut Dosyası kart hizmeti.
/**
* Checks for a form input error, the absence of
* a "name" value, and returns an error if absent.
* Otherwise, confirms successful receipt of a dialog.
*
* Confirms successful receipt of a dialog.
*
* @param {Object} event the event object from Chat API.
*
* @return {object} open a Dialog in Google Chat.
*/
function receiveDialog(event) {
// Checks to make sure the user entered a name
// in a dialog. If no name value detected, returns
// an error message.
if (event.common.formInputs.WIDGET_NAME[""].stringInputs.value[0] == "") {
return {
"actionResponse": {
"type": "DIALOG",
"dialogAction": {
"actionStatus": "Don't forget to name your new contact!"
}
}
};
// Otherwise the app indicates that it received
// form data from the dialog. Any value other than "OK"
// gets returned as an error. "OK" is interpreted as
// code 200, and the dialog closes.
} else {
return {
"actionResponse": {
"type": "DIALOG",
"dialogAction": {
"actionStatus": "OK"
}
}
};
}
}
Python
def receive_dialog(event: Mapping[str, Any]) -> Mapping[str, Any]:
"""Checks for a form input error, the absence of a "name" value, and returns
an error if absent. Otherwise, confirms successful receipt of a dialog.
Args:
event (Mapping[str, Any]): the event object from Chat API.
Returns:
Mapping[str, Any]: the response.
"""
if common := event.get('common'):
if form_inputs := common.get('formInputs'):
if contact_name := form_inputs.get('WIDGET_NAME'):
if string_inputs := contact_name.get('stringInputs'):
if name := string_inputs.get('value')[0]:
return {
'actionResponse': {
'type': 'DIALOG',
'dialogAction': {
'actionStatus': 'OK'
}
}
}
else:
return {
'actionResponse': {
'type': 'DIALOG',
'dialogAction': {
'actionStatus': 'Don\'t forget to name your new contact!'
}
}
}
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örüntülenmese de Hataları düzeltmenize yardımcı olmak için açıklayıcı hata mesajları ve günlük verileri sunulur Chat uygulamaları için hata günlük kaydı etkinleştirildiğinde. Görüntüleme konusunda yardım için ve hataları düzeltme ile ilgili daha fazla bilgi edinmek için Google Chat hatalarını giderme ve düzeltme
İlgili konular
- Kullanıcılardan gelen bilgileri işleyen Chat uygulaması örneklerini görüntüleyin.
- Etkileşimli iletişim kutularını açma