Ringkasan pesan Google Chat

Halaman ini menjelaskan perbedaan antara pesan teks dan kartu.

Saat aplikasi Chat mengirim pesan teks untuk menyampaikan informasi dasar, pesan akan muncul secara inline, seperti cara orang di Google Chat menulis pesan. Untuk membuat pesan yang berisi lebih dari sekadar teks, atau untuk membuat pesan yang dapat berinteraksi dengan pengguna, aplikasi Chat dapat menggunakan kartu. Aplikasi chat juga dapat menambahkan pesan teks dengan kartu. Untuk meminta pengguna menyelesaikan proses multi-langkah seperti mengisi formulir, aplikasi Chat juga dapat membuat kartu yang terbuka di jendela baru sebagai dialog.

Anatomi pesan teks

Di Google Chat API, pesan direpresentasikan sebagai objek JSON. Dalam pesan, pesan teks direpresentasikan sebagai objek text.

Pada contoh berikut, aplikasi Chat membuat pesan teks di ruang untuk tim developer software yang mendekati pembekuan kode:

{
  "text": "Attention <users/all>: Code freeze starts at `11:59 am` Pacific Standard Time! If you need a little more time, type `/moreTime` and I'll push the code freeze back one hour."
}

JSON akan menampilkan pesan berikut:

Contoh pesan teks di Google Chat yang mengumumkan pembekuan kode.

Anatomi pesan kartu

Di Google Chat API, pesan direpresentasikan sebagai objek JSON. Dalam pesan, kartu direpresentasikan sebagai array cardsV2 dan terdiri dari hal berikut:

  • Satu atau beberapa objek CardWithId.
  • cardId, digunakan untuk mengidentifikasi kartu dan dicakupkan dalam pesan tertentu. (Kartu dalam pesan yang berbeda dapat memiliki ID yang sama.)
  • Objek card, yang terdiri dari hal berikut:

    • Objek header yang menentukan hal-hal seperti judul, subtitel, dan gambar bergaya avatar.
    • Satu atau beberapa objek section yang masing-masing berisi setidaknya satu widget.
    • Satu atau beberapa objek widget. Setiap widget adalah objek gabungan yang dapat merepresentasikan teks, gambar, tombol, dan jenis objek lainnya.

Contohnya, pesan kartu berikut berisi objek header, section, dan widget:

Aplikasi Chat yang menjalankan polling di ruang
Chat menggunakan pesan
kartu

Kode berikut mewakili JSON pesan kartu:

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"
                            }
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            ]
          }
        ]
      }
    }
  ]
}