REST Resource: spaces.messages

Ресурс: сообщение

Сообщение в чат-группе Google Chat.

JSON-представление
{
  "name": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "lastUpdateTime": string,
  "deleteTime": string,
  "text": string,
  "formattedText": string,
  "cards": [
    {
      object (Card)
    }
  ],
  "cardsV2": [
    {
      object (CardWithId)
    }
  ],
  "annotations": [
    {
      object (Annotation)
    }
  ],
  "thread": {
    object (Thread)
  },
  "space": {
    object (Space)
  },
  "fallbackText": string,
  "actionResponse": {
    object (ActionResponse)
  },
  "argumentText": string,
  "slashCommand": {
    object (SlashCommand)
  },
  "attachment": [
    {
      object (Attachment)
    }
  ],
  "matchedUrl": {
    object (MatchedUrl)
  },
  "threadReply": boolean,
  "silent": boolean,
  "clientAssignedMessageId": string,
  "emojiReactionSummaries": [
    {
      object (EmojiReactionSummary)
    }
  ],
  "privateMessageViewer": {
    object (User)
  },
  "deletionMetadata": {
    object (DeletionMetadata)
  },
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  },
  "attachedGifs": [
    {
      object (AttachedGif)
    }
  ],
  "accessoryWidgets": [
    {
      object (AccessoryWidget)
    }
  ],
  "elements": {
    object (Elements)
  },
  "markupSyntax": enum (MarkupSyntax)
}
Поля
name

string

Идентификатор. Название ресурса сообщения.

Формат: spaces/{space}/messages/{message}

где {space} – идентификатор чат-группы, в которой опубликовано сообщение, а {message} – идентификатор сообщения, назначенный системой. например spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB.

Если вы задали пользовательский идентификатор при создании сообщения, то можете использовать его, чтобы указать сообщение в запросе, заменив {message} значением из поля clientAssignedMessageId. например spaces/AAAAAAAAAAA/messages/client-custom-name. Подробнее о том, как задать название сообщения…

sender

object (User)

Только для вывода. Пользователь, создавший сообщение. Если приложение Chat выполняет аутентификацию от имени пользователя, в выходных данных заполняются только поля user name и type как для внутренних, так и для внешних пользователей, если только они не являются участниками чат-группы или не имеют предварительной связи, например прямой переписки, с вызывающим пользователем.

createTime

string (Timestamp format)

Необязательное поле. Не меняется. Для чат-групп, созданных в Chat, – время создания сообщения. Это поле предназначено только для вывода, за исключением случаев, когда оно используется в чат-группах в режиме импорта.

Для чат-групп в режиме импорта укажите в этом поле временную метку, когда сообщение было создано в источнике, чтобы сохранить исходное время создания.

lastUpdateTime

string (Timestamp format)

Только для вывода. Время, когда сообщение было в последний раз изменено пользователем. Если сообщение не редактировалось, это поле будет пустым.

deleteTime

string (Timestamp format)

Только для вывода. Время удаления сообщения в Google Chat. Если сообщение не удаляется, это поле остается пустым.

text

string

Необязательное поле. Текст сообщения. Первая ссылка на изображение, видео или веб-страницу генерирует чип предпросмотра. Вы также можете @упомянуть пользователя Google Chat или всех участников чат-группы.

Подробнее о том, как отправлять сообщения…

formattedText

string

Только для вывода. Содержит сообщение text с разметкой, которая используется для форматирования. В этом поле может быть представлено не все форматирование, видимое в интерфейсе, но оно включает следующее:

  • Синтаксис разметки для полужирного шрифта, курсива, зачеркнутого текста, моноширинного шрифта, блока моноширинного шрифта, маркированного списка и блока цитаты.

  • Упоминания пользователей в формате <users/{user}>.

  • Специальные гиперссылки в формате <{url}|{rendered_text}>, где первая строка – это URL, а вторая – отображаемый текст, например <http://example.com|custom text>.

  • Собственные эмодзи в формате :{emojiName}:, например :smile:. Это не относится к эмодзи Unicode, например U+1F600.

  • Для маркированных списков используйте звездочки (*), например * item.

Подробнее о том, как посмотреть форматирование текста в сообщении…

cards[]
(deprecated)

object (Card)

Поддержка прекращена. Используйте cardsV2.

Интерактивные карточки с форматированием, которые можно использовать для показа элементов интерфейса, например форматированного текста, кнопок и изображений, на которые можно нажать. Обычно карточки показываются под текстом письма. Максимальный размер cards и cardsV2 – 32 КБ.

cardsV2[]

object (CardWithId)

Необязательное поле. Массив карточек.

Приложения для Chat могут создавать карточки с аутентификацией приложения. В рамках предварительной версии для разработчиков, если ваше приложение Chat выполняет аутентификацию от имени пользователя, оно может создавать сообщения-карточки. Если ваше приложение Chat не участвует в программе предварительной версии для разработчиков, оно не может создавать карточки с аутентификацией пользователей.

Подробнее о том, как создать сообщение с карточками…

Создавайте и просматривайте карточки с помощью Card Builder.

Как открыть конструктор карточек

annotations[]

object (Annotation)

Только для вывода. Аннотации могут быть связаны с обычным текстом письма или с чипами, которые ссылаются на ресурсы Google Workspace, например Google Документы или Таблицы, с startIndex и length, равными 0.

thread

object (Thread)

Цепочка, к которой относится сообщение. Пример использования приведен в разделе Как начать цепочку сообщений или ответить в ней.

space

object (Space)

Только для вывода. Если приложение Chat выполняет аутентификацию от имени пользователя, выходные данные заполняют только name чат-группы.

fallbackText

string

Необязательное поле. Описание карточек сообщения в виде обычного текста. Используется, когда карточки не могут быть показаны, например в уведомлениях на мобильных устройствах.

actionResponse

object (ActionResponse)

Только для ввода. Параметры, которые приложение Chat может использовать для настройки публикации ответа.

argumentText

string

Только для вывода. Текст сообщения без упоминаний приложения Chat.

slashCommand

object (SlashCommand)

Только для вывода. Информация о слеш-командах (если применимо).

attachment[]

object (Attachment)

Необязательное поле. Прикрепленный пользователем файл.

matchedUrl

object (MatchedUrl)

Только для вывода. URL в поле "Сообщение чата" text, соответствующий шаблону предпросмотра ссылок. Подробнее о ссылках для предварительного просмотра…

threadReply

boolean

Только для вывода. Если true, сообщение является ответом в цепочке. Если false, сообщение видно в чате верхнего уровня чат-группы как первое сообщение в цепочке или как сообщение без ответов в цепочке.

Если чат-группа не поддерживает цепочки ответов, это поле всегда имеет значение false.

silent

boolean

Только для вывода. Указывает, является ли сообщение беззвучным. Тихие сообщения – это сообщения, для которых Chat не отправляет получателям push-уведомления.

clientAssignedMessageId

string

Необязательное поле. Пользовательский идентификатор сообщения. Вы можете использовать это поле, чтобы идентифицировать сообщение, а также получить, удалить или обновить его. Чтобы задать пользовательский идентификатор, укажите поле messageId при создании сообщения. Подробнее о том, как задать название сообщения…

emojiReactionSummaries[]

object (EmojiReactionSummary)

Только для вывода. Список сводок по реакциям с эмодзи на сообщение.

privateMessageViewer

object (User)

Необязательное поле. Не меняется. Входные данные для создания сообщения, в противном случае – только выходные данные. Пользователь, который может просматривать сообщение. Если это поле задано, сообщение является личным и видно только указанному пользователю и приложению Chat. Чтобы включить это поле в запрос, необходимо вызвать Chat API с помощью аутентификации приложения и опустить следующее:

Подробнее о том, как отправить личное сообщение…

deletionMetadata

object (DeletionMetadata)

Только для вывода. Информация об удаленном сообщении. Сообщение удаляется, когда задано значение deleteTime.

quotedMessageMetadata

object (QuotedMessageMetadata)

Необязательное поле. Информация о сообщении, которое цитируется в другом сообщении.

При создании сообщения вы можете процитировать сообщения из той же цепочки или процитировать корневое сообщение, чтобы создать новое корневое сообщение. Однако вы не можете процитировать ответ на сообщение из другой цепочки.

При обновлении сообщения вы не можете добавить или заменить поле quotedMessageMetadata, но можете удалить его.

Пример использования приведен в разделе Как процитировать другое сообщение.

attachedGifs[]

object (AttachedGif)

Только для вывода. GIF-изображения, прикрепленные к письму.

accessoryWidgets[]

object (AccessoryWidget)

Необязательное поле. Один или несколько интерактивных виджетов, которые появляются внизу сообщения. Виджеты можно добавлять в сообщения, содержащие текст, карточки или и то, и другое. Не поддерживается для сообщений, содержащих диалоги. Подробнее о том, как добавить интерактивные виджеты внизу сообщения…

Чтобы создать сообщение с дополнительными виджетами, требуется аутентификация приложения.

elements

object (Elements)

Необязательное поле. Элементы – это дополнительные компоненты, которые предоставляются при создании сообщения и могут быть связаны с определенными частями текста сообщения. Они отличаются от аннотаций, которые предназначены только для вывода и содержат дополнительную информацию, связанную с фрагментами сообщения или всем текстом сообщения.

markupSyntax

enum (MarkupSyntax)

Необязательное поле. Указывает, как сервер интерпретирует содержимое поля text сообщения при создании сообщения или обновлении поля text сообщения.

При вызове messages.patch задайте markupSyntax и text в ресурсе Message и включите text (не markupSyntax) в updateMask.

Аннотация

Аннотации могут быть связаны с обычным текстом письма или с чипами, которые ссылаются на ресурсы Google Workspace, например Google Документы или Таблицы, с startIndex и length, равными 0. Подробнее о том, как форматировать текстовые сообщения…

Пример текста письма в формате обычного текста:

Hello @FooBot how are you!"

Метаданные соответствующих аннотаций:

"annotations":[{
  "type":"USER_MENTION",
  "startIndex":6,
  "length":7,
  "userMention": {
    "user": {
      "name":"users/{user}",
      "displayName":"FooBot",
      "avatarUrl":"https://goo.gl/aeDtrS",
      "type":"BOT"
    },
    "type":"MENTION"
   }
}]
JSON-представление
{
  "type": enum (AnnotationType),
  "length": integer,
  "startIndex": integer,

  "userMention": {
    object (UserMentionMetadata)
  },
  "slashCommand": {
    object (SlashCommandMetadata)
  },
  "richLinkMetadata": {
    object (RichLinkMetadata)
  },
  "customEmojiMetadata": {
    object (CustomEmojiMetadata)
  }
}
Поля
type

enum (AnnotationType)

Тип аннотации.

length

integer

Длина подстроки в обычном тексте сообщения, которой соответствует эта аннотация. Если не указано, длина равна 0.

startIndex

integer

Начальный индекс (начиная с 0, включительно) в теле сообщения в виде обычного текста, которому соответствует эта аннотация.

Дополнительные метаданные о заметке. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
userMention

object (UserMentionMetadata)

Метаданные упоминания пользователя.

slashCommand

object (SlashCommandMetadata)

Метаданные слеш-команды.

customEmojiMetadata

object (CustomEmojiMetadata)

Метаданные для собственного эмодзи.

Конец взаимоисключающих полей.

AnnotationType

Тип аннотации.

Перечисления
ANNOTATION_TYPE_UNSPECIFIED Значение по умолчанию для перечисления. Не использовать.
USER_MENTION Пользователь упомянут.
SLASH_COMMAND Вызывается слеш-команда.
CUSTOM_EMOJI Аннотация собственного эмодзи.

UserMentionMetadata

Метаданные аннотаций для упоминаний пользователей (@).

JSON-представление
{
  "user": {
    object (User)
  },
  "type": enum (Type)
}
Поля
user

object (User)

Упомянутый пользователь.

type

enum (Type)

Тип упоминания пользователя.

Тип

Перечисления
TYPE_UNSPECIFIED Значение по умолчанию для перечисления. Не использовать.
ADD Добавить пользователя в чат-группу.
MENTION Упоминать пользователей в чат-группе.

SlashCommandMetadata

Метаданные аннотаций для слеш-команд (/).

JSON-представление
{
  "bot": {
    object (User)
  },
  "type": enum (Type),
  "commandName": string,
  "commandId": string,
  "triggersDialog": boolean
}
Поля
bot

object (User)

Приложение Chat, команда которого была вызвана.

type

enum (Type)

Тип слеш-команды.

commandName

string

Название вызванной слеш-команды.

commandId

string (int64 format)

Идентификатор вызванной слеш-команды.

triggersDialog

boolean

Указывает, предназначена ли слеш-команда для диалогового окна.

Тип

Перечисления
TYPE_UNSPECIFIED Значение по умолчанию для перечисления. Не использовать.
ADD Добавьте приложение Chat в чат-группу.
INVOKE Вызвать слеш-команду в чат-группе.

RichLinkMetadata

Ссылка на ресурс с расширенными возможностями. Ссылки с расширенными функциями могут быть связаны с обычным текстом письма или представлять собой чипы, которые ссылаются на ресурсы Google Workspace, например Google Документы или Таблицы, с startIndex и length, равными 0.

JSON-представление
{
  "uri": string,
  "richLinkType": enum (RichLinkType),

  "driveLinkData": {
    object (DriveLinkData)
  },
  "chatSpaceLinkData": {
    object (ChatSpaceLinkData)
  },
  "meetSpaceLinkData": {
    object (MeetSpaceLinkData)
  },
  "calendarEventLinkData": {
    object (CalendarEventLinkData)
  }
}
Поля
uri

string

URI этой ссылки.

Данные для связанного ресурса. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
Конец взаимоисключающих полей.

RichLinkType

Тип ссылки. В будущем могут быть добавлены и другие типы.

Перечисления
DRIVE_FILE Тип ссылки на объект Google Диска.
CHAT_SPACE Тип ссылки на чат-группу Google Chat. Например, умный чип чат-группы.
GMAIL_MESSAGE Тип ссылки на письмо Gmail. В частности, чип Gmail из функции Поделиться в Chat. API поддерживает только чтение сообщений с помощью ссылок GMAIL_MESSAGE.
MEET_SPACE Тип ссылки с расширенными функциями в сообщении Meet. Например, чип Meet.
CALENDAR_EVENT Тип ссылки с расширенными возможностями в сообщении Календаря. Например, чип Календаря.

DriveLinkData

Данные для ссылок на Google Диск.

JSON-представление
{
  "driveDataRef": {
    object (DriveDataRef)
  },
  "mimeType": string
}
Поля
driveDataRef

object (DriveDataRef)

DriveDataRef, который ссылается на файл Google Диска.

mimeType

string

MIME-тип связанного ресурса Google Диска.

ChatSpaceLinkData

Данные для ссылок на чат-группы Chat.

JSON-представление
{
  "space": string,
  "thread": string,
  "message": string
}
Поля
space

string

Чат-группа связанного ресурса чат-группы Google Chat.

Формат: spaces/{space}

thread

string

Цепочка связанного ресурса чат-группы Google Chat.

Формат: spaces/{space}/threads/{thread}

message

string

Сообщение связанного ресурса чат-группы Google Chat.

Формат: spaces/{space}/messages/{message}

MeetSpaceLinkData

Данные для ссылок на чат-группы Meet.

JSON-представление
{
  "meetingCode": string,
  "type": enum (Type),
  "huddleStatus": enum (HuddleStatus)
}
Поля
meetingCode

string

Код встречи связанной переговорной комнаты Meet.

type

enum (Type)

Указывает тип пространства Meet.

huddleStatus

enum (HuddleStatus)

Необязательное поле. Только для вывода. Если встреча Meet – это совещание, указывается его статус. В противном случае значение не задано.

Тип

Тип пространства Meet.

Перечисления
TYPE_UNSPECIFIED Значение по умолчанию для перечисления. Не использовать.
MEETING Чат-группа Meet – это встреча.
HUDDLE Пространство Meet – это совещание.

HuddleStatus

Статус совещания.

Перечисления
HUDDLE_STATUS_UNSPECIFIED Значение по умолчанию для перечисления. Не использовать.
STARTED Совещание началось.
ENDED Совещание завершено. В этом случае URI и идентификаторы чат-группы Meet станут недействительными.
MISSED Совещание пропущено. В этом случае URI и идентификаторы чат-группы Meet станут недействительными.

CalendarEventLinkData

Данные для ссылок на мероприятия в Календаре.

JSON-представление
{
  "calendarId": string,
  "eventId": string
}
Поля
calendarId

string

Идентификатор связанного календаря.

eventId

string

Идентификатор мероприятия из Календаря.

CustomEmojiMetadata

Метаданные аннотации для пользовательских эмодзи.

JSON-представление
{
  "customEmoji": {
    object (CustomEmoji)
  }
}
Поля
customEmoji

object (CustomEmoji)

Собственный эмодзи.

Цепочка

В цепочке в чат-группе Google Chat. Пример использования приведен в разделе Как начать цепочку сообщений или ответить в ней.

Если вы указываете цепочку при создании сообщения, то можете задать поле messageReplyOption, чтобы определить, что произойдет, если соответствующая цепочка не будет найдена.

JSON-представление
{
  "name": string,
  "threadKey": string
}
Поля
name

string

Идентификатор. Название ресурса цепочки.

Пример: spaces/{space}/threads/{thread}

threadKey

string

Необязательное поле. Входные данные для создания или обновления цепочки. В противном случае используется только для вывода. Идентификатор цепочки. Максимальная длина – 4000 символов.

Этот идентификатор уникален для приложения Chat, которое его задает. Например, если несколько приложений Chat создают сообщение, используя один и тот же ключ цепочки, сообщения публикуются в разных цепочках. Чтобы ответить в цепочке, созданной пользователем или другим приложением Chat, укажите поле цепочки name.

ActionResponse

Параметры, которые приложение Chat может использовать для настройки публикации ответа.

JSON-представление
{
  "type": enum (ResponseType),
  "url": string,
  "dialogAction": {
    object (DialogAction)
  },
  "updatedWidget": {
    object (UpdatedWidget)
  }
}
Поля
type

enum (ResponseType)

Только для ввода. Тип ответа приложения Chat.

url

string

Только для ввода. URL, по которому пользователи могут пройти аутентификацию или выполнить настройку. (Только для ответов типа REQUEST_CONFIG.)

dialogAction

object (DialogAction)

Только для ввода. Ответ на событие взаимодействия, связанное с диалоговым окном. Должно сопровождаться ResponseType.Dialog.

updatedWidget

object (UpdatedWidget)

Только для ввода. Ответ обновленного виджета.

ResponseType

Тип ответа приложения Chat.

Перечисления
TYPE_UNSPECIFIED Тип по умолчанию, который обрабатывается как NEW_MESSAGE.
NEW_MESSAGE Опубликовать как новое сообщение в теме.
UPDATE_MESSAGE Обновить сообщение приложения Chat. Это разрешено только для события CARD_CLICKED, в котором тип отправителя сообщения – BOT.
UPDATE_USER_MESSAGE_CARDS Обновление карточек в сообщении пользователя. Это разрешено только в ответ на событие MESSAGE с соответствующим URL или событие CARD_CLICKED, где тип отправителя сообщения – HUMAN. Текст игнорируется.
REQUEST_CONFIG Запросите у пользователя дополнительную аутентификацию или настройку.
DIALOG Показывает диалоговое окно.
UPDATE_WIDGET Запрос вариантов автозаполнения текста виджета.

DialogAction

Содержит диалоговое окно и код статуса запроса.

JSON-представление
{
  "actionStatus": {
    object (ActionStatus)
  },

  "dialog": {
    object (Dialog)
  }
}
Поля
actionStatus

object (ActionStatus)

Только для ввода. Статус запроса на вызов или отправку диалогового окна. При необходимости показывает пользователям статус и сообщение. например в случае ошибки или успешного выполнения.

Действие, которое нужно выполнить. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
dialog

object (Dialog)

Только для ввода. Диалоговое окно для запроса.

Конец взаимоисключающих полей.

Dialog

Оболочка вокруг тела карточки диалогового окна.

JSON-представление
{
  "body": {
    object (Card)
  }
}
Поля
body

object (Card)

Только для ввода. Текст диалогового окна, который отображается в модальном окне.

ActionStatus

Представляет статус запроса на вызов или отправку диалогового окна.

JSON-представление
{
  "statusCode": enum (Code),
  "userFacingMessage": string
}
Поля
statusCode

enum (Code)

Код статуса.

userFacingMessage

string

Сообщение, которое будет отправлено пользователям, о статусе их запроса. Если значение не задано, отправляется стандартное сообщение на основе statusCode.

Код

Канонические коды ошибок для API gRPC.

Иногда ошибку можно описать несколькими кодами. Сервисы должны возвращать наиболее конкретный код ошибки. Например, если применимы оба кода, предпочтителен OUT_OF_RANGE, а не FAILED_PRECONDITION. Аналогично, NOT_FOUND или ALREADY_EXISTS предпочтительнее, чем FAILED_PRECONDITION.

Перечисления
OK

Не ошибка. Возвращается в случае успеха.

Код HTTP: 200 (OK)

CANCELLED

Операция отменена, как правило, отправителем вызова.

HTTP-код: 499 Client Closed Request

UNKNOWN

Неизвестная ошибка. Например, эта ошибка может возвращаться, когда значение Status, полученное из другого адресного пространства, принадлежит пространству ошибок, которое неизвестно в этом адресном пространстве. Кроме того, сообщения об ошибках от API, содержащие недостаточно данных, также могут преобразовываться в эту ошибку.

HTTP-код: 500 Internal Server Error (внутренняя ошибка сервера)

INVALID_ARGUMENT

Клиент указал недействительный аргумент. Обратите внимание, что это отличается от FAILED_PRECONDITION. INVALID_ARGUMENT указывает на аргументы, которые вызывают проблемы независимо от состояния системы (например, неправильное имя файла).

HTTP-код: 400 Bad Request

DEADLINE_EXCEEDED

Конечный срок завершился до того, как операция была выполнена. Если операция изменяет состояние системы, то эта ошибка может быть возвращена, даже если операция выполнена успешно. Например, успешный ответ сервера мог быть отправлен с существенной задержкой, во время которой истек конечный срок.

HTTP-код: 504 Gateway Timeout

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: а) Используйте UNAVAILABLE, если клиент может повторить только неудачный вызов. б) Используйте ABORTED, если клиент должен повторить попытку на более высоком уровне. Например, когда указанная клиентом операция test-and-set завершается неудачно, это означает, что клиент должен перезапустить последовательность read-modify-write. в) Используйте FAILED_PRECONDITION, если клиент не должен повторять попытку, пока состояние системы не будет явно исправлено. Например, если команда rmdir не выполняется, потому что каталог не пуст, должна возвращаться ошибка FAILED_PRECONDITION, поскольку клиент не должен повторять попытку, пока файлы не будут удалены из каталога.

HTTP-код: 400 Bad Request

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 Bad Request

UNIMPLEMENTED

Операция не реализована, не поддерживается или не включена в этом сервисе.

HTTP-код: 501 Not Implemented

INTERNAL

Внутренние ошибки, при которых нарушаются некоторые инварианты, ожидаемые системой. Этот код ошибки зарезервирован для серьезных ошибок.

HTTP-код: 500 Internal Server Error (внутренняя ошибка сервера)

UNAVAILABLE

Сервис в данный момент недоступен. Скорее всего, это временная проблема, которую можно исправить, повторив попытку через какое-то время. Обратите внимание, что повторные попытки выполнения неидемпотентных операций не всегда безопасны.

Чтобы выбрать между FAILED_PRECONDITION, ABORTED и UNAVAILABLE, ознакомьтесь с рекомендациями выше.

Код HTTP: 503 (сервис недоступен)

DATA_LOSS

Потеря или повреждение данных без возможности восстановления.

HTTP-код: 500 Internal Server Error (внутренняя ошибка сервера)

UpdatedWidget

Для виджетов selectionInput возвращает подсказки автозаполнения для меню с возможностью выбора нескольких вариантов.

JSON-представление
{
  "widget": string,

  "suggestions": {
    object (SelectionItems)
  }
}
Поля
widget

string

Идентификатор обновленного виджета. Идентификатор должен совпадать с идентификатором виджета, который инициировал запрос на обновление.

Виджет обновился в ответ на действие пользователя. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
suggestions

object (SelectionItems)

Список результатов автозаполнения виджета

Конец взаимоисключающих полей.

SelectionItems

Список результатов автозаполнения виджета.

JSON-представление
{
  "items": [
    {
      object (SelectionItem)
    }
  ]
}
Поля
items[]

object (SelectionItem)

Массив объектов SelectionItem.

SlashCommand

Метаданные о слеш-команде в Google Chat.

JSON-представление
{
  "commandId": string
}
Поля
commandId

string (int64 format)

Идентификатор слеш-команды.

MatchedUrl

URL в сообщении Chat, соответствующий условию. Приложения Chat могут показывать предварительный просмотр ссылок, соответствующих шаблону. Подробнее о предварительном просмотре ссылок…

JSON-представление
{
  "url": string
}
Поля
url

string

Только для вывода. URL, который был сопоставлен.

EmojiReactionSummary

Количество пользователей, которые отреагировали на сообщение определенным эмодзи.

JSON-представление
{
  "emoji": {
    object (Emoji)
  },
  "reactionCount": integer
}
Поля
emoji

object (Emoji)

Только для вывода. Эмодзи, связанные с реакциями.

reactionCount

integer

Только для вывода. Общее количество реакций с использованием связанного эмодзи.

DeletionMetadata

Информация об удаленном сообщении. Сообщение удаляется, когда задано значение deleteTime.

JSON-представление
{
  "deletionType": enum (DeletionType)
}
Поля
deletionType

enum (DeletionType)

Указывает, кто удалил сообщение.

DeletionType

Кто и как удалил сообщение. В будущем могут быть добавлены и другие значения. Подробнее о том, как изменить или удалить сообщение в Google Chat…

Перечисления
DELETION_TYPE_UNSPECIFIED Это значение не используется.
CREATOR Пользователь удалил свое сообщение.
SPACE_OWNER Сообщение удалено владельцем или менеджером.
ADMIN Сообщение удалено администратором Google Workspace. Администраторы могут удалять любые сообщения в чат-группе, в том числе отправленные участниками или приложением Chat.
APP_MESSAGE_EXPIRY Приложение Chat удалило свое сообщение по истечении срока его действия.
CREATOR_VIA_APP Приложение Chat удалило сообщение от имени автора (с использованием аутентификации пользователя).
SPACE_OWNER_VIA_APP Приложение Chat удалило сообщение от имени менеджера чат-группы (с использованием аутентификации пользователя).
SPACE_MEMBER Сообщение удалено участником чат-группы. Пользователи могут удалять сообщения, отправленные приложениями.

QuotedMessageMetadata

Информация о сообщении, которое цитируется в другом сообщении.

При обновлении сообщения вы не можете добавить или заменить поле quotedMessageMetadata, но можете удалить его.

Пример использования приведен в разделе Как процитировать другое сообщение.

JSON-представление
{
  "name": string,
  "lastUpdateTime": string,
  "quoteType": enum (QuoteType),
  "quotedMessageSnapshot": {
    object (QuotedMessageSnapshot)
  },
  "forwardedMetadata": {
    object (ForwardedMetadata)
  }
}
Поля
name

string

Обязательно. Название ресурса цитируемого сообщения.

Формат: spaces/{space}/messages/{message}

lastUpdateTime

string (Timestamp format)

Обязательно. Временная метка создания или последнего обновления цитируемого сообщения.

Если сообщение было изменено, используйте поле lastUpdateTime. Если сообщение не редактировалось, используйте createTime.

Если lastUpdateTime не соответствует последней версии цитируемого сообщения, запрос завершается ошибкой.

quoteType

enum (QuoteType)

Необязательное поле. Указывает тип кавычек. Если не задано, по умолчанию используется REPLY в пути чтения/записи сообщения для обратной совместимости.

quotedMessageSnapshot

