Bu sayfada, kullanıcıların Google Chat uygulamanızla etkileşimde bulunabilmesi için kartlara nasıl widget ve kullanıcı arayüzü öğesi ekleneceği (ör. düğme tıklama veya bilgi gönderme) açıklanmaktadır.
Sohbet uygulamaları, etkileşimli kartlar oluşturmak için aşağıdaki Chat arayüzlerini kullanabilir:
- Bir veya daha fazla kart içeren mesajlar.
- Chat uygulamasıyla doğrudan mesajlarda Ana Sayfa sekmesinden görünen bir kart olan Ana Sayfalar
- İletişim kutuları: İletilerden ve ana sayfalardan yeni bir pencerede açılan kartlardır.
Kullanıcılar kartlarla etkileşimde bulunduğunda Chat uygulamaları, aldıkları verileri işlemek ve buna göre yanıt vermek için kullanabilir. Ayrıntılı bilgi için Google Chat kullanıcılarından bilgi toplama ve bu bilgileri işleme başlıklı makaleyi inceleyin.
Chat uygulamaları için mesajlaşma ve kullanıcı arayüzlerini tasarlamak ve önizlemek üzere Kart Oluşturucu'yu kullanın:
Kart Oluşturucu'yu açınÖn koşullar
Kullanıcı etkileşimlerini alıp yanıtlayacak şekilde yapılandırılmış 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ıçlardan birini tamamlayın:
- Google Cloud Functions ile HTTP hizmeti
- Google Apps Komut Dosyası
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
Düğme ekleme
ButtonList widget'ında bir dizi düğme gösterilir. Düğmelerde metin, simge veya hem metin hem de simge gösterilebilir. Her
Button
kullanıcılar
düğmeyi tıkladığında
gerçekleşen bir
OnClick işlemi
destekler. Örneğin:
- Kullanıcılara ek bilgi sağlamak için
OpenLinkile bir köprü açın. - API çağırma gibi özel bir işlevi çalıştıran bir
actionçalıştırın.
Erişilebilirlik için düğmelerde alternatif metin desteği bulunur.
Özel işlev çalıştıran bir düğme ekleme
Aşağıda, iki düğmeli bir ButtonList widget'ından oluşan bir kart gösterilmektedir.
Bir düğme, Google Chat geliştirici belgelerini yeni bir sekmede açar. Diğer düğme, goToView() adlı özel bir işlevi çalıştırır ve viewType="BIRD EYE VIEW" parametresini iletir.
Materyal Tasarım stiline sahip bir düğme ekleme
Aşağıda, farklı Materyal Tasarım düğme stillerinde bir dizi düğme gösterilmektedir.
Materyal Tasarım stilini uygulamak için "color" özelliğini eklemeyin.
Özel renkli ve devre dışı bırakılmış bir düğme ekleme
"disabled": "true" ayarını yaparak kullanıcıların bir düğmeyi tıklamasını engelleyebilirsiniz.
Aşağıda, iki düğmeli bir ButtonList widget'ından oluşan bir kart gösterilmektedir. Bir düğme, düğmenin arka plan rengini özelleştirmek için Color alanını kullanır. Diğer düğme, Disabled alanı ile devre dışı bırakılır. Bu durum, kullanıcının düğmeyi tıklamasını ve işlevi yürütmesini engeller.
Simge içeren bir düğme ekleme
Aşağıda, iki simge Button widget'ı içeren bir ButtonList widget'ından oluşan bir kart gösterilmektedir. Bir düğme, Google Chat'in yerleşik e-posta simgesini göstermek için knownIcon alanını kullanır. Diğer düğme ise iconUrl alanını kullanarak özel simge widget'ı gösterir.
Simge ve metin içeren bir düğme ekleme
Aşağıda, kullanıcıdan e-posta göndermesini isteyen bir ButtonList widget'ından oluşan bir kart gösterilmektedir. İlk düğmede e-posta simgesi, ikinci düğmede ise metin gösterilir. Kullanıcı, sendEmail işlevini çalıştırmak için simgeyi veya metin düğmesini tıklayabilir.
Daraltılabilir bölümün düğmesini özelleştirme
Kart içindeki bölümleri daraltıp genişleten kontrol düğmesini özelleştirin. Bölümün içeriğini görsel olarak temsil etmek için çeşitli simgeler veya resimler arasından seçim yapın. Böylece kullanıcılar bilgileri daha kolay anlayıp bunlarla etkileşime geçebilir.
Taşma menüsü ekleme
Overflow menu, ek seçenekler ve işlemler sunmak için sohbet kartlarında kullanılabilir. Bu özellik, kartın arayüzünü karıştırmadan daha fazla seçenek eklemenize olanak tanır ve temiz ve düzenli bir tasarım sağlar.
Çip listesi ekleme
ChipList
widget'ı, bilgileri çok yönlü ve görsel açıdan çekici bir şekilde görüntülemenizi sağlar.
Etiketleri, kategorileri veya diğer alakalı verileri temsil etmek için çip listelerini kullanarak kullanıcıların içeriğinizde gezinmesini ve içerikle etkileşim kurmasını kolaylaştırın.
Kullanıcılardan bilgi toplama
Bu bölümde, metin veya seçim gibi bilgileri toplayan widget'ları nasıl ekleyebileceğiniz açıklanmaktadır.
Kullanıcıların girdiği bilgileri nasıl işleyeceğinizi öğrenmek için Google Chat kullanıcılarından bilgi toplama ve işleme başlıklı makaleyi inceleyin.
Metin toplama
TextInput widget'ı, kullanıcıların metin girebileceği bir alan sağlar. Bu widget, kullanıcıların tek tip veriler girmesine yardımcı olan önerileri ve metin giriş alanında değişiklik olduğunda (ör. kullanıcı metin eklediğinde veya sildiğinde) çalışan Actions olan değişiklik üzerine işlemleri destekler.
Kullanıcılardan soyut veya bilinmeyen veriler toplamanız gerektiğinde bu TextInput widget'ını kullanın. Kullanıcılardan tanımlı verileri toplamak için bunun yerine
SelectionInput
widget'ını kullanın.
Aşağıda, TextInput widget'ından oluşan bir kart gösterilmektedir:
Tarih veya saat toplama
DateTimePicker widget'ı, kullanıcıların tarih, saat veya hem tarih hem de saat girmesine olanak tanır. Kullanıcılar tarih ve saat seçmek için seçiciyi de kullanabilir. Kullanıcılar geçersiz bir tarih veya saat girerse seçicide, bilgileri doğru şekilde girmelerini isteyen bir hata gösterilir.
Aşağıda, üç farklı türde DateTimePicker widget'tan oluşan bir kart gösterilmektedir:
Kullanıcıların öğe seçmesine izin verme
SelectionInput widget'ı
onay kutuları, radyo düğmeleri, anahtarlar veya açılır menü gibi bir dizi seçilebilir öğe sağlar. Bu widget'ı kullanarak kullanıcılardan tanımlanmış ve standartlaştırılmış veriler toplayabilirsiniz. Kullanıcılardan tanımlanmamış veriler toplamak için bunun yerine TextInput widget'ını kullanın.
SelectionInput widget'ı, kullanıcıların tek tip veri girmesine yardımcı olan önerileri ve bir seçim giriş alanında değişiklik olduğunda (ör. kullanıcının bir öğeyi seçmesi veya seçimini kaldırması) çalışan Actions olan değişiklik üzerine işlemleri destekler.
Sohbet uygulamaları, seçilen öğelerin değerini alıp işleyebilir. Form girişleriyle çalışma hakkında ayrıntılı bilgi için Kullanıcılar tarafından girilen bilgileri işleme başlıklı makaleyi inceleyin.
Bu bölümde, SelectionInput widget'ını kullanan kartlara örnekler verilmiştir.
Örneklerde farklı türde bölüm girişleri kullanılmaktadır:
Onay kutusu ekleme
Aşağıda, kullanıcının bir kişinin profesyonel, kişisel veya her ikisi de olup olmadığını belirtmesini isteyen bir kart gösterilmektedir. Bu kartta onay kutularını kullanan bir SelectionInput widget'ı bulunur:
Radyo düğmesi ekleme
Aşağıda, kullanıcının bir kişinin profesyonel mi yoksa kişisel mi olduğunu belirtmesini isteyen bir kart gösteriliyor. Bu kartta radyo düğmelerini kullanan bir SelectionInput widget'ı yer alıyor:
Anahtar ekleme
Aşağıda, kullanıcının bir kişinin profesyonel mi, kişisel mi yoksa her ikisiyle de mi ilgili olduğunu belirtmesini isteyen bir kart gösterilmektedir. Bu kartta, açma/kapatma düğmelerini kullanan bir SelectionInput widget'ı yer alır:
Açılır menü ekleme
Aşağıda, kullanıcının bir kişinin profesyonel mi yoksa kişisel mi olduğunu belirtmesini isteyen bir kart gösterilmektedir. Bu kartta, açılır menü kullanan bir SelectionInput widget'ı yer alır:
Açılır menüleri dinamik olarak doldurma
Google Chat uygulamalarında kullanılabilir.
Açılır menüdeki öğeleri Google Workspace'teki veri kaynaklarından veya harici bir veri kaynağından dinamik olarak doldurabilirsiniz. Dinamik veri kaynaklarını kullanmak için DataSourceConfig nesnelerinden oluşan bir dizi olan data_source_configs alanını belirtirsiniz. Her DataSourceConfig, platformDataSource veya remoteDataSource içerebilir. Şu anda yalnızca bir DataSourceConfig desteklenmektedir.
Google Workspace'teki öğeleri doldurma
Google Workspace kullanıcıları gibi Google Workspace veri kaynaklarındaki öğeleri doldurmak için DataSourceConfig içinde platformDataSource alanını belirtirsiniz. Statik items kullanmanın aksine, bu seçim öğeleri Google Workspace'ten dinamik olarak alındığı için SelectionItem nesnelerini atlıyorsunuz.
Aşağıdaki kodda, Google Workspace kullanıcılarıyla doldurulan bir açılır menü gösterilmektedir:
JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "contacts",
"type": "DROPDOWN",
"label": "Select contact from organization",
"data_source_configs": [
{
"platformDataSource": {
"commonDataSource": "USER"
},
"min_characters_trigger": 1
}
]
}
}
]
}
]
}
Öğeleri harici bir veri kaynağından doldurma
Müşteri ilişkileri yönetimi (CRM) sistemi gibi üçüncü taraf veya harici bir veri kaynağından öğe doldurmak için remoteDataSourceDataSourceConfig alanını kullanarak veri kaynağından öğe döndüren bir işlev belirtebilirsiniz.
Aşağıdaki kodda, getCrmLeads işlevi çalıştırılarak öğeleri harici bir kişi grubundan dolduran bir açılır menü gösterilmektedir:
JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "crm_leads",
"type": "DROPDOWN",
"label": "Select CRM Lead",
"data_source_configs": [
{
"remoteDataSource": {
"function": "getCrmLeads"
},
"min_characters_trigger": 2
}
],
"items": [
{
"text": "Suggested Lead 1",
"value": "lead-1"
}
]
}
}
]
}
]
}
Dinamik veri kaynağına yapılan istekleri azaltmak için kullanıcılar yazmaya başlamadan önce açılır menüde görünen önerilen öğeleri ekleyebilirsiniz. Ayrıca, min_characters_trigger bölümünde DataSourceConfig ayarını yaparak kullanıcıların yazdıklarına göre öğeleri otomatik olarak tamamlayacak şekilde açılır listeyi de yapılandırabilirsiniz. Kullanıcı, min_characters_trigger içinde belirtilen karakter sayısını yazdığında remoteDataSource içinde belirtilen işlev tetiklenir. İşlevinize iletilen etkinlik nesnesi, kullanıcının girişini autocomplete_widget_query anahtarında içerir.
Çoklu seçim menüsü ekleme
Aşağıda, kullanıcının çoklu seçim menüsünden kişiler seçmesini isteyen bir kart gösterilmektedir:
Çoklu seçim menüsündeki öğeleri Google Workspace'teki aşağıdaki veri kaynaklarından doldurabilirsiniz:
- Google Workspace kullanıcıları: Yalnızca aynı Google Workspace kuruluşundaki kullanıcıları doldurabilirsiniz.
- Chat alanları: Çoklu seçim menüsüne öğe giren kullanıcı, yalnızca Google Workspace kuruluşunda ait olduğu alanları görüntüleyip seçebilir.
Google Workspace veri kaynaklarını kullanmak için platformDataSource alanını belirtirsiniz. Diğer seçim girişi türlerinden farklı olarak, bu seçim öğeleri Google Workspace'ten dinamik olarak alındığı için SelectionItem nesnelerini atlıyorsunuz.
Aşağıdaki kod, Google Workspace kullanıcılarının çoklu seçim menüsünü gösterir.
Kullanıcıları doldurmak için seçim girişi, commonDataSource değerini USER olarak ayarlar:
JSON
{
"selectionInput": {
"name": "contacts",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 5,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"commonDataSource": "USER"
}
}
}
Aşağıdaki kodda, sohbet alanlarının çoklu seçim menüsü gösterilmektedir. Boşlukları doldurmak için seçim girişi hostAppDataSource alanını belirtir. Çoklu seçim menüsü, defaultToCurrentSpace öğesini true olarak da ayarlar. Bu sayede, mevcut alan menüdeki varsayılan seçim olur:
JSON
{
"selectionInput": {
"name": "spaces",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 3,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"hostAppDataSource": {
"chatDataSource": {
"spaceDataSource": {
"defaultToCurrentSpace": true
}
}
}
}
}
}
Çoklu seçim menüleri, üçüncü taraf veya harici veri kaynaklarındaki öğelerle de doldurulabilir. Örneğin, bir kullanıcının müşteri ilişkileri yönetimi (CRM) sistemindeki satış potansiyel müşterileri listesinden seçim yapmasına yardımcı olmak için çoklu seçim menülerini kullanabilirsiniz.
Harici bir veri kaynağı kullanmak için externalDataSource alanını kullanarak veri kaynağından öğeler döndüren bir işlev belirtirsiniz.
Harici bir veri kaynağına yapılan istekleri azaltmak için kullanıcılar menüye yazmadan önce çoklu seçim menüsünde görünen önerilen öğeleri ekleyebilirsiniz. Örneğin, kullanıcı için yakın zamanda aranan kişileri doldurabilirsiniz. Önerilen öğeleri harici bir veri kaynağından doldurmak için SelectionItem
objects değerini belirtin.
Aşağıdaki kod örneğinde, harici bir veri kaynağından öğeleri sorgulayan ve dolduran çoklu seçim menüsü gösterilmektedir:
Node.js
FUNCTION_URL yerine harici veri kaynağını sorgulayan HTTP uç noktasını girin.
Python
FUNCTION_URL yerine harici veri kaynağını sorgulayan HTTP uç noktasını girin.
Java
FUNCTION_URL yerine harici veri kaynağını sorgulayan HTTP uç noktasını girin.
Apps Komut Dosyası
Bu örnek, card JSON döndürerek kart mesajı gönderir. Apps Komut Dosyası kart hizmetini de kullanabilirsiniz.
Önerilen öğeleri dinamik bir veri kaynağından doldurma
Harici veri kaynakları için, kullanıcıların çoklu seçim menüsüne veya açılır menüye yazmaya başladığı öğeleri otomatik olarak tamamlayıp önerebilirsiniz. Örneğin, bir kullanıcı ABD'deki şehirleri dolduran bir menü için Atl yazmaya başladığında Chat uygulamanız, kullanıcı yazmayı bitirmeden önce Atlanta ifadesini otomatik olarak önerebilir. En fazla 100 öğe önerebilirsiniz.
Önerilen öğeleri döndürmek için harici veri kaynağını sorgulayan işlevin aşağıdakileri yapması gerekir:
- Kullanıcılar menüye yazdığında Chat uygulamasının aldığı etkinlik nesnesini işleyin.
- Etkinlik nesnesinden, kullanıcının yazdığı değeri alın. Bu değer,
event.commonEventObject.parameters["autocomplete_widget_query"]alanında gösterilir. - Kullanıcıya önerilecek bir veya daha fazla
SelectionItemsalmak için kullanıcı girişi değerini kullanarak veri kaynağını sorgulayın. modifyCardnesnesiyle birlikte actionRenderActionsdöndürerek önerilen öğeleri döndürün.
Aşağıdaki kod örneğinde, bir Chat uygulamasının karttaki çoklu seçim menüsünde öğeleri nasıl dinamik olarak önerdiği gösterilmektedir. Kullanıcı menüye yazdığında, widget'ın externalDataSource alanında sağlanan işlev veya uç nokta, harici bir veri kaynağını sorgular ve kullanıcının seçebileceği öğeler önerir:
Node.js
FUNCTION_URL yerine harici veri kaynağını sorgulayan HTTP uç noktasını girin.
Python
FUNCTION_URL yerine harici veri kaynağını sorgulayan HTTP uç noktasını girin.
Java
FUNCTION_URL yerine harici veri kaynağını sorgulayan HTTP uç noktasını girin.
Apps Komut Dosyası
Bu örnek, card JSON döndürerek kart mesajı gönderir. Apps Komut Dosyası kart hizmetini de kullanabilirsiniz.
Kartlara girilen verileri doğrulama
Bu sayfada, bir kartın action ve widget'larına girilen verilerin nasıl doğrulanacağı açıklanmaktadır.
Örneğin, bir metin giriş alanına kullanıcı tarafından metin girildiğini veya belirli sayıda karakter girildiğini doğrulayabilirsiniz.
İşlemler için gerekli widget'ları ayarlama
Kartın action bölümünde, bir işlemin ihtiyaç duyduğu widget'ların adlarını requiredWidgets listesine ekleyin.
Bu işlem çağrıldığında burada listelenen widget'lardan herhangi birinin değeri yoksa form işlemi gönderimi iptal edilir.
Bir işlem için "all_widgets_are_required": "true" ayarlandığında karttaki tüm widget'lar bu işlem için gereklidir.
Çoklu seçimde all_widgets_are_required işlemi ayarlama
JSON
{
"sections": [
{
"header": "Select contacts",
"widgets": [
{
"selectionInput": {
"type": "MULTI_SELECT",
"label": "Selected contacts",
"name": "contacts",
"multiSelectMaxSelectedItems": 3,
"multiSelectMinQueryLength": 1,
"onChangeAction": {
"all_widgets_are_required": true
},
"items": [
{
"value": "contact-1",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 1",
"bottomText": "Contact one description",
"selected": false
},
{
"value": "contact-2",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 2",
"bottomText": "Contact two description",
"selected": false
},
{
"value": "contact-3",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 3",
"bottomText": "Contact three description",
"selected": false
},
{
"value": "contact-4",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 4",
"bottomText": "Contact four description",
"selected": false
},
{
"value": "contact-5",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 5",
"bottomText": "Contact five description",
"selected": false
}
]
}
}
]
}
]
}
dateTimePicker'da all_widgets_are_required işlemi ayarlama
JSON
{
"sections": [
{
"widgets": [
{
"textParagraph": {
"text": "A datetime picker widget with both date and time:"
}
},
{
"divider": {}
},
{
"dateTimePicker": {
"name": "date_time_picker_date_and_time",
"label": "meeting",
"type": "DATE_AND_TIME"
}
},
{
"textParagraph": {
"text": "A datetime picker widget with just date:"
}
},
{
"divider": {}
},
{
"dateTimePicker": {
"name": "date_time_picker_date_only",
"label": "Choose a date",
"type": "DATE_ONLY",
"onChangeAction":{
"all_widgets_are_required": true
}
}
},
{
"textParagraph": {
"text": "A datetime picker widget with just time:"
}
},
{
"divider": {}
},
{
"dateTimePicker": {
"name": "date_time_picker_time_only",
"label": "Select a time",
"type": "TIME_ONLY"
}
}
]
}
]
}
Açılır menüde all_widgets_are_required işlemi ayarlama
JSON
{
"sections": [
{
"header": "Section Header",
"collapsible": true,
"uncollapsibleWidgetsCount": 1,
"widgets": [
{
"selectionInput": {
"name": "location",
"label": "Select Color",
"type": "DROPDOWN",
"onChangeAction": {
"all_widgets_are_required": true
},
"items": [
{
"text": "Red",
"value": "red",
"selected": false
},
{
"text": "Green",
"value": "green",
"selected": false
},
{
"text": "White",
"value": "white",
"selected": false
},
{
"text": "Blue",
"value": "blue",
"selected": false
},
{
"text": "Black",
"value": "black",
"selected": false
}
]
}
}
]
}
]
}
Metin girişi widget'ı için doğrulama ayarlama
textInput widget'ının doğrulama alanında, bu metin girişi widget'ı için karakter sınırlaması ve giriş türü belirtilebilir.
Metin girişi widget'ı için karakter sınırlaması belirleme
JSON
{
"sections": [
{
"header": "Tell us about yourself",
"collapsible": true,
"uncollapsibleWidgetsCount": 2,
"widgets": [
{
"textInput": {
"name": "favoriteColor",
"label": "Favorite color",
"type": "SINGLE_LINE",
"validation": {"character_limit":15},
"onChangeAction":{
"all_widgets_are_required": true
}
}
}
]
}
]
}
Metin girişi widget'ı için giriş türünü ayarlama
JSON
{
"sections": [
{
"header": "Validate text inputs by input types",
"collapsible": true,
"uncollapsibleWidgetsCount": 2,
"widgets": [
{
"textInput": {
"name": "mailing_address",
"label": "Please enter a valid email address",
"type": "SINGLE_LINE",
"validation": {
"input_type": "EMAIL"
},
"onChangeAction": {
"all_widgets_are_required": true
}
}
},
{
"textInput": {
"name": "validate_integer",
"label": "Please enter a number",
"type": "SINGLE_LINE",
"validation": {
"input_type": "INTEGER"
}
}
},
{
"textInput": {
"name": "validate_float",
"label": "Please enter a number with a decimal",
"type": "SINGLE_LINE",
"validation": {
"input_type": "FLOAT"
}
}
}
]
}
]
}
Sorun giderme
Bir Google Chat uygulaması veya kartı hata döndürdüğünde Chat arayüzünde "Bir hata oluştu" veya "İsteğiniz işlenemiyor" mesajı gösterilir. Bazen Chat kullanıcı arayüzünde hata mesajı gösterilmez ancak Chat uygulaması veya kartı beklenmedik bir sonuç üretir. Örneğin, kart mesajı görünmeyebilir.
Chat kullanıcı arayüzünde hata mesajı gösterilmese de Chat uygulamaları için hata günlüğü kaydı 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üzeltmeyle ilgili yardım için Google Chat hatalarını giderme ve düzeltme başlıklı makaleyi inceleyin.
İlgili konular
Eklenti olmayan Chat uygulamaları: Etkileşimli kartlar ve iletişim kutuları tasarlama
Aşağıdaki belgeler, Google Workspace eklentisi olmayan Chat uygulamaları için geçerlidir. Eklenti olmayan bir Chat uygulamasını taşımak için Google Chat uygulamasını Google Workspace eklentisine dönüştürme başlıklı makaleyi inceleyin.
Aşağıdaki kod, eklenti olmayan bir sohbet uygulamasında kullanıcının harici kişi grubundaki öğelerin çoklu seçim menüsünü gösterir.
Menüde varsayılan olarak bir kişi gösterilir
ve harici veri kaynağından öğeleri almak ve doldurmak için getContacts işlevi çalıştırılır:
Node.js
Python
Java
Apps Komut Dosyası
Eklenti olmayan bir Chat uygulamasındaki öğeleri otomatik olarak tamamlamak için harici veri kaynağını sorgulayan ve kullanıcı çoklu seçim menüsüne yazdığında öğeleri döndüren bir işlev oluşturun. İşlev şunları yapmalıdır:
- Menüyle kullanıcı etkileşimini temsil eden bir etkinlik nesnesi iletin.
- Etkileşim etkinliğinin
invokedFunctiondeğerinin,externalDataSourcealanındaki işlevle eşleştiğini tanımlayın. - İşlevler eşleştiğinde harici veri kaynağından önerilen öğeleri döndürür. Kullanıcının yazdıklarına göre öğe önermek için
autocomplete_widget_queryanahtarının değerini alın. Bu değer, kullanıcının menüye yazdıklarını gösterir.
Aşağıdaki kod, harici bir veri kaynağındaki öğeleri otomatik olarak tamamlar. Önceki örneği kullanarak, eklenti olmayan Chat uygulaması, getContacts işlevi tetiklendiğinde öğeler önerir: