На этой странице объясняется, как приложения 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*?",
}
Формат ссылок
Если вы добавите в текст сообщения обычную ссылку, например 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ресурса Google ChatUser, например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 от Google, чтобы выбрать из более чем 2500 вариантов значков и настроить их толщину, заливку и класс.
Ниже приведен пример карточки со значком Material Design от Google.
Как использовать собственные значки
Чтобы добавить собственный значок, включите поле iconUrl и укажите соответствующий URL значка.
Ниже приведен пример пользовательского значка.