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.

Как открыть Card Builder

annotations[]

object (Annotation)

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

thread

object (Thread)

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

space

object (Space)

Только для вывода. Если приложение Chat выполняет аутентификацию от имени пользователя, в выходных данных заполняется только поле space 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 сообщения.

CardWithId

Карточка в сообщении Google Chat.

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

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

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

Как открыть Card Builder

JSON-представление
{
  "cardId": string,
  "card": {
    object (Card)
  },
  "ownerUser": {
    object (User)
  }
}
Поля
cardId

string

Обязательно, если сообщение содержит несколько карточек. Уникальный идентификатор карточки в сообщении.

card

object (Card)

Подсказка. Максимальный размер – 32 КБ.

ownerUser

object (User)

Только для вывода. Приложение, которому принадлежит карта.

Аннотация

Аннотации могут быть связаны с обычным текстом сообщения или с чипами, которые ссылаются на ресурсы 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,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "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),

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "driveLinkData": {
    object (DriveLinkData)
  },
  "chatSpaceLinkData": {
    object (ChatSpaceLinkData)
  },
  "meetSpaceLinkData": {
    object (MeetSpaceLinkData)
  },
  "calendarEventLinkData": {
    object (CalendarEventLinkData)
  }
}
Поля
uri

string

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

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

RichLinkType

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

Перечисления
DRIVE_FILE Тип ссылки на объект Google Диска.
CHAT_SPACE Тип ссылки на чат-группу 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

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

Формат: 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)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "dialog": {
    object (Dialog)
  }
}
Поля
actionStatus

object (ActionStatus)

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

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

object (Dialog)

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

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

Dialog

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

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

object (Card)

Только для ввода. Текст диалогового окна, который отображается в модальном окне. Приложения Google Chat не поддерживают следующие объекты карточек: DateTimePicker, OnChangeAction.

ActionStatus

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

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

enum (Code)

Код статуса.

userFacingMessage

string

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

Код

Стандартные коды ошибок для gRPC API.

Иногда ошибку можно описать несколькими кодами. Сервисы должны возвращать наиболее конкретный код ошибки. Например, если применимы оба кода, предпочтительнее использовать 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 (превышено время ожидания шлюза)

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,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "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-изображение.

AccessoryWidget

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

JSON-представление
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "buttonList": {
    object (ButtonList)
  }
}
Поля
Тип действия. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
buttonList

object (ButtonList)

Список кнопок.

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

Элементы

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

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

object (CitedSource)

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

citations[]

object (Citation)

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

CitedSource

Ссылка на источник информации.

JSON-представление
{
  "title": string,
  "uri": string,
  "snippet": {
    object (Snippet)
  },
  "footer": {
    object (Footer)
  }
}
Поля
title

string

Обязательно. Название CitedSource в виде обычного текста. Это поле не поддерживает форматирование.

uri

string

Обязательно. URI, указывающий на ресурс, на который ссылается этот CitedSource.

snippet

object (Snippet)

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

footer

object (Footer)

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

Описание

Объект фрагмента, представляющий собой отрывок из более крупного корпуса.

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

string

Необязательное поле. Короткий текстовый фрагмент из корпуса, который может быть показан в Chat. Формат Markdown не поддерживается.

imagePreview

object (ElementsImage)

Необязательное поле. Предварительный просмотр фрагмента, предоставленного в качестве входных данных при создании цитаты.

ElementsImage

Объект, инкапсулирующий разные способы представления изображения. Поддерживаемые в настоящее время представления: - Изображение, полученное из URI. В будущем могут поддерживаться дополнительные представления.

JSON-представление
{

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

string

Обязательно. Общедоступный URI изображения.

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

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

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

string

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

Цитата

Цитаты – это встроенные ссылки, которые могут предоставлять пользователям более подробную информацию о встроенной ссылке. В тексте сообщения должны быть соответствующие встроенные цитаты в формате разметки <chat-citation data-id="{id}">{text}</chat-citation>. Цитаты поддерживаются, только если для параметра markupSyntax сообщения задано значение MARKDOWN.

Цитаты в Elements.citations, на которые нет ссылок (то есть без соответствующего тега <chat-citation> в тексте сообщения), игнорируются и не приводят к отклонению сообщения.

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

string

Обязательно. Идентификатор, заданный приложением. Должно содержать только буквы и цифры ASCII и не более 63 символов.

citedSources[]

object (CitedSource)

Необязательное поле. Список источников, связанных с цитатой. Источники показываются во всплывающей карточке цитаты.

MarkupSyntax

Указывает синтаксис разметки, используемый для форматирования текста сообщения Chat. Применяется к полю text ресурса Message.

Перечисления
MARKUP_SYNTAX_UNSPECIFIED Представляет неуказанное значение.
MARKUP_SYNTAX_CHAT Используется синтаксис разметки Google Chat. Подробнее: https://developers.google.com/workspace/chat/format-messages#format-texts.
MARKUP_SYNTAX_MARKDOWN Используется синтаксис Markdown. Этот синтаксис основан на спецификации CommonMark с дополнительными расширениями. Подробнее: https://developers.google.com/workspace/chat/format-messages#format-texts.

Методы

create

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

delete

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

get

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

list

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

patch

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

replaceCards

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

update

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