string Идентификатор. Имя ресурса сообщения. Формат: spaces/{space}/messages/{message} Где {space} — это идентификатор пространства, куда отправлено сообщение, а {message} — это системный идентификатор сообщения. Например, spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB . Если вы зададите пользовательский идентификатор при создании сообщения, вы сможете использовать этот идентификатор для указания сообщения в запросе, заменив {message} значением из поля clientAssignedMessageId . Например, spaces/AAAAAAAAAAA/messages/client-custom-name . Подробнее см. раздел «Назвать сообщение» .
string ( Timestamp format) Необязательно. Неизменяемо. Для пространств, созданных в чате, указывается время создания сообщения. Это поле предназначено только для вывода, за исключением случаев использования в пространствах в режиме импорта. Для пространств в режиме импорта установите в этом поле историческую метку времени, в которую сообщение было создано в источнике, чтобы сохранить исходное время создания.
lastUpdateTime
string ( Timestamp format) Только для вывода. Время последнего редактирования сообщения пользователем. Если сообщение никогда не редактировалось, это поле пустое.
deleteTime
string ( Timestamp format) Только вывод. Время удаления сообщения в Google Chat. Если сообщение никогда не удалялось, это поле пустое.
string Только для вывода. Содержит text сообщения с добавленными разметками для отображения форматирования. Это поле может не содержать всего форматирования, видимого в пользовательском интерфейсе, но включает следующее: Синтаксис разметки для жирного, курсивного, зачеркнутого, моноширинного, моноширинного блочного и маркированного списков. Пользователь упоминает использование формата <users/{user}> . Пользовательские гиперссылки, использующие формат <{url}|{rendered_text}> где первая строка — это URL-адрес, а вторая — отображаемый текст, например, <http://example.com
cards[] (deprecated)
object ( Card ) Устарело: используйте cardsV2 вместо него. Интерактивные, форматированные и удобные для отображения элементы пользовательского интерфейса, такие как форматированный текст, кнопки и кликабельные изображения. Карточки обычно отображаются под текстовым содержимым сообщения. Размер cards и cardsV2 не должен превышать 32 КБ.
object ( Annotation ) Только для вывода. Аннотации могут быть связаны с текстовым телом сообщения или с фрагментами, которые ссылаются на ресурсы Google Workspace, такие как Google Docs или Google Sheets, с startIndex и length 0.
string Необязательно. Текстовое описание карточек сообщения, используемое, когда сами карточки не могут быть отображены — например, для уведомлений на мобильных устройствах.
actionResponse
object ( ActionResponse ) Только для ввода. Параметры, которые приложение чата может использовать для настройки способа отправки ответа.
argumentText
string Только вывод. Текст сообщения в обычном формате, без упоминания каких-либо приложений для чата.
slashCommand
object ( SlashCommand ) Только вывод. Информация о команде слэша, если применимо.
object ( MatchedUrl ) Только для вывода. URL-адрес в spaces.messages.text , соответствующий шаблону предварительного просмотра ссылки. Для получения дополнительной информации см. раздел «Предварительный просмотр ссылок» .
threadReply
boolean Только для вывода. Если true , сообщение является ответом в ветке ответов. Если false , сообщение отображается в основной беседе пространства либо как первое сообщение ветки, либо как сообщение без ответов в ветке. Если пространство не поддерживает ответы в ветках обсуждений, это поле всегда будет false .
clientAssignedMessageId
string Необязательно. Пользовательский идентификатор для сообщения. Вы можете использовать это поле для идентификации сообщения, а также для получения, удаления или обновления сообщения. Чтобы задать пользовательский идентификатор, укажите поле messageId при создании сообщения. Подробнее см. раздел «Присвоение имени сообщению» .
emojiReactionSummaries[]
object ( EmojiReactionSummary ) Только вывод. Список кратких описаний реакций в виде эмодзи к сообщению.
privateMessageViewer
object ( User ) Необязательно. Неизменяемое. Поле для создания сообщения, в противном случае только для вывода. Пользователь, который может просмотреть сообщение. Если задано, сообщение является приватным и видно только указанному пользователю и приложению «Чат». Чтобы включить это поле в ваш запрос, необходимо вызвать API чата с использованием аутентификации приложения и опустить следующее: ВложенияДополнительные виджеты Подробности см. в разделе «Отправить личное сообщение» .
deletionMetadata
object ( DeletionMetadata ) Только вывод. Информация об удалённом сообщении. Сообщение удаляется, когда задано значение deleteTime .
quotedMessageMetadata
object ( QuotedMessageMetadata ) Необязательно. Информация о сообщении, которое цитируется в другом сообщении. При создании сообщения вы можете цитировать сообщения в рамках той же ветки обсуждения или цитировать основное сообщение, чтобы создать новое основное сообщение. Однако вы не можете цитировать ответ на сообщение из другой ветки обсуждения. При обновлении сообщения вы не можете добавить или заменить поле quotedMessageMetadata , но можете его удалить. Примеры использования см. в разделе «Цитировать другое сообщение» .
attachedGifs[]
object ( AttachedGif ) Только для вывода. GIF-изображения, прикрепленные к сообщению.
accessoryWidgets[]
object ( AccessoryWidget ) Необязательно. Один или несколько интерактивных виджетов, которые отображаются внизу сообщения. Вы можете добавлять дополнительные виджеты к сообщениям, содержащим текст, карточки или и текст, и карточки. Не поддерживается для сообщений, содержащих диалоги. Подробнее см. раздел «Добавление интерактивных виджетов внизу сообщения» . Для создания сообщения с дополнительными виджетами требуется аутентификация приложения .
Карточки могут создавать только приложения для чата. Если ваше приложение для чата авторизуется как пользователь , сообщение не может содержать карточки.
Создавайте и просматривайте карточки с помощью конструктора карточек.
Только для вывода. Аннотации могут быть связаны с текстовым телом сообщения или с фрагментами, которые ссылаются на ресурсы Google Workspace, такие как Google Docs или Google Sheets, с startIndex и length 0. Чтобы добавить базовое форматирование к текстовому сообщению, см. раздел «Форматирование текстовых сообщений» .
{ "type": enum (AnnotationType), "length": integer, "startIndex": integer, // Union field metadata can be only one of the following: "userMention": { object (UserMentionMetadata) }, "slashCommand": { object (SlashCommandMetadata) }, "richLinkMetadata": { object (RichLinkMetadata) }, "customEmojiMetadata": { object (CustomEmojiMetadata) } // End of list of possible types for union field metadata. }
string Название вызываемой команды с косой чертой.
commandId
string ( int64 format) Идентификатор команды, которая была вызвана.
triggersDialog
boolean Указывает, предназначена ли команда слэша для диалогового окна.
Тип
Перечисления
TYPE_UNSPECIFIED
Значение по умолчанию для перечисления. Не использовать.
ADD
Добавьте приложение «Чат» в пространство.
INVOKE
Введите команду слэша в пробеле.
RichLinkMetadata
Расширенная ссылка на ресурс. Расширенные ссылки могут быть связаны с текстовым телом сообщения или представлять собой фрагменты, которые ссылаются на ресурсы Google Workspace, такие как Google Docs или Google Sheets, с startIndex и length 0.
JSON-представление
{ "uri": string, "richLinkType": enum (RichLinkType), // Union field data can be only one of the following: "driveLinkData": { object (DriveLinkData) }, "chatSpaceLinkData": { object (ChatSpaceLinkData) }, "meetSpaceLinkData": { object (MeetSpaceLinkData) }, "calendarEventLinkData": { object (CalendarEventLinkData) } // End of list of possible types for union field data. }
Поля
uri
string URI этой ссылки.
richLinkType
enum ( RichLinkType ) Тип ссылок «расширенные ссылки».
data поля объединения. Данные для связанного ресурса. data могут быть только одним из следующих типов:
driveLinkData
object ( DriveLinkData ) Данные для приводного звена.
Тип ссылок «расширенные ссылки». В будущем могут быть добавлены и другие типы.
Перечисления
RICH_LINK_TYPE_UNSPECIFIED
Значение по умолчанию для перечисления. Не использовать.
DRIVE_FILE
Тип ссылки, расширяющий возможности Google Drive.
CHAT_SPACE
Тип ссылки, расширяющий возможности чата. Например, интеллектуальный чип в пространстве.
GMAIL_MESSAGE
Тип ссылки, отображаемой в сообщениях Gmail. В частности, это фрагмент кода Gmail из функции «Поделиться в чат» . API поддерживает чтение только сообщений со ссылками типа GMAIL_MESSAGE.
MEET_SPACE
Тип ссылки, используемый в сообщениях Meet. Например, значок Meet.
CALENDAR_EVENT
Тип ссылки, используемый в календарных сообщениях. Например, «Краткий элемент календаря».
enum ( Type ) Указывает тип пространства для встреч.
huddleStatus
enum ( HuddleStatus ) Необязательный параметр. Только для вывода. Если встреча является групповой, указывает статус групповой встречи. В противном случае этот параметр не задан.
Тип
Тип помещения для встреч.
Перечисления
TYPE_UNSPECIFIED
Значение по умолчанию для перечисления. Не использовать.
MEETING
Пространство Meet предназначено для проведения встреч.
HUDDLE
Пространство для встреч — это место, где можно собраться вместе.
Статус обсуждения
Состояние совещания
Перечисления
HUDDLE_STATUS_UNSPECIFIED
Значение по умолчанию для перечисления. Не использовать.
STARTED
Совещание началось.
ENDED
Встреча завершена. В этом случае URI и идентификаторы пространства Meet больше не будут действительны.
MISSED
Встреча была пропущена. В этом случае URI и идентификаторы пространства Meet больше не будут действительны.
Если при создании сообщения вы указываете ветку обсуждения, вы можете задать в поле messageReplyOption , определяющие, что произойдет, если соответствующая ветка не будет найдена.
JSON-представление
{ "name": string, "threadKey": string }
Поля
name
string Идентификатор. Имя ресурса потока. Пример: spaces/{space}/threads/{thread}
threadKey
string Необязательный параметр. Входные данные для создания или обновления потока. В противном случае — только вывод. Идентификатор потока. Поддерживает до 4000 символов. Этот идентификатор уникален для приложения чата, которое его установило. Например, если несколько приложений чата создают сообщение, используя один и тот же ключ ветки, сообщения будут опубликованы в разных ветках. Чтобы ответить в ветке, созданной одним человеком или другим приложением чата, укажите вместо этого поле name ветки.
ДействиеОтвет
Параметры, которые приложение чата может использовать для настройки способа отправки ответа.
enum ( ResponseType ) Только ввод. Тип ответа приложения для чата.
url
string Только для ввода. URL-адрес для аутентификации или настройки пользователей. (Только для типов ответов REQUEST_CONFIG .)
dialogAction
object ( DialogAction ) Только ввод. Ответ на событие взаимодействия, связанное с диалогом . Должен сопровождаться ResponseType.Dialog .
updatedWidget
object ( UpdatedWidget ) Только ввод данных. Ответ обновленного виджета.
Тип ответа
Тип ответа приложения для чата.
Перечисления
TYPE_UNSPECIFIED
Тип по умолчанию, обрабатываемый как NEW_MESSAGE .
NEW_MESSAGE
Опубликовать как новое сообщение в этой теме.
UPDATE_MESSAGE
Обновить сообщение в чате. Это разрешено только при событии CARD_CLICKED , где тип отправителя сообщения — BOT .
UPDATE_USER_MESSAGE_CARDS
Обновить карточки в сообщении пользователя. Это разрешено только в ответ на событие MESSAGE с соответствующим URL-адресом или событие CARD_CLICKED , где тип отправителя сообщения — HUMAN . Текст игнорируется.
REQUEST_CONFIG
Запросить у пользователя дополнительную аутентификацию или настройку в частном порядке.
{ "actionStatus": { object (ActionStatus) }, // Union field action can be only one of the following: "dialog": { object (Dialog) } // End of list of possible types for union field action. }
Поля
actionStatus
object ( ActionStatus ) Только ввод. Статус запроса на запуск или отправку диалогового окна . При необходимости отображает статус и сообщение для пользователей. Например, в случае ошибки или успеха.
Полевая action профсоюза. Действие по выполнению. action может быть только одним из следующих:
object ( Card ) Только ввод. Тело диалогового окна, которое отображается в модальном окне. Приложения Google Chat не поддерживают следующие сущности карточек: DateTimePicker , OnChangeAction .
ActionStatus
Отображает статус запроса на запуск или отправку диалога .
string Сообщение, которое необходимо отправить пользователям о статусе их запроса. Если параметр не задан, отправляется стандартное сообщение, основанное на statusCode .
Код
Канонические коды ошибок для API gRPC.
Иногда может применяться несколько кодов ошибок. Сервисы должны возвращать наиболее конкретный код ошибки, который применим. Например, если применимы оба кода, следует отдавать предпочтение OUT_OF_RANGE перед FAILED_PRECONDITION . Аналогично, следует отдавать предпочтение NOT_FOUND или ALREADY_EXISTS перед FAILED_PRECONDITION .
Перечисления
OK
Это не ошибка; возвращено в случае успеха. HTTP-сопоставление: 200 OK
CANCELLED
Операция была отменена, как правило, самим звонившим. HTTP-сопоставление: 499 Клиент закрыл запрос
UNKNOWN
Неизвестная ошибка. Например, эта ошибка может быть возвращена, когда значение Status , полученное из другого адресного пространства, принадлежит пространству ошибок, неизвестному в данном адресном пространстве. Также ошибки, возникающие при использовании API, которые не предоставляют достаточно информации об ошибке, могут быть преобразованы в эту ошибку. HTTP-сопоставление: 500 Внутренняя ошибка сервера
INVALID_ARGUMENT
Клиент указал недопустимый аргумент. Обратите внимание, что это отличается от FAILED_PRECONDITION . INVALID_ARGUMENT указывает на аргументы, которые являются проблематичными независимо от состояния системы (например, некорректное имя файла). HTTP-сопоставление: 400 Неверный запрос
DEADLINE_EXCEEDED
Срок выполнения операции истёк до её завершения. Для операций, изменяющих состояние системы, эта ошибка может быть возвращена даже в случае успешного завершения операции. Например, успешный ответ от сервера мог быть задержан настолько, что истек срок выполнения операции. HTTP-сопоставление: 504 Таймаут шлюза
NOT_FOUND
Некоторые запрошенные объекты (например, файлы или каталоги) не найдены. Примечание для разработчиков сервера: если запрос отклонен для целой группы пользователей, например, при поэтапном внедрении функций или использовании недокументированного списка разрешенных пользователей, можно использовать NOT_FOUND . Если запрос отклонен для некоторых пользователей в рамках группы пользователей, например, при управлении доступом на основе пользователей, необходимо использовать PERMISSION_DENIED . HTTP-сопоставление: 404 Не найдено
ALREADY_EXISTS
Объект, который клиент пытался создать (например, файл или каталог), уже существует. HTTP-сопоставление: конфликт 409
PERMISSION_DENIED
У вызывающей стороны нет разрешения на выполнение указанной операции. PERMISSION_DENIED не следует использовать для отказов, вызванных исчерпанием ресурсов (вместо него используйте RESOURCE_EXHAUSTED ). PERMISSION_DENIED не следует использовать, если вызывающую сторону невозможно идентифицировать (вместо него используйте UNAUTHENTICATED ). Этот код ошибки не означает, что запрос действителен, запрашиваемая сущность существует или удовлетворяет другим предварительным условиям. HTTP-сопоставление: 403 Запрещено
UNAUTHENTICATED
Запрос не содержит действительных учетных данных для аутентификации при выполнении операции. HTTP-сопоставление: 401 Несанкционированный доступ
RESOURCE_EXHAUSTED
Возможно, исчерпаны какие-то ресурсы, например, квота для каждого пользователя, или же в файловой системе закончилось место. HTTP-сопоставление: 429 Слишком много запросов
FAILED_PRECONDITION
Операция была отклонена, поскольку система не находится в состоянии, необходимом для ее выполнения. Например, удаляемый каталог не пуст, операция rmdir применяется к объекту, не являющемуся каталогом, и т. д. Разработчики сервисов могут использовать следующие рекомендации для выбора между FAILED_PRECONDITION , ABORTED и UNAVAILABLE : (a) Используйте UNAVAILABLE если клиент может повторить только неудачный вызов. (b) Используйте ABORTED если клиент должен повторить вызов на более высоком уровне. Например, если указанная клиентом проверка и установка завершается неудачей, это означает, что клиент должен перезапустить последовательность чтения-изменения-записи. (c) Используйте FAILED_PRECONDITION , если клиент не должен повторять вызов до тех пор, пока состояние системы не будет явно исправлено. Например, если операция "rmdir" завершается неудачей из-за того, что каталог не пуст, следует вернуть FAILED_PRECONDITION поскольку клиент не должен повторять вызов, пока файлы не будут удалены из каталога. HTTP-сопоставление: 400 Неверный запрос
ABORTED
Операция была прервана, как правило, из-за проблемы параллельного выполнения, например, из-за сбоя проверки последовательности или прерывания транзакции. См. приведенные выше рекомендации по выбору между FAILED_PRECONDITION , ABORTED и UNAVAILABLE . HTTP-сопоставление: конфликт 409
OUT_OF_RANGE
Операция была предпринята за пределами допустимого диапазона. Например, поиск или чтение за пределами конца файла. В отличие от INVALID_ARGUMENT , эта ошибка указывает на проблему, которую можно исправить, изменив состояние системы. Например, 32-битная файловая система сгенерирует INVALID_ARGUMENT если запрос на чтение по смещению, не входящему в диапазон [0,2^32-1], но сгенерирует OUT_OF_RANGE если запрос на чтение по смещению, выходящему за пределы текущего размера файла. Между FAILED_PRECONDITION и OUT_OF_RANGE существует значительное совпадение. Мы рекомендуем использовать OUT_OF_RANGE (более специфичную ошибку), когда это применимо, чтобы вызывающие функции, итерирующие по пространству, могли легко обнаружить ошибку OUT_OF_RANGE и определить, когда они завершили работу. HTTP-сопоставление: 400 Неверный запрос
UNIMPLEMENTED
Данная операция не реализована, не поддерживается и не включена в этом сервисе. HTTP-сопоставление: ошибка 501 не реализована
INTERNAL
Внутренние ошибки. Это означает, что некоторые инварианты, ожидаемые базовой системой, были нарушены. Этот код ошибки используется только для серьезных ошибок. HTTP-сопоставление: 500 Внутренняя ошибка сервера
UNAVAILABLE
В данный момент услуга недоступна. Вероятнее всего, это временное состояние, которое можно исправить, повторив попытку с задержкой. Обратите внимание, что повторная попытка выполнения неидемпотентных операций не всегда безопасна. См. приведенные выше рекомендации по выбору между FAILED_PRECONDITION , ABORTED и UNAVAILABLE . HTTP-сопоставление: 503 Сервис недоступен
DATA_LOSS
Невосстановимая потеря или повреждение данных. HTTP-сопоставление: 500 Внутренняя ошибка сервера
Обновленный виджет
Для виджетов selectionInput возвращаются подсказки автозаполнения для меню с множественным выбором.
JSON-представление
{ "widget": string, // Union field updated_widget can be only one of the following: "suggestions": { object (SelectionItems) } // End of list of possible types for union field updated_widget. }
Поля
widget
string Идентификатор обновляемого виджета. Идентификатор должен совпадать с идентификатором виджета, который инициировал запрос на обновление.
Поле объединения updated_widget . Виджет обновляется в ответ на действие пользователя. updated_widget может принимать только одно из следующих значений:
suggestions
object ( SelectionItems ) Список результатов автозаполнения виджета
string ( int64 format) Идентификатор команды с косой чертой.
MatchedUrl
Совпадающий URL-адрес в сообщении чата. Приложения для чата могут предварительно просматривать совпадающие URL-адреса. Для получения дополнительной информации см. раздел «Предварительный просмотр ссылок» .
JSON-представление
{ "url": string }
Поля
url
string Только вывод. Совпадающий URL-адрес.
EmojiReactionSummary
Количество людей, отреагировавших на сообщение определенным эмодзи.
Администратор Google Workspace удалил сообщение. Администраторы могут удалять любые сообщения в пространстве, включая сообщения, отправленные любым участником пространства или приложением чата.
APP_MESSAGE_EXPIRY
Приложение для чата удаляло собственное сообщение по истечении срока его действия.
CREATOR_VIA_APP
Приложение для чата удалило сообщение от имени его автора (используя аутентификацию пользователя).
SPACE_OWNER_VIA_APP
Приложение для чата удалило сообщение от имени администратора помещения (используя аутентификацию пользователя).
SPACE_MEMBER
Один из участников сообщества удалил сообщение. Пользователи могут удалять сообщения, отправленные через приложения.
QuotedMessageMetadata
Информация о сообщении, которое цитируется в другом сообщении.
При создании сообщения вы можете цитировать сообщения в рамках той же ветки обсуждения или цитировать основное сообщение, чтобы создать новое основное сообщение. Однако вы не можете цитировать ответ на сообщение из другой ветки обсуждения.
При обновлении сообщения вы не можете добавить или заменить поле quotedMessageMetadata , но можете его удалить.
string Обязательно. Имя ресурса цитируемого сообщения. Формат: spaces/{space}/messages/{message}
lastUpdateTime
string ( Timestamp format) Обязательно. Отметка времени создания цитируемого сообщения или его последнего обновления. Если сообщение было отредактировано, используйте это поле: lastUpdateTime . Если сообщение никогда не редактировалось, используйте createTime . Если lastUpdateTime не совпадает с последней версией цитируемого сообщения, запрос завершается неудачей.
AttachedGif
GIF-изображение, заданное URL-адресом.
JSON-представление
{ "uri": string }
Поля
uri
string Только вывод. URL-адрес, на котором размещено GIF-изображение.
{ // Union field action can be only one of the following: "buttonList": { object (ButtonList) } // End of list of possible types for union field action. }
Поля
Полевые action профсоюза. Тип действия. action может быть только одним из следующих: