このページでは、Google Chat アプリでテキストの書式を設定して、次のいずれかを含むメッセージを送信する方法について説明します。
- ハイパーリンクまたは Chat スペース内の 1 人またはすべてのユーザーへのメンションを含むリッチテキスト。
- カード インターフェースに表示されるテキスト。段落テキストや、ボタンなどのアイコンとともに表示される 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 アプリ構成なしで Chat API を呼び出す場合、リクエストはデフォルトで
MARKUP_SYNTAX_MARKDOWNになります。 - 着信 Webhook: デフォルトは
MARKUP_SYNTAX_CHATです。受信 Webhook を使用してメッセージを送信するをご覧ください。
テキスト メッセージの書式を設定するには、次の構文を使用します。
| 形式 | MARKUP_SYNTAX_CHAT | MARKUP_SYNTAX_MARKDOWN | 構文の例 | Google Chat に表示されるテキスト |
|---|---|---|---|---|
| 太字 | * |
** |
または
|
こんにちは |
| 斜体 | _(アンダースコア) |
* |
または
|
こんにちは |
| 取り消し線 | ~ |
~~ |
または
|
|
| 等幅 | (バッククォート) | (バッククォート) | `hello` | hello |
| 等幅ブロック | ` ` ` (3 つのバッククォート) | ` ` ` (3 つのバッククォート) | ``` Hello World ``` |
Hello |
| 箇条書き | * または -(ハイフン)とスペース 1 つ | * または -(ハイフン)とスペース 1 つ | * リストの最初の項目です。 * これはリストの 2 番目の項目です。 |
|
| ネストされたリスト | * または -(ハイフン)に続けてスペースを入力し、ネストレベルごとに 4 つのスペースを前に入力します。 | * または -(ハイフン)に続けてスペースを入力し、ネストレベルごとに 4 つのスペースを前に入力します。 | * これは、リスト内でネストの深さが 1 のアイテムです。 * これは、リスト内でネストの深さが 2 のアイテムです。 * リスト内でネストの深さが 3 のアイテムです。 |
|
| 番号付きリスト | サポート対象外 | 1. (数字の後にピリオドとスペースを続ける) | 1. これはリストの最初の項目です。 2. これはリストの 2 番目の項目です。 |
|
| 引用文 | >(大なり記号) | >(大なり記号) | >hello |
|
| Hyperlink | <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/ などのプレーンなリンク URL を含めると、Google Chat はこれをリンクテキストとして使用し、そのテキストを指定された URL に自動的にハイパーリンクします。
リンクに代替リンクテキストを指定するには、次の構文を使用します。
Markdown で構成された API メッセージの場合は、標準の 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 に置き換えます。この ID は、customEmoji リソースの name フィールドまたは emoji_name フィールドで確認できます。
アプリが 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 スペース内の 1 人またはすべてのユーザーを @メンションするテキスト メッセージを送信できます。Chat 用アプリは、スペースに参加していないユーザーや、インポート モードのスペースのメンバーであるユーザーにメンションすることもできます。
サイレント メッセージでは、ユーザーのメンションはサポートされていません。サイレント メッセージにメンションを含めると、エラーが返されます。
特定のユーザーに名前リンク(@)を付ける
特定のユーザーに名前リンクを付けるには、テキスト メッセージに <users/{user}> を追加します。ここで、{user} はユーザーの ID です。たとえば、次のテキスト メッセージでは、123456789012345678901 はユーザー Mahan S. の ID を表します。
{
"text": "A customer has reported an issue. Assigning ticket #942 to <users/123456789012345678901>."
}
アプリがマークダウン構文を使用してメッセージを送信する場合は、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 用アプリは、テキスト メッセージに引用を含めて、ユーザーに詳細なソース情報を提供できます。ソースは次の 2 つの方法で提供できます。
- インライン引用: ユーザーがメッセージ テキストの特定の部分にポインタを合わせると表示されるインタラクティブ カードを追加します。
- フッターソース: メッセージの下部にソースのリストをフッターリンクとして表示します。
引用は、メッセージの 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>." |
これは赤色のフォントです。 |
| Hyperlink | "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 構文がオンになっている場合は、次の構文を使用できます。
| 形式 | 例 | レンダリングされた結果 |
|---|---|---|
| 太字 | **hello** または __hello__ | こんにちは |
| 斜体 | *hello* または _hello_ | こんにちは |
| 取り消し線 | ~hello~ | |
| 等幅 | `hello` | hello |
| 等幅ブロック | ``` Hello World ``` |
Hello |
| 箇条書き | - リストの最初の項目 - リストの 2 番目の項目です |
|
|
* リストの最初の項目 * これはリストの 2 番目の項目です |
|
|
| 順序付きリスト | 1. これはリストの最初の項目です 2. これはリストの 2 番目の項目です |
|
| Hyperlink | [ウェブサイトの例](https://example.com) | ウェブサイトの例 |
テキストにアイコンを追加する
カードのテキストの横にアイコンを表示するには、DecoratedText ウィジェットと ButtonList ウィジェットを使用します。
以降のセクションでは、装飾付きテキストまたはボタンで組み込みアイコン、Google マテリアル アイコン、カスタム アイコンを使用する方法について説明します。
Chat のアイコンを使用する
Chat で利用可能な組み込みアイコンを使用するには、次のいずれかを指定します。
次の表に、カード メッセージで使用できる組み込みアイコンを示します。
| AIRPLANE | BOOKMARK | ||
| BUS | CAR | ||
| CLOCK | CONFIRMATION_NUMBER_ICON | ||
| 説明 | DOLLAR | ||
| メールアドレス | EVENT_SEAT | ||
| FLIGHT_ARRIVAL | FLIGHT_DEPARTURE | ||
| HOTEL | HOTEL_ROOM_TYPE | ||
| 招待 | MAP_PIN | ||
| メンバーシップ | MULTIPLE_PEOPLE | ||
| PERSON | PHONE | ||
| RESTAURANT_ICON | SHOPPING_CART | ||
| STAR | STORE | ||
| TICKET | トレーニング | ||
| VIDEO_CAMERA | VIDEO_PLAY |
メールアイコン付きのカードの例を次に示します。
Google マテリアル アイコンを使用する
Google マテリアル アイコンを使用すると、2,500 以上のアイコン オプションから選択して、アイコンの太さ、塗りつぶし、グレードをカスタマイズできます。
Google マテリアル アイコンを含むカードの例を次に示します。
カスタム アイコンを使用する
カスタム アイコンを追加するには、iconUrl フィールドを含めて、アイコンに対応する URL を指定します。
カスタム アイコンの例を次に示します。