Bu kılavuzda, kartla ilgili karşılaşabileceğiniz yaygın hatalar ve bunların nasıl düzeltileceği açıklanmaktadır.
Chat uygulamaları için JSON kart mesajları tasarlayıp önizlemek üzere Kart Oluşturucu'yu kullanın:
Kart Oluşturucu'yu açınKart hataları nasıl görünür?
Kart hataları birkaç şekilde ortaya çıkar:
- Widget veya bileşen gibi bir kartın bir bölümü görünmüyor veya beklenmedik bir şekilde oluşturuluyor.
- Kartın tamamı gösterilmez.
- İletişim kutusu kapanır, açılmıyor veya yüklenmiyor.
Bu tür bir davranışla karşılaşırsanız uygulamanızın kartında bir hata var demektir.
Referans için: Çalışan, hatasız bir kart mesajı ve iletişim kutusu
Hatalı kart örneklerini incelemeden önce, ilk olarak bu çalışan kart mesajını ve iletişim kutusunu değerlendirin. Her bir örnek hatayı ve düzeltmesini göstermek için bu kartın JSON'ı, hatalar eklenerek değiştirilir.
Hatasız bir kart mesajı
Müşteri hizmetleri temsilcisinin iletişim bilgilerini ayrıntılı olarak açıklayan Başlık, bölüm ve widget'larla (ör. süslenmiş metin ve düğmeler) içerir:
Hatasız bir iletişim
Aşağıdaki gibi toplayarak kişi oluşturan, çalışan, hatasız iletişim kutusu Kullanıcılardan gelen bilgiler, altbilgi, metin girişi gibi düzenlenebilir widget'lar kontrol edin:
Hata: Kartın bir bölümü görünmüyor
Bazen kartlar oluşturulur ancak görmeyi beklediğiniz kartın bir bölümü görünmez; bunun olası nedenleri şunlardır:
- Zorunlu bir JSON alanı eksik.
- Bir JSON alanı yanlış yazılmış veya yanlış yazılmış.
Neden: Gerekli bir JSON alanı eksik
Bu örnek hatada, zorunlu bir JSON alanı (title
) eksik. Bunun sonucunda kart oluşturulur ancak kartın görünmesi beklenen bazı bölümleri gösterilmez. Zorunlu alanlar atlandığında kartların nasıl oluşturulduğunu tahmin etmek zor olabilir.
Bu hatayı düzeltmek için gerekli JSON alanını ekleyin; Bu örnekte, title
.
JSON alanının gerekli olup olmadığını öğrenmek için Cards v2 referans belgelerini inceleyin. Bu örnekte, CardHeader
sitesindeki title
alanının açıklamasına bakın.
Aşağıda iki örnek verilmiştir:
1. Örnek: subtitle
değerinin belirtilmesi ancak gerekli title
değerinin atlanması, tüm üstbilginin boş görünmesine neden olur:
![Zorunlu bir alan (başlık) eksik olduğundan bu kartın başlığı görüntülenmiyor.](https://developers-dot-devsite-v2-prod.appspot.com/static/workspace/chat/images/troubleshoot/troubleshoot-cards-missing-required-entity-header-title-1.png?authuser=9&hl=tr)
title
alanı eksik olduğu için bu kartın başlığı görüntülenmiyor.Hatalı kart JSON snippet'ini görüntüleyin
Hata: header
alanında zorunlu bir alan (title
) eksik.
. . . "header": { "subtitle": "Software Engineer" } . . .
Doğru kart JSON snippet'ini görüntüleme
Düzeltildi: Zorunlu title
alanı, header
spesifikasyonunun bir parçasıdır.
. . . "header": { "title": "Sasha", "subtitle": "Software Engineer" } . . .
2. Örnek: subtitle
, imageUrl
, imageType
ve imageAltText
değerinin belirtilmesi ancak gerekli title
değerinin atlanması, resmin beklendiği gibi oluşturulmasına neden olur, ancak altyazının oluşturulmamasına neden olur:
![Zorunlu bir alan (başlık) eksik olduğundan bu kartın başlığı görüntülenmiyor.](https://developers-dot-devsite-v2-prod.appspot.com/static/workspace/chat/images/troubleshoot/troubleshoot-cards-missing-required-entity-header-title-2.png?authuser=9&hl=tr)
title
) eksik olduğu ancak resim beklendiği gibi oluşturulduğu için bu kartın başlığında alt başlık gösterilmiyor.Hatalı kart JSON snippet'ini görüntüleyin
Hata: header
alanında zorunlu bir alan (title
) eksik.
. . . "header": { "subtitle": "Software Engineer", "imageUrl": "https://developers.google.com/chat/images/quickstart-app-avatar.png", "imageType": "CIRCLE", "imageAltText": "Avatar for Sasha", } . . .
Doğru kart JSON snippet'ini görüntüleme
Düzeltildi: Zorunlu title
alanı, header
spesifikasyonunun bir parçasıdır.
. . . "header": { "title": "Sasha", "subtitle": "Software Engineer", "imageUrl": "https://developers.google.com/chat/images/quickstart-app-avatar.png", "imageType": "CIRCLE", "imageAltText": "Avatar for Sasha", } . . .
Neden: JSON yanlış yazılmış veya büyük harf yazılmış
Bu örnek hatada, kartın JSON'ı gerekli tüm alanları içeriyor ancak bir alandaki imageUrl
yanlış bir şekilde imageURL
şeklinde (büyük R
büyük L
) yazılmış. Bu hataya neden oluyor: işaret ettiği resim oluşturulmuyor.
Bu hatayı ve buna benzer diğer hataları düzeltmek için doğru JSON biçimlendirmesini kullanın. Bu durumda, imageUrl
doğrudur. Şüpheye düştüğünüzde, card referans belgesine bakarak kartınızın JSON'ını kontrol edin.
![Zorunlu bir alan (başlık) eksik olduğundan bu kartın başlığı görüntülenmiyor.](https://developers-dot-devsite-v2-prod.appspot.com/static/workspace/chat/images/troubleshoot/troubleshoot-cards-imageURL-instead-of-imageUrl.png?authuser=9&hl=tr)
title
) eksik olduğu ancak resim beklendiği gibi oluşturulduğu için bu kartın başlığında alt başlık gösterilmiyor.Hatalı kart JSON snippet'ini görüntüleyin
Hata: imageURL
alanı yanlış yazılmış. imageUrl
olmalıdır.
. . . "header": { "title": "Sasha", "subtitle": "Software Engineer", "imageURL": "https://developers.google.com/chat/images/quickstart-app-avatar.png", "imageType": "CIRCLE", "imageAltText": "Avatar for Sasha", } . . .
Doğru kart JSON snippet'ini görüntüleme
Düzeltildi: imageUrl
alanı doğru şekilde büyük yazılmış.
. . . "header": { "title": "Sasha", "subtitle": "Software Engineer", "imageUrl": "https://developers.google.com/chat/images/quickstart-app-avatar.png", "imageType": "CIRCLE", "imageAltText": "Avatar for Sasha", } . . .
Hata: Kartın tamamı görünmüyor
Bazen kartın kendisi görünmez; bunun olası nedenleri şunlardır:
ButtonList
widget'ı yanlış belirtilmiş.- Bir
CardFixedFooter
widget'ında yanlış belirtilmiş bir düğme var.
Neden: buttonList
veya cardFixedFooter
yanlış belirtilmiş
Bir kart mesajında veya iletişim kutusunda yanlış belirtilmiş bir ButtonList
widget'ı veya düğmelerin yanlış belirtilmiş bir CardFixedFooter
widget'ı varsa kartın tamamı gösterilmez ve yerinde hiçbir şey görüntülenmez. Eksik alanlar, yanlış yazılmış veya büyük harfle yazılmış alanlar ya da yanlış yapılandırılmış JSON (ör. eksik virgül, tırnak veya süslü ayraç gibi) yanlış spesifikasyonlar arasında sayılabilir.
Bu hatayı düzeltmek için kartın JSON'ını card referans belgesiyle karşılaştırın. Özellikle, tüm ButtonList
widget'larını ButtonList
widget kılavuzu ile karşılaştırın.
Örnek: Bir ButtonList
widget rehberinde, ilk düğmede tamamlanmamış bir onClick
işlemi belirtmek kartın tamamının oluşturulmasını engeller.
Hatalı kart JSON snippet'ini görüntüle
Hata: onClick
nesnesinde hiç alan belirtilmediğinden kartın tamamı gösterilmiyor.
. . . { "buttonList": { "buttons": [ { "text": "Share", "onClick": { } } }, { "text": "Edit", "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT", } ], } } }, ], }, } . . .
Doğru kart JSON snippet'ini görüntüleme
Düzeltildi: onClick
nesnesinde artık openLink
alanı olduğu için kart beklendiği gibi görünüyor.
. . . { "buttonList": { "buttons": [ { "text": "Share", "onClick": { "openLink": { "url": "https://example.com/share", } } }, { "text": "Edit", "onClick": { "action": { "function": "goToView", "parameters": [ { "key": "viewType", "value": "EDIT", } ], } } }, ], }, } . . .
Hata: Bir iletişim kutusu kapanıyor, çalışmıyor veya açılmıyor
İletişim kutusu beklenmedik bir şekilde kapanıyor, yüklenemiyor veya açılmıyorsa bunun olası nedeni kart arayüzüyle ilgili bir sorundur.
En yaygın nedenler şunlardır:
CardFixedFooter
widget'ındaprimaryButton
yok.CardFixedFooter
widget'ındaki bir düğmedeonClick
işlemi yok veyaonClick
işlemi yanlış belirtilmiş.TextInput
widget'ındaname
alanı eksik.
Neden: CardFixedFooter
için primaryButton
yok
CardFixedFooter
widget'ı bulunan iletişim kutularında hem metin hem de renk içeren bir primaryButton
belirtilmesi gerekir. primaryButton
öğesinin atlanması veya yanlış ayarlanması, iletişim kutusunun tamamının görünmesini engeller.
Bu hatayı düzeltmek için CardFixedFooter
widget'ının doğru şekilde belirtilmiş bir primaryButton
içerdiğinden emin olun.
Hatalı kart JSON snippet'ini görüntüle
Hata: fixedFooter
nesnesinde primaryButton
alanı belirtilmemiş. Bu durum iletişim kutusunun yüklenememesine veya açılmamasına neden oluyor.
. . . "fixedFooter": { "onClick": { . . . }, "secondaryButton": { . . . } } } . . .
Doğru kart JSON snippet'ini görüntüleme
Düzeltildi: fixedFooter
artık bir primaryButton
alanı belirtilmiş, böylece iletişim kutusu beklendiği gibi çalışıyor.
. . . "fixedFooter": { "primaryButton": { "text": "Submit", "color": { "red": 0, "blue": 1, "green": 0 }, "onClick": { . . . }, "secondaryButton": { . . . } } } . . .
Neden: FixedFooter
içindeki onClick
ayarı yanlış
CardFixedFooter
widget'ı bulunan iletişim kutularında, herhangi bir düğmede onClick
ayarının yanlış belirtilmesi veya atlanması, iletişim kutusunun kapanmasına, yüklenmemesine veya açılmamasına neden olur.
Bu hatayı düzeltmek için her düğmede doğru şekilde belirtilmiş bir onClick
ayarı bulunduğundan emin olun.
Hatalı kart JSON snippet'ini görüntüle
Hata: primaryButton
nesnesinde, yanlış yazılmış "parameters" dizisine sahip bir onClick
alanı var. Bu durum, iletişim kutusunun yüklenememesine veya açılmamasına neden oluyor.
. . . "fixedFooter": { "primaryButton": { "text": "Submit", "color": { "red": 0, "blue": 1, "green": 0 }, "onClick": { "action": { "function": "setLanguageType", "parrammetters": [ { "key": "languageType", "value": "C++" } ] } } }, "secondaryButton": { "text": "Cancel", "onClick": { "action": { "function": "reset" } } } } . . .
Doğru kart JSON snippet'ini görüntüleme
Düzeltildi: primaryButton
nesnesinde, doğru yazılmış "parameters" dizisine sahip bir onClick
alanı var. Dolayısıyla iletişim kutusu beklendiği gibi çalışıyor.
. . . "fixedFooter": { "primaryButton": { "text": "Submit", "color": { "red": 0, "blue": 1, "green": 0 }, "onClick": { "action": { "function": "setLanguageType", "parameters": [ { "key": "languageType", "value": "C++" } ] } } }, "secondaryButton": { "text": "Cancel", "onClick": { "action": { "function": "reset" } } } } . . .
Neden: TextInput
için name
yok
Bir iletişim kutusu, name
alanını hariç tutan bir TextInput
widget'ı içeriyorsa iletişim kutusu beklendiği gibi davranmıyor. Kapanabilir, açılabilir ancak yüklenmeyebilir veya açılamayabilir.
Bu hatayı düzeltmek için her TextInput
widget'ının uygun bir name
alanı içerdiğinden emin olun. Karttaki her name
alanının benzersiz olduğundan emin olun.
Hatalı kart JSON snippet'ini görüntüle
Hata: textInput
nesnesinde name
alanı belirtilmemiş. Bu durum iletişim kutusunun kapatılmasına, yüklenmemesine veya açılmamasına neden oluyor.
. . . { "textInput": { "label": "Name", "type": "SINGLE_LINE", } } . . .
Doğru kart JSON snippet'ini görüntüleme
Düzeltildi: textInput
artık bir name
alanı belirtilmiş, böylece iletişim kutusu beklendiği gibi çalışıyor.
. . . { "textInput": { "label": "Name", "type": "SINGLE_LINE", "name": "contactName" } } . . .
İletişim kutusu açma, gönderme veya iptal etme işlemleri, eşzamansız uygulama mimarisiyle başarısız oluyor
Chat uygulamanız hata mesajı döndürüyorsa
Şununla çalışırken Could not load dialog. Invalid response returned by bot.
iletişim kutuları, bunun nedeni uygulamanızın
aşağıdaki gibi eşzamansız bir mimari kullanır.
Cloud Pub/Sub veya
Mesaj Oluştur API yöntemi.
Bir iletişim kutusunu açmak, göndermek veya iptal etmek için
Chat uygulamasından gelen eşzamanlı bir yanıt
DialogEventType
.
Buna göre, diyaloglar uygulamalar tarafından desteklenmez
eşzamansız bir mimari ile geliştirilmiştir.
Geçici bir çözüm olarak, kart mesajıyla karşılaştırabilirsiniz.
Diğer kart ve iletişim kutusu hataları
Bu sayfada açıklanan düzeltmeler uygulamanızın karşılaştığı kartla ilgili hatayı çözmezse uygulamanın hata günlüklerini sorgulayın. Günlükleri sorgulamak, kart JSON veya uygulama kodundaki hataları bulmaya yardımcı olabilir. Günlükler, düzeltmenize yardımcı olacak açıklayıcı hata mesajları içerir.
İlgili konular
Google Chat uygulaması hatalarını düzeltme konusunda yardım almak için Google Chat uygulamasıyla ilgili sorunları giderme ve düzeltme ve Chat uygulamalarında hata ayıklama başlıklı makalelere göz atın.