Google Chat uygulamaları, kısa mesajlara ek olarak alanlarda ve kullanıcılara kart mesajları oluşturabilir. Kartlar, tanımlı bir düzeni, düğmeler gibi etkileşimli kullanıcı arayüzü öğelerini ve resimler gibi rich media öğelerini destekler.
Aşağıdakileri yapmak için kart mesajlarını kullanın:
- Ayrıntılı bilgi verin
- Kullanıcılardan bilgi toplama
- Kullanıcıları bir sonraki adımı atmaya yönlendirin
Bu kılavuzda, eşzamanlı olarak kart mesajlarının nasıl oluşturulacağı (kullanıcıdan mesaj alma veya alana eklenme gibi, bir Google Chat etkinliğine gerçek zamanlı yanıt) ve eşzamansız olarak (Google Chat API kullanarak uygulamadan alana veya kullanıcıya mesaj gönderme) açıklanmaktadır.
Ön koşullar
Bu kılavuzdaki kart mesajlarını oluşturmak için aşağıdakilere ihtiyacınız olacaktır:
Node.js
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Bir Chat uygulaması. Chat uygulaması oluşturmak için bu hızlı başlangıç kılavuzunu takip edin.
Not: Bu kılavuzdaki Node.js kod örnekleri, Google Cloud Functions olarak çalışacak şekilde yazılmıştır.
Python
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Bir Chat uygulaması. Chat uygulaması oluşturmak için bu hızlı başlangıç kılavuzunu takip edin.
Not: Bu kılavuzdaki Python kod örnekleri, Python 3.9 kullanılarak Google Cloud Functions işlevi olarak çalışacak şekilde yazılmıştır.
Apps Komut Dosyası
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Bir Chat uygulaması. Chat uygulaması oluşturmak için bu hızlı başlangıç kılavuzunu takip edin.
Kart mesajının anatomisi
Her kart, iletişim veya mesaj olsun, Google Chat API'deki spaces.messages
kaynağındaki bir JSON nesnesidir.
Kart JSON nesnesi aşağıdakilerden oluşur:
- Bir veya daha fazla
CardWithId
nesne içerencardsV2[]
adlı bir dizi. - Kartı tanımlamak ve belirli bir mesajın kapsamında olmak için kullanılan
cardId
. (Farklı mesajlardaki kartlar aynı kimliğe sahip olabilir.) Aşağıdakilerden oluşan bir
card
nesnesi:- Başlık, alt başlık ve avatar tarzı resim gibi şeyleri belirten
header
nesnesi. - Her biri en az bir widget içeren bir veya daha fazla
section
nesne. - Bir veya daha fazla
widget
nesne. Her widget; metin, resimler, düğmeler ve diğer nesne türlerini temsil edebilen birleşik bir nesnedir.
- Başlık, alt başlık ve avatar tarzı resim gibi şeyleri belirten
Örneğin, şu kart mesajındaki header
, section
ve widget
nesnelerini inceleyin:
Aşağıdaki kod, kart mesajının JSON'unu temsil eder:
JSON
{
"cardsV2": [
{
"cardId": "unique-card-id",
"card": {
"header": {
"title": "Sasha",
"subtitle": "Software Engineer",
"imageUrl":
"https://developers.google.com/chat/images/quickstart-app-avatar.png",
"imageType": "CIRCLE",
"imageAltText": "Avatar for Sasha",
},
"sections": [
{
"header": "Contact Info",
"collapsible": true,
"uncollapsibleWidgetsCount": 1,
"widgets": [
{
"decoratedText": {
"startIcon": {
"knownIcon": "EMAIL",
},
"text": "sasha@example.com",
}
},
{
"decoratedText": {
"startIcon": {
"knownIcon": "PERSON",
},
"text": "<font color=\"#80e27e\">Online</font>",
},
},
{
"decoratedText": {
"startIcon": {
"knownIcon": "PHONE",
},
"text": "+1 (555) 555-1234",
}
},
{
"buttonList": {
"buttons": [
{
"text": "Share",
"onClick": {
"openLink": {
"url": "https://example.com/share",
}
}
},
{
"text": "Edit",
"onClick": {
"action": {
"function": "goToView",
"parameters": [
{
"key": "viewType",
"value": "EDIT",
}
],
}
}
},
],
}
},
],
},
],
},
}
],
}
Eşzamanlı kart mesajı oluşturma
Bu örnekte, bir kullanıcı Chat uygulamasında Chat'te bir mesaj oluşturur ve uygulama, gönderenin adını ve avatar resmini gösteren basit, eşzamanlı bir kart mesajı göndererek yanıt verir:
Aşağıdaki kod örneklerinde, Node.js ve Python uygulamaları Google Cloud Functions'da barındırılır. Apps Komut Dosyası örneği Google Apps Komut Dosyası'nda barındırılır.
Chat uygulaması derleyip dağıtma ile ilgili tüm talimatlar için Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
Node.js
Python
Apps Komut Dosyası
Chat API ile eşzamansız kart mesajı oluşturma
Bu örnek, eşzamansız olarak Chat API ile bir mesaj oluşturur ve Chat uygulamasının eklendiği bir alana gönderir:

Python
- Çalışma dizininizde
chat_create_card_message.py
adlı bir dosya oluşturun. chat_create_card_message.py
alanına aşağıdaki kodu ekleyin:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'service_account.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body= { 'cardsV2': [{ 'cardId': 'createCardMessage', 'card': { 'header': { 'title': 'A Card Message!', 'subtitle': 'Created with Chat REST API', 'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png', 'imageType': 'CIRCLE' }, 'sections': [ { 'widgets': [ { 'buttonList': { 'buttons': [ { 'text': 'Read the docs!', 'onClick': { 'openLink': { 'url': 'https://developers.google.com/chat' } } } ] } } ] } ] } }] } ).execute() print(result)
Koddaki
SPACE
kısmını, bir alan adıyla değiştirin. Bu adı Chat API'dekispaces.list()
yönteminden veya alanın URL'sinden alabilirsiniz.Çalışma dizininizde örneği oluşturun ve çalıştırın:
python3 chat_create_card_message.py
Chat API'de mesajlarla çalışma hakkında daha fazla bilgi için aşağıdaki konulara bakın:
İletişim kutusu aç
İletişim kutuları, Chat uygulamalarının kullanıcılarla etkileşimde bulunmak için açtığı pencereli, kart tabanlı arayüzlerdir. Uygulamalar, kullanıcıların çok adımlı işlemleri tamamlamasına yardımcı olmak için sıralı iletişim kutuları açabilir. Uygulamalar, bir kart mesajının tıklanmasına veya bir eğikleştirme komutuna yanıt olarak iletişim kutularını açabilir.
İletişim kutuları, aşağıdakiler de dahil olmak üzere birçok kullanıcı etkileşimi türü için kullanışlıdır:
- Kullanıcılardan bilgi toplama
- Web hizmetleriyle kullanıcıların kimliklerini doğrulama
- Chat uygulaması ayarlarını yapılandırma
Bu örnekte bir Chat uygulaması, kullanıcının adres defteri için yeni bir kişi oluşturmasına yardımcı olmak için bir iletişim kutusu açar:
İletişim kutularını uygulamak için İletişim kutularını aç konusuna bakın.
Kart biçimlendirmesi
Kartların görünümünü biçimlendirmenin birkaç farklı yolu vardır.
Kart metni biçimlendirmesi
Kartların içindeki çoğu metin alanı, küçük bir HTML etiketi alt kümesi kullanılarak temel metin biçimlendirmesini destekler.
Desteklenen etiketler ve amaçları aşağıdaki tabloda gösterilmektedir:
Biçim | Örnek | Oluşturulan sonuç |
---|---|---|
Kalın | "This is <b>bold</b>." |
Bu kalın yazılmıştır. |
İtalik | "This is <i>italics</i>." |
Bu italik yazılmıştır. |
Altı çizili | "This is <u>underline</u>." |
Bu, alt çizgi işaretidir. |
Üstü Çizili | "This is <s>strikethrough</s>." |
Bu |
Yazı tipi rengi | "This is <font color=\"#FF0000\">red font</text>." |
Bu kırmızı yazı tipi'dir. |
Köprü | "This is a <a href=\"https://www.google.com\">hyperlink</a>." |
Bu bir köprüdür. |
Süre | "This is a time format: <time>2023-02-16 15:00</time>." |
Saat biçimi şu şekildedir: . |
Yeni satır | "This is the first line. <br> This is a new line. inç |
Bu ilk satır. Bu yeni bir satırdır. |
Temel bir mesajın metin gövdesinin, gerçek kullanıcılar için optimize edilen farklı bir işaretleme söz dizimi kullanılarak ayrıştırıldığını unutmayın. Ayrıntılar için Kısa mesaj oluşturma bölümüne bakın.
Yerleşik simgeler
DecoratedText
ve ButtonList
widget'ları, Google Chat'te bulunan yerleşik simgelerden birini belirtmek için kullanılan icon
öğesini destekler:
{ . . . "knownIcon": "TRAIN", . . . }
Aşağıdaki tabloda, kart mesajları için kullanılabilen yerleşik simgeler listelenmiştir:
Uçak | REAL | ||
OTOBÜS | ARA | ||
SAAT | ONAY_NUMARASI | ||
AÇIKLAMA | DOLAR | ||
E-POSTA | EVENT_SEAT | ||
UÇUŞ_GELİR | UÇ_KALDIRMA | ||
OTEL | HOTEL_ROOM_TYPE | ||
DAVET ET | MAP_PIN | ||
ÜYELİK | ÇOK İKİ_KULLANICI | ||
KİŞİ | TELEFON | ||
RESTAURANT_SİMGESİ | ALIŞVERİŞ_ALIŞVERİŞ | ||
STAR | MAĞAZA | ||
BİLET | EĞİTİM | ||
VİDEO_KAMERA | VİDEO_OYNATMA |
Özel simgeler
DecoratedText
ve ButtonList
widget'ları yerleşik simgeleri kullanmanıza veya kendi özel simgelerinizi tanımlamanıza olanak tanır. Özel bir simge belirtmek için, aşağıda gösterildiği gibi iconUrl
öğesini kullanın:
{ . . "iconUrl": "https://developers.google.com/chat/images/quickstart-app-avatar.png" . . }