本頁面說明 Google Chat 應用程式如何設定文字格式,傳送包含下列任一內容的訊息:
- 包含超連結或 @提及 Chat 聊天室中一位或所有使用者的 RTF 格式文字。
- 資訊卡介面中顯示的文字,包括段落文字或與圖示 (例如按鈕) 一起顯示的 UI 文字。
設定簡訊格式
Chat 可讓您在訊息中加入基本格式,包括粗體、斜體和刪除線。文字訊息和資訊卡訊息的文字格式設定方式不同,因為文字訊息的格式設定語法與 Chat 使用者相同。
使用 Chat API 傳送或擷取訊息時,您可以使用標準 Markdown 語法 (MARKUP_SYNTAX_MARKDOWN) 或 Chat 標記語法 (MARKUP_SYNTAX_CHAT)。您可以在 Google Cloud 控制台中設定應用程式層級的預設標記語法 (請參閱「設定 Google Chat API」):
- Markdown:標準 Markdown 語法 (
MARKUP_SYNTAX_MARKDOWN),以 CommonMark 規格為基礎,並提供額外擴充功能。新建立的 Chat 應用程式預設為 Markdown。 - Chat:Chat 標記語法 (
MARKUP_SYNTAX_CHAT)。現有的 Chat 應用程式預設為 Chat,以保留回溯相容性。
您也可以在個別 Chat API 要求中指定 markup_syntax,覆寫應用程式層級的預設值。如果 API 要求中未指定 markup_syntax,系統會根據您呼叫 Chat API 的方式設定標記:
- 已設定的 Chat 應用程式:使用儲存在 Chat API 設定頁面的標記語法。
- 未設定的 Cloud 專案 (無設定):如果 Cloud 專案呼叫 Chat API,但未儲存 Chat 應用程式設定,要求會預設為
MARKUP_SYNTAX_MARKDOWN。 - 連入 Webhook:預設為
MARKUP_SYNTAX_CHAT。請參閱「使用傳入 Webhook 傳送訊息」。
如要設定簡訊格式,請使用下列語法:
| 格式 | MARKUP_SYNTAX_CHAT | MARKUP_SYNTAX_MARKDOWN | 語法範例 | Google Chat 中顯示的文字 |
|---|---|---|---|---|
| 粗體 | * |
** |
或:
|
你好 |
| 斜體 | _ (底線) |
* |
或:
|
你好 |
| 刪除線 | ~ |
~~ |
或:
|
|
| 等寬 | ` (反引號) | ` (反引號) | `hello` | hello |
| 等寬區塊 | ` ` ` (三個倒引號) | ` ` ` (三個倒引號) | ``` Hello World ``` |
Hello |
| 項目符號清單 | * 或 - (連字號) 後面加上空格 | * 或 - (連字號) 後面加上空格 | * 這是清單中的第一個項目。 * 這是清單中的第二個項目。 |
|
| 巢狀清單 | * 或 - (連字號),後面加上空格,前面加上四個空格 (每個巢狀結構層級) | * 或 - (連字號),後面加上空格,前面加上四個空格 (每個巢狀結構層級) | * 這是清單中巢狀深度為一的項目。 * 這是清單中巢狀深度為二的項目。 * 這是清單中巢狀深度為三的項目。 |
|
| 編號清單 | 不支援 | 1. (數字後接句號和空格) | 1. 這是清單中的第一個項目。 2. 這是清單中的第二個項目。 |
|
| 區塊引述 | > (大於符號) | > (大於符號) | >hello |
|
| 超連結 | <hyperlink|display text> |
[display text](hyperlink) |
或:
|
如要進一步瞭解超連結,請參閱「設定連結格式」。 |
| 提及使用者 | <users/{user}>,其中 {user} 是使用者 ID。 |
或:
|
或:
|
@Mahan S 如要進一步瞭解如何提及使用者,請參閱「在簡訊中提及使用者」。 |
| Custom Emoji |
或:
|
或:
|
或:
或:
或:
|
🐱 (微笑貓自訂表情符號) |
| 引用內容 | 不支援 | <chat-citation data-id="{id}">{text}</chat-citation>,其中 {id} 是訊息 elements 中定義的引用 ID。 |
<chat-citation data-id="cite_1">cited text</chat-citation> |
引用文字 如要進一步瞭解引用內容,請參閱「在訊息中加入引用內容」。 |
舉例來說,請參考下列 JSON:
{
"text": "Your pizza delivery *has arrived*!\nThank you for using _Cymbal Pizza!_"
}
這則格式化簡訊會在 Chat 聊天室中顯示以下內容:
查看訊息中的文字格式
使用者傳送訊息時,訊息的純文字內文會位於 text 欄位中。使用 Markdown 語法套用至簡訊的部分格式位於 text 欄位中。其他格式設定位於僅限輸出的 formattedText 欄位,包括:
- 文字的其他 Markdown 語法
- 使用者提及
- 自訂超連結
- 自訂表情符號
舉例來說,假設使用者傳送下列文字:
如果訊息是使用 Chat UI 中的「格式」選單設定格式,text 欄位只會包含文字,formattedText 欄位則會包含標記、文字和超連結。以下範例顯示簡訊草稿,其中包含超連結字詞、清單項目和粗體字詞:
訊息格式如下:
{
"text": "I can meet there at:\nNoon\n3 pm\n5 pm\nWhat time works for you?",
"formattedText": "I can meet <http://example.com|there> at:\n* Noon\n* 3 pm\n* 5 pm\nWhat time works for *you*?",
}
格式連結
如果您在訊息文字中加入純連結網址 (例如 http://www.example.com/),Google Chat 會將其做為連結文字,並自動將該文字超連結至指定網址。
如要為連結提供替代連結文字,請使用下列語法:
如果 API 訊息採用 Markdown 格式,請使用標準 Markdown 連結語法:
語法範例 Google Chat 中顯示的文字 [Example website](https://example.com)如要傳送標準純文字訊息,請使用管道語法:
語法範例 Google Chat 中顯示的文字 <https://example.com|Example website>管道和連結文字為選用,因此
<https://example.com>和https://example.com相同。
在簡訊中使用自訂表情符號
Chat 擴充應用程式可以傳送含有自訂表情符號的文字訊息,自訂表情符號僅適用於 Google Workspace 機構,且管理員必須為機構啟用自訂表情符號。詳情請參閱「瞭解 Google Chat 中的自訂表情符號」和「管理自訂表情符號權限」。
如要建立含有自訂表情符號的訊息,應用程式必須使用使用者驗證。以 Webhook 建立的訊息或透過應用程式驗證建立的訊息不支援自訂表情符號。
如要在訊息文字中加入自訂表情符號,請指定 customEmoji 資源的 name 或 emoji_name:
{
"text": "Hello <customEmojis/CUSTOM_EMOJI_ID>."
}
如要使用這個範例,請將 CUSTOM_EMOJI_ID 替換為自訂表情符號的 ID。您可以在 customEmoji 資源的 name 或 emoji_name 欄位中找到這個 ID。
如果應用程式使用 Markdown 語法傳送訊息,您可以使用自訂表情符號 ID,以 HTML 代碼格式指定自訂表情符號:
{
"text": "Hello <chat-emoji data-custom-emoji=\"customEmojis/CUSTOM_EMOJI_ID\">."
}
或指定自訂表情符號名稱:
{
"text": "Hello <chat-emoji data-emoji-name=\"CUSTOM_EMOJI_NAME\">."
}
如要使用這些範例,請將 CUSTOM_EMOJI_ID 替換為自訂表情符號 ID,並將 CUSTOM_EMOJI_NAME 替換為自訂表情符號短碼名稱。
在訊息中提及使用者
Chat 擴充應用程式可以傳送文字訊息,並在 Chat 聊天室中 @提及一位或所有使用者。Chat 擴充應用程式也可以提及尚未加入聊天室,或聊天室處於匯入模式的成員。
靜音訊息不支援提及使用者。在靜音訊息中提及使用者會傳回錯誤。
使用 @ 號提及特定使用者
如要 @提及特定使用者,請在簡訊中加入 <users/{user}>,其中 {user} 是使用者的 ID。舉例來說,請考慮以下文字訊息,其中 123456789012345678901 代表使用者 Mahan S. 的 ID:
{
"text": "A customer has reported an issue. Assigning ticket #942 to <users/123456789012345678901>."
}
如果應用程式使用 Markdown 語法傳送訊息,請使用 chat-user HTML 代碼格式指定使用者 ID:
{
"text": "Assigning ticket #942 to <chat-user data-user=\"users/123456789012345678901\">."
}
或指定電子郵件地址:
{
"text": "Assigning ticket #942 to <chat-user data-email=\"mahan@example.com\">."
}
簡訊內容如下:
您可以透過下列方式指定 users/{user} 值:
- 如果 Google Chat 應用程式要回覆使用者傳送的訊息,您可以使用
MESSAGE互動事件的message.sender.name欄位。 如果 Google Chat 應用程式正在建立非同步文字訊息,您可以透過下列方式指定
users/{user}的值:如果您使用 People API,也可以透過
people.get方法找出使用者 ID。
使用 @ 提及所有使用者
如要建立文字訊息,並在訊息中 @提及聊天室中的所有人,請將 {user} 替換為 all。下列 JSON 範例會在訊息中提及所有使用者:
{
"text": "Important message for <users/all>: Code freeze starts at midnight tonight!"
}
如果應用程式使用 Markdown 語法傳送訊息,請使用 chat-user HTML 代碼格式指定提及對象:
{
"text": "Important message for <chat-user data-user=\"users/all\">: Code freeze starts at midnight tonight!"
}
在訊息中加入引用資料
Chat 擴充應用程式可在訊息中加入引用資訊,為使用者提供詳細的來源資訊。您可以透過下列兩種方式提供來源:
- 內嵌引用:新增互動式資訊卡,當使用者將滑鼠游標懸停在訊息文字的特定部分時,就會顯示這些資訊卡。
- 訊息底部來源:在訊息底部以連結形式顯示來源清單。
只有在訊息的 markupSyntax 設為 MARKUP_SYNTAX_MARKDOWN 時,才支援引用。這項功能僅支援使用 Chat API 非同步建立訊息。
如要在訊息中新增內嵌引用資料,請按照下列步驟操作:
- 在訊息
elements的citations清單中提供來源,並為每個Citation物件指派不重複的id。 - 在訊息文字中,使用
chat-citationHTML 代碼格式<chat-citation data-id="{id}">{text}</chat-citation>包裹要引用的文字。請確認{id}與您在elements中定義的 ID 相符。系統會忽略未參照的引用項目 (沒有相符標記)。
{
"text": "This is a <chat-citation data-id=\"cite_1\">cited</chat-citation> text.",
"markupSyntax": "MARKUP_SYNTAX_MARKDOWN",
"elements": {
"citations": [
{
"id": "cite_1",
"citedSources": [
{
"title": "Example Source",
"uri": "https://example.com"
}
]
}
]
}
}
如要在訊息中加入訊息底部來源,請在訊息 elements 的 citedSources 清單中提供來源。這裡提供的任何來源都會自動顯示在訊息下方,做為頁尾連結,不需要在訊息文字中加入內嵌標記。
{
"text": "This is a message with a footer source.",
"markupSyntax": "MARKUP_SYNTAX_MARKDOWN",
"elements": {
"citedSources": [
{
"title": "Example Source",
"uri": "https://example.com"
}
]
}
}
設定資訊卡中文字的格式
在資訊卡中,大多數文字欄位都支援使用一小部分 HTML 代碼進行基本文字格式設定。資訊卡訊息和文字訊息的文字格式設定方式不同,因為文字訊息的格式設定語法與 Chat 使用者相同。
使用資訊卡建構工具,設計及預覽 Chat 擴充應用程式的訊息和使用者介面:
開啟資訊卡製作工具設定段落文字格式
下表列出支援的標記及其用途:
| 格式 | 範例 | 呈現的結果 |
|---|---|---|
| 粗體 | "This is <b>bold</b>." |
這是粗體。 |
| 斜體 | "This is <i>italics</i>." |
這是斜體。 |
| 底線 | "This is <u>underline</u>." |
這是底線。 |
| 刪除線 | "This is <s>strikethrough</s>." |
這是 |
| 字型顏色 | "This is <font color=\"#FF0000\">red font</font>." |
這是紅色字型。 |
| 超連結 | "This is a <a href=\"https://www.google.com\">hyperlink</a>." |
這是超連結。 |
| 時間 | "This is a time format: <time>2023-02-16 15:00</time>." |
時間格式:。 |
| 換行字元 | "This is the first line. <br> This is a new line." |
這是第一行。 這是新的一行。 |
如要定義清單和程式碼區塊,請使用下列標記:
| 格式 | 範例 | 呈現的結果 |
|---|---|---|
| 換行 | "Line 1<br>Line 2" |
第 1 行 第 2 行 |
| 等寬 | "This is an <code>inline code</code>." |
這是inline code。 |
| 等寬區塊 | "<pre><code>This a code block.</code></pre>" |
|
| 項目符號清單 | "<ul><li>List item 1</li><li>List item 2</li></ul>" |
|
| 已排序的清單 | "<ol><li>List item 1</li><li>List item 2</li></ol>" |
|
Markdown
開啟 Markdown 語法後,即可使用下列語法:
| 格式 | 範例 | 呈現的結果 |
|---|---|---|
| 粗體 | **hello** 或 __hello__ | 你好 |
| 斜體 | *hello* 或 _hello_ | 你好 |
| 刪除線 | ~hello~ | |
| 等寬 | `hello` | hello |
| 等寬區塊 | ``` Hello World ``` |
Hello |
| 項目符號清單 | - 這是清單中的第一個項目 - 這是清單中的第二個項目 |
|
|
* 這是清單中的第一個項目 * 這是清單中的第二個項目 |
|
|
| 已排序的清單 | 1. 這是清單中的第一個項目 2. 這是清單中的第二個項目 |
|
| 超連結 | [範例網站](https://example.com) | 網站範例 |
在文字中加入圖示
如要在資訊卡中並排顯示圖示和文字,可以使用 DecoratedText 和 ButtonList 小工具。
以下各節說明如何在裝飾文字或按鈕中使用內建圖示、Google Material 圖示或自訂圖示。
使用 Chat 的圖示
如要使用 Chat 內建圖示,請指定下列其中一項:
下表列出卡片訊息可用的內建圖示:
| AIRPLANE | BOOKMARK | ||
| BUS | CAR | ||
| 時鐘 | CONFIRMATION_NUMBER_ICON | ||
| DESCRIPTION | DOLLAR | ||
| 電子郵件 | EVENT_SEAT | ||
| FLIGHT_ARRIVAL | FLIGHT_DEPARTURE | ||
| HOTEL | HOTEL_ROOM_TYPE | ||
| 邀請 | MAP_PIN | ||
| 會員 | MULTIPLE_PEOPLE | ||
| PERSON | 手機 | ||
| RESTAURANT_ICON | SHOPPING_CART | ||
| STAR | STORE | ||
| 票券 | 訓練 | ||
| VIDEO_CAMERA | VIDEO_PLAY |
以下是含有電子郵件圖示的資訊卡範例:
使用 Google Material Design 圖示
您可以使用 Google Material Design 圖示,從超過 2500 個圖示選項中選取,並自訂圖示的粗細、填滿和等級。
以下是含有 Google Material Design 圖示的資訊卡範例:
使用自訂圖示
如要新增自訂圖示,請加入 iconUrl 欄位,並指定圖示的對應網址。
以下是自訂圖示範例: