Google Chat 消息概览

本页介绍了短信和卡片消息之间的区别。

当聊天应用发送短信来传达基本信息时,消息会以内嵌方式显示,就像 Google Chat 中的用户撰写消息的方式一样。如要创建包含文字以外的消息,或者创建用户可以互动的消息,Chat 应用可以使用卡片。 聊天应用也可以使用卡片附加短信。为了提示用户完成多步骤流程(例如填写表单),Chat 应用还可以创建以对话框的形式在新窗口中打开的卡片。

短信剖析

在 Google Chat API 中,消息表示为 JSON 对象。在消息中,文本消息表示为 text 对象。

在以下示例中,Chat 应用在即将进行代码冻结时,在聊天室中为软件开发者团队创建一条短信:

{
  "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 会返回以下消息:

Google Chat 中宣布代码冻结的文本消息示例。

卡片消息详解

在 Google Chat API 中,消息表示为 JSON 对象。在消息中,卡片表示为 cardsV2 数组,并由以下内容组成:

  • 一个或多个 CardWithId 对象
  • cardId,用于标识卡片,并在给定消息中限定范围。(不同信息中的卡片可以具有相同的 ID。)
  • card 对象,其中包含以下内容:

    • header 对象,用于指定标题、副标题和头像样式图片等内容。
    • 一个或多个 section 对象,每个对象至少包含一个 widget。
    • 一个或多个 widget 对象。每个 widget 都是一个复合对象,可以表示文本、图片、按钮和其他对象类型。

例如,以下卡片消息包含 headersectionwidget 对象:

一款 Chat 应用
使用卡片消息在 Chat 聊天室中运行投票活动

以下代码表示卡消息的 JSON:

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