На этой странице объясняется, как приложения Google Chat могут форматировать текст для отправки сообщений, содержащих:
- Форматированный текст, содержащий гиперссылки или @упоминания одного или всех пользователей в чат-группе 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 для обеспечения обратной совместимости.
Вы также можете указать markup_syntax в отдельных запросах Chat API, чтобы переопределить значение по умолчанию на уровне приложения. Если параметр markup_syntax не указан в запросе к API, разметка задается в зависимости от того, как вы вызываете Chat API:
- Настроенные приложения Chat. Используется синтаксис разметки, сохраненный на странице конфигурации Chat API.
- Ненастроенные облачные проекты (без конфигурации). Если ваш облачный проект вызывает Chat API без сохраненной конфигурации приложения Chat, запросы по умолчанию используют
MARKUP_SYNTAX_MARKDOWN. - Входящие вебхуки. По умолчанию установлено значение
MARKUP_SYNTAX_CHAT. Подробнее о том, как отправлять сообщения с помощью входящих вебхуков…
Чтобы отформатировать текстовые сообщения, используйте следующий синтаксис:
| Формат | MARKUP_SYNTAX_CHAT | MARKUP_SYNTAX_MARKDOWN | Пример синтаксиса | Текст, который показывается в Google Chat |
|---|---|---|---|---|
| Полужирный | * |
** |
Альтернативный вариант:
|
hello |
| Курсив | _ (символ подчеркивания) |
* |
Альтернативный вариант:
|
hello |
| Зачеркнутый | ~ |
~~ |
Альтернативный вариант:
|
|
| Моноширинный шрифт | ` (обратная кавычка) | ` (обратная кавычка) | `hello` | hello |
| Блок моноширинного шрифта | ` ` ` (три обратных апострофа) | ` ` ` (три обратных апострофа) | ``` Hello World ``` |
Hello |
| Маркированный список | * или - (дефис), за которым следует пробел | * или - (дефис), за которым следует пробел | * Это первый пункт в списке. * Это второй элемент списка. |
|
| Вложенный список | * или - (дефис), за которым следует пробел, а перед ним – четыре пробела на каждый уровень вложенности. | * или - (дефис), за которым следует пробел, а перед ним – четыре пробела на каждый уровень вложенности. | * Это элемент списка с глубиной вложенности 1. * Это элемент списка с вложенностью второго уровня. * Это элемент списка с третьим уровнем вложенности. |
|
| Нумерованный список | Не поддерживается | 1. (число, за которым следует точка и пробел) | 1. Это первый элемент в списке. 2. Это второй элемент в списке. |
|
| Блок цитаты | > (знак "больше") | > (знак "больше") | >привет |
|
| Гиперссылка | <hyperlink|display text> |
[display text](hyperlink) |
Альтернативный вариант:
|
Подробнее о форматировании ссылок… |
| Упомянуть пользователя | <users/{user}>, где {user} – идентификатор пользователя. |
Альтернативный вариант:
|
Альтернативный вариант: Здравствуйте,
|
@Mahan S Подробнее о том, как упоминать пользователей в текстовых сообщениях… |
| Custom Emoji |
Альтернативный вариант:
|
Альтернативный вариант:
|
Альтернативный вариант:
Альтернативный вариант:
Альтернативный вариант:
|
🐱 (эмодзи улыбающейся кошки); |
| Цитата | Не поддерживается | <chat-citation data-id="{id}">{text}</chat-citation>, где {id} – идентификатор цитаты, определенный в сообщении elements. |
<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, поле 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*?",
}
Формат ссылок
Если вы добавите в текст сообщения обычный URL, например http://www.example.com/, Google Chat использует его в качестве текста ссылки и автоматически свяжет этот текст с указанным URL.
Чтобы указать альтернативный текст для ссылки, используйте следующий синтаксис:
Для сообщений 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 и Как управлять разрешениями на использование собственных эмодзи.
Чтобы создавать сообщения с собственными эмодзи, в приложении должна использоваться аутентификация пользователей. Собственные эмодзи не поддерживаются в сообщениях, созданных как вебхук, и в сообщениях, созданных с аутентификацией приложения.
Чтобы добавить собственный эмодзи в текст сообщения, укажите name или emoji_name ресурса customEmoji:
{
"text": "Hello <customEmojis/CUSTOM_EMOJI_ID>."
}
Чтобы использовать этот пример, замените CUSTOM_EMOJI_ID на идентификатор собственного эмодзи. Этот идентификатор можно найти в поле name или emoji_name ресурса customEmoji.
Если ваше приложение отправляет сообщения с использованием синтаксиса Markdown, вы можете указать собственные эмодзи в формате 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 на идентификатор собственного эмодзи, а CUSTOM_EMOJI_NAME – на его короткое название.
Как упомянуть пользователя в текстовом сообщении
Приложения Chat могут отправлять текстовые сообщения, в которых упоминается один или все пользователи в чат-группе Chat. Приложения для Chat также могут упоминать пользователей, которые не присоединились к чат-группе или являются участниками чат-группы в режиме импорта.
В тихих сообщениях упоминать пользователей нельзя. Если добавить упоминание в тихое сообщение, возвращается ошибка.
@упоминать определенных пользователей;
Чтобы упомянуть определенного пользователя, добавьте в текстовое сообщение <users/{user}>, где {user} – идентификатор пользователя. Например, в следующем текстовом сообщении 123456789012345678901 – это идентификатор пользователя Mahan S.:
{
"text": "A customer has reported an issue. Assigning ticket #942 to <users/123456789012345678901>."
}
Если ваше приложение отправляет сообщения с использованием синтаксиса Markdown, используйте формат HTML-тега chat-user, чтобы указать идентификатор пользователя:
{
"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.sender.nameсобытия взаимодействияMESSAGE. Если приложение Google Chat создает асинхронное текстовое сообщение, вы можете указать значение
users/{user}следующими способами:- Используйте поле
nameресурсаUserGoogle Chat, напримерusers/123456789012345678901. - Используйте адрес электронной почты пользователя в качестве псевдонима для значения
{user}. Например, если адрес электронной почты –mahan@example.com, вы можете указать пользователя какusers/mahan@example.com. Чтобы использовать псевдоним электронной почты, приложение Google Chat должно выполнить аутентификацию от имени пользователя.
- Используйте поле
Если вы используете People API, то можете также использовать метод
people.get, чтобы определить идентификатор пользователя.
@упоминать всех пользователей;
Чтобы создать текстовое сообщение, в котором упоминаются все участники чат-группы, замените {user} на all. В следующем примере JSON в сообщении упоминаются все пользователи:
{
"text": "Important message for <users/all>: Code freeze starts at midnight tonight!"
}
Если приложение отправляет сообщения с использованием синтаксиса Markdown, укажите упоминание в формате HTML-тега chat-user:
{
"text": "Important message for <chat-user data-user=\"users/all\">: Code freeze starts at midnight tonight!"
}
Как добавить цитаты в текстовое сообщение
Приложения Chat могут включать цитаты в текстовые сообщения, чтобы предоставлять пользователям подробную информацию об источнике. Добавить источники можно двумя способами:
- Встроенные цитаты. Добавьте интерактивные карточки, которые появляются, когда пользователи наводят указатель на определенные части текста сообщения.
- Источники в нижнем колонтитуле. Список источников будет показан внизу сообщения в виде ссылок.
Цитаты поддерживаются, только если для параметра markupSyntax сообщения задано значение MARKUP_SYNTAX_MARKDOWN. Эта функция поддерживается только при асинхронном создании сообщений с помощью Chat API.
Чтобы добавить в сообщение встроенные цитаты:
- Укажите источники в списке
citationsсообщенияelements, назначив уникальныйidкаждому объектуCitation. - В тексте сообщения заключите цитируемый текст в HTML-тег
chat-citation:<chat-citation data-id="{id}">{text}</chat-citation>. Убедитесь, что{id}соответствует идентификатору, который вы указали вelements. Цитаты без ссылок (без соответствующего тега) игнорируются.
{
"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"
}
]
}
]
}
}
Чтобы добавить источники в нижний колонтитул сообщения, укажите их в списке citedSources объекта elements. Все указанные здесь источники автоматически появляются под сообщением в виде ссылок в нижнем колонтитуле и не требуют встроенных тегов в тексте сообщения.
{
"text": "This is a message with a footer source.",
"markupSyntax": "MARKUP_SYNTAX_MARKDOWN",
"elements": {
"citedSources": [
{
"title": "Example Source",
"uri": "https://example.com"
}
]
}
}
Как форматировать текст в карточках
Внутри карточек большинство текстовых полей поддерживают базовое форматирование текста с помощью небольшого поднабора HTML-тегов. Форматирование текста в сообщениях-карточках отличается от форматирования в текстовых сообщениях, поскольку в текстовых сообщениях используется тот же синтаксис, что и в Chat.
Используйте Card Builder для разработки и предварительного просмотра сообщений и пользовательских интерфейсов для приложений 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 World ``` |
Hello |
| Маркированный список | - Это первый элемент в списке. - Это второй элемент списка |
|
|
* Это первый элемент в списке. * Это второй пункт списка. |
|
|
| Упорядоченный список | 1. Это первый элемент в списке. 2. Это второй элемент в списке. |
|
| Гиперссылка | [Пример сайта](https://example.com) | Пример сайта |
Добавление значков в текст
Чтобы показывать значки рядом с текстом на карточке, используйте виджеты DecoratedText и ButtonList.
В разделах ниже рассказывается, как использовать встроенные значки, значки Google Material или собственные значки в декорированном тексте или кнопках.
Использовать значки из Chat
Чтобы использовать встроенные значки, доступные в Chat, укажите одно из следующих значений:
В таблице ниже перечислены встроенные значки, доступные для сообщений в виде карточек.
| AIRPLANE | BOOKMARK | ||
| BUS | CAR | ||
| ЧАСЫ | CONFIRMATION_NUMBER_ICON | ||
| ОПИСАНИЕ | DOLLAR | ||
| EVENT_SEAT | |||
| FLIGHT_ARRIVAL | FLIGHT_DEPARTURE | ||
| HOTEL | HOTEL_ROOM_TYPE | ||
| INVITE | MAP_PIN | ||
| MEMBERSHIP | MULTIPLE_PEOPLE | ||
| PERSON | ТЕЛЕФОН | ||
| RESTAURANT_ICON | SHOPPING_CART | ||
| STAR | STORE | ||
| TICKET | TRAIN | ||
| VIDEO_CAMERA | VIDEO_PLAY |
Ниже приведен пример карточки со значком электронной почты.
Как использовать значки Material Design от Google
Вы можете использовать значки Material Design, выбрав из более чем 2500 вариантов и настроив толщину, заливку и класс значков.
Ниже приведен пример карточки со значком Material Design от Google.
Как использовать собственные значки
Чтобы добавить собственный значок, включите поле iconUrl и укажите соответствующий URL значка.
Ниже приведен пример пользовательского значка.