REST Resource: spaces.messages

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

Сообщение в чате Google.

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,
  "clientAssignedMessageId": string,
  "emojiReactionSummaries": [
    {
      object (EmojiReactionSummary)
    }
  ],
  "deletionMetadata": {
    object (DeletionMetadata)
  },
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  },
  "attachedGifs": [
    {
      object (AttachedGif)
    }
  ]
}
Поля
name

string

Имя ресурса в формате spaces/*/messages/* .

Пример: spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB

sender

object ( User )

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

  • Пользовательские смайлы в формате :{emoji_name}: — например, :smile: . Это не относится к смайликам Unicode, например U+1F600 для смайликов с ухмыляющимся лицом.

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

cards[]
(deprecated)

object ( Card )

Устарело: вместо этого используйте cardsV2 .

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

cardsV2[]

object ( CardWithId )

Массив карт .

Только приложения чата могут создавать карточки. Если ваше приложение Chat авторизуется как пользователь , сообщения не могут содержать карточки.

Чтобы узнать о карточках и о том, как их создавать, см. раздел «Проектирование динамических, интерактивных и единообразных пользовательских интерфейсов с помощью карточек» .

annotations[]

object ( Annotation )

Только вывод. Аннотации, связанные с text этого сообщения.

thread

object ( Thread )

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

space

object ( Space )

Если ваше приложение Chat авторизуется как пользователь , в выходных данных будет указано name пространства .

fallbackText

string

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

actionResponse

object ( ActionResponse )

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

argumentText

string

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

slashCommand

object ( SlashCommand )

Только вывод. Слэш-команда, если применимо.

attachment[]

object ( Attachment )

Вложение, загруженное пользователем.

matchedUrl

object ( MatchedUrl )

Только вывод. URL-адрес в spaces.messages.text , соответствующий шаблону предварительного просмотра ссылки. Дополнительную информацию см. в разделе Ссылки для предварительного просмотра .

threadReply

boolean

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

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

clientAssignedMessageId

string

Пользовательское имя для сообщения чата, назначенное при создании. Должен начинаться с client- и содержать только строчные буквы, цифры и дефисы длиной до 63 символов. Укажите это поле, чтобы получить, обновить или удалить сообщение с указанным значением. Назначение настраиваемого имени позволяет приложению чата вызывать сообщение без сохранения name сообщения из тела ответа , возвращаемого при создании сообщения. Присвоение пользовательского имени не заменяет сгенерированное поле name — имя ресурса сообщения. Вместо этого он устанавливает пользовательское имя в качестве поля clientAssignedMessageId , на которое вы можете ссылаться при обработке последующих операций, таких как обновление или удаление сообщения. Пример использования см. в разделе Назовите созданное сообщение .

emojiReactionSummaries[]

object ( EmojiReactionSummary )

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

deletionMetadata

object ( DeletionMetadata )

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

quotedMessageMetadata

object ( QuotedMessageMetadata )

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

attachedGifs[]

object ( AttachedGif )

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

Картасид

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

Только приложения чата могут создавать карточки. Если ваше приложение Chat авторизуется как пользователь , сообщение не может содержать карточки.

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

string

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

card

object ( Card )

Карта. Максимальный размер — 32 КБ.

Аннотация

Только вывод. Аннотации, связанные с текстовым телом сообщения. Чтобы добавить базовое форматирование к текстовому сообщению, см. раздел Форматирование текстовых сообщений .

Пример тела сообщения в виде обычного текста:

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,

  // Union field metadata can be only one of the following:
  "userMention": {
    object (UserMentionMetadata)
  },
  "slashCommand": {
    object (SlashCommandMetadata)
  }
  // End of list of possible types for union field metadata.
}
Поля
type

enum ( AnnotationType )

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

length

integer

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

startIndex

integer

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

metadata поля объединения. Дополнительные метаданные об аннотации. metadata могут быть только одним из следующих:
userMention

object ( UserMentionMetadata )

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

slashCommand

object ( SlashCommandMetadata )

Метаданные для косой черты.

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

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

Перечисления
ANNOTATION_TYPE_UNSPECIFIED Значение по умолчанию для перечисления. Не используйте.
USER_MENTION Упоминается пользователь.
SLASH_COMMAND Вызывается команда косой черты.

UserMentionМетаданные

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

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

object ( User )

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

type

enum ( Type )

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

Тип

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

СлэшКомандаМетаданные

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

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

object ( User )

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

type

enum ( Type )

Тип косой черты.

commandName

string

Имя вызванной команды слэша.

commandId

string ( int64 format)

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

triggersDialog

boolean

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

Тип

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

Нить

Обсуждение в чате Google. Пример использования см. в разделе «Начать цепочку сообщений или ответить на нее ».

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

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

string

Только вывод. Имя ресурса потока.

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

threadKey

string

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

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

ДействиеОтвет

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

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 )

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

Тип ответа

Тип ответа приложения 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 Запрос параметров автозаполнения текста виджета.

ДиалогДействие

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

JSON-представление
{
  "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 может быть только одним из следующих:

dialog

object ( Dialog )

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

Диалог

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

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

object ( Card )

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

Статус действия

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

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 ОК

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 внутренняя ошибка сервера

Обновленный виджет

Ответ обновленного виджета. Используется для предоставления параметров автозаполнения для виджета.

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 )

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

Элементы выбора

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

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

object ( SelectionItem )

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

СлэшКоманда

Косая черта в Google Chat.

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

string ( int64 format)

Идентификатор вызванной косой черты.

Соответствующий URL

Соответствующий URL-адрес в сообщении чата. Приложения чата могут просматривать совпадающие URL-адреса. Дополнительную информацию см. в разделе Ссылки для предварительного просмотра .

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

string

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

EmojiРеакцияСводка

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

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

object ( Emoji )

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

reactionCount

integer

Общее количество реакций с использованием соответствующего смайла.

Удаление метаданных

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

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

enum ( DeletionType )

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

Тип удаления

Кто удалил сообщение и как оно было удалено.

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

ЦитируемоеСообщениеМетаданные

Информация о цитируемом сообщении.

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

string

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

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

lastUpdateTime

string ( Timestamp format)

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

ПрикрепленоGif

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

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

string

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

Методы

create

Создает сообщение в чате Google.

delete

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

get

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

list

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

patch

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

update

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