object (QuotedMessageSnapshot)

Только для вывода. Снимок содержимого цитируемого сообщения.

forwardedMetadata

object (ForwardedMetadata)

Только для вывода. Метаданные об исходной чат-группе цитируемого сообщения. Заполняется только для типа цены FORWARD.

QuoteType

Тип цитаты в цитируемом сообщении.

Перечисления
QUOTE_TYPE_UNSPECIFIED Зарезервировано. Это значение не используется.
REPLY

Если для параметра quoteType задано значение REPLY, вы можете:

  • Если вы отвечаете в цепочке, вы можете процитировать другое сообщение из нее.

  • Если вы создаете корневое сообщение, вы можете процитировать другое корневое сообщение в этой чат-группе.

FORWARD

Если quoteType – FORWARD, вы можете процитировать:

  • Сообщение из другой чат-группы.

  • Ответ на сообщение из другой цепочки в той же чат-группе.

QuotedMessageSnapshot

Показывает содержимое цитируемого сообщения на момент цитирования или пересылки.

JSON-представление
{
  "sender": string,
  "text": string,
  "formattedText": string,
  "annotations": [
    {
      object (Annotation)
    }
  ],
  "attachments": [
    {
      object (Attachment)
    }
  ]
}
Поля
sender

string

Только для вывода. Имя автора цитируемого сообщения. Заполняется для типов цитирования REPLY и FORWARD.

text

string

Только для вывода. Снимок текстового контента процитированного сообщения.

formattedText

string

Только для вывода. Содержит цитируемое сообщение text с разметкой, добавленной для поддержки расширенного форматирования, например гиперссылок, пользовательских эмодзи, разметки и т. д. Заполняется только для типа цитирования FORWARD.

annotations[]

object (Annotation)

Только для вывода. Аннотации, извлеченные из текста цитируемого сообщения. Заполняется только для типа цены FORWARD.

attachments[]

object (Attachment)

Только для вывода. Прикрепленные файлы, которые были частью цитируемого сообщения. Это копии метаданных прикрепленных файлов из цитируемого сообщения. Заполняется только для типа цены FORWARD.

ForwardedMetadata

Метаданные об исходной чат-группе, из которой было переслано сообщение.

JSON-представление
{
  "space": string,
  "spaceDisplayName": string
}
Поля
space

string

Только для вывода. Название ресурса исходной чат-группы. Формат: spaces/{space}

spaceDisplayName

string

Только для вывода. Отображаемое название исходной чат-группы или прямой переписки на момент пересылки. Для SPACE это название чат-группы. Для DIRECT_MESSAGE это имя другого участника (например, "Пользователь А"). Для GROUP_CHAT это сгенерированное название на основе имен участников, ограниченное 5 именами, включая создателя (например, "Пользователь А, Пользователь Б").

AttachedGif

GIF-изображение, заданное URL.

JSON-представление
{
  "uri": string
}
Поля
uri

string

Только для вывода. URL, по которому размещено GIF-изображение.

Элементы

Элементы – это дополнительные компоненты, которые могут быть связаны с текстом сообщения, указанным при его создании.

JSON-представление
{
  "citedSources": [
    {
      object (CitedSource)
    }
  ],
  "citations": [
    {
      object (Citation)
    }
  ]
}
Поля
citedSources[]

object (CitedSource)

Список источников, которые будут показаны под сообщением в виде ссылок в нижнем колонтитуле. Ссылки на них не указываются в тексте. Для встроенных ссылок используйте citations.

citations[]

object (Citation)

Список встроенных цитат, на которые ссылается текст сообщения (через теги <chat-citation>). Они отображаются как интерактивные всплывающие карточки.

Методы

create

Создает сообщение в чат-группе Google Chat.

delete

Удаляет сообщение.

get

Возвращает сведения о сообщении.

list

Возвращает список сообщений в чат-группе, участником которой является вызывающий абонент, включая сообщения от заблокированных участников и чат-групп.

patch

Обновляет сообщение.

replaceCards

Заменяет карточки, включенные в сообщение.
Ищет сообщения в Google Chat, к которым у вызывающего пользователя есть доступ.

update

Обновляет сообщение.