REST Resource: phones.agentMessages

Ресурс: AgentMessage

Сообщение, отправленное агентом пользователю.

JSON-представление
{
  "name": string,
  "sendTime": string,
  "contentMessage": {
    object (AgentContentMessage)
  },
  "messageTrafficType": enum (MessageTrafficType),
  "richMessageClassification": {
    object (RichMessageClassification)
  },
  "totalPayloadSizeBytes": string,
  "carrier": string,

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.
}
Поля
name

string

Это поле задается платформой RCS for Business. Не добавляйте его при создании сообщения агента. Поле преобразуется в "phones/{E.164}/agentMessages/{messageId}", где {E.164} – номер телефона пользователя в формате E.164, а {messageId} – идентификатор сообщения агента, назначенный агентом.

sendTime

string (Timestamp format)

Это поле задается платформой RCS for Business. Не добавляйте его при создании сообщения агента. Поле определяет время отправки сообщения пользователю.

Используется формат RFC 3339. Результат всегда будет Z-нормализованным, и в нем будут использоваться цифры дробных частей 0, 3, 6 или 9. Допустимы и другие типы нормализации. Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30".

contentMessage

object (AgentContentMessage)

Содержание сообщения агента.

messageTrafficType

enum (MessageTrafficType)

Тип трафика сообщений.

richMessageClassification

object (RichMessageClassification)

Используется только для вывода. Классифицирует сообщение в соответствии с платежной моделью США. Подробнее о каждом типе классификации рассказывается в руководстве по модели оплаты в США. Это поле заполняется только для телефонных номеров США.

totalPayloadSizeBytes

string (int64 format)

Используется только для вывода. Общий размер полезной нагрузки сообщения в байтах. Полезная нагрузка учитывает все прикрепленные к сообщению RCS for Business файлы, например видео, изображения и PDF-документы, кроме текста сообщения и подсказок. В настоящее время это поле заполняется только для телефонных номеров США.

carrier

string

Используется только для вывода. Информация об операторе, которому принадлежит номер телефона пользователя, согласно внутренним системам Google RCS. В настоящее время это поле заполняется только для телефонных номеров США.

Объединенное поле expiration.

Поле expiration может иметь одно из следующих значений:

expireTime

string (Timestamp format)

Необязательное поле. Временная метка в формате UTC, указывающая, когда ресурс считается устаревшим. Это значение указывается в выходных данных, если оно задано или если задано поле TTL.

Используется формат RFC 3339. Результат всегда будет Z-нормализованным, и в нем будут использоваться цифры дробных частей 0, 3, 6 или 9. Допустимы и другие типы нормализации. Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30".

ttl

string (Duration format)

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

Продолжительность в секундах, может содержать до девяти дробных цифр и заканчиваться на символ "s". Пример: "3.5s".

AgentContentMessage

Содержание сообщения, отправленного агентом пользователю.

JSON-представление
{
  "suggestions": [
    {
      object (Suggestion)
    }
  ],

  // Union field content can be only one of the following:
  "text": string,
  "fileName": string,
  "uploadedRbmFile": {
    object (UploadedRbmFile)
  },
  "richCard": {
    object (RichCard)
  },
  "contentInfo": {
    object (ContentInfo)
  }
  // End of list of possible types for union field content.
}
Поля
suggestions[]

object (Suggestion)

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

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

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

Объединенное поле content. Содержимое сообщения агента content может быть только одним из следующих:
text

string

Текст, закодированный в формате UTF-8. Максимум: 3072 символа.

fileName
(deprecated)

string

Уникальное название файла. Платформа RCS for Business возвращает название файла, когда агент загружает файл. Устаревший параметр, вместо которого следует использовать параметр uploadedRbmFile.

uploadedRbmFile

object (UploadedRbmFile)

Содержит идентификаторы файла и его уменьшенной копии, которые были загружены на сервер RCS for Business и обслуживаются им.

richCard

object (RichCard)

Отдельная полезная подсказка.

contentInfo

object (ContentInfo)

Информация о файле, в том числе URL файла и URL значка файла.

Платформа RCS for Business получает контент из кеша, но агент может заставить ее получить новую версию контента и обновить кеш.

UploadedRbmFile

Сообщение с информацией о файле и его значке

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

string

Название файла, возвращенное платформой RCS for Business при загрузке файла.

thumbnailName

string

Название значка, возвращенное платформой RCS for Business при загрузке значка.

RichCard

Отдельная полезная подсказка или карусель полезных подсказок, отправленных агентом пользователю.

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

  // Union field card can be only one of the following:
  "carouselCard": {
    object (CarouselCard)
  },
  "standaloneCard": {
    object (StandaloneCard)
  }
  // End of list of possible types for union field card.
}
Поля
Объединенное поле card. Отдельная карточка или карусель карточек. card может иметь одно из следующих значений:
carouselCard

object (CarouselCard)

карусель подсказок;

standaloneCard

object (StandaloneCard)

Отдельная карточка.

CarouselCard

карусель подсказок;

JSON-представление
{
  "cardWidth": enum (CarouselCard.CardWidth),
  "cardContents": [
    {
      object (CardContent)
    }
  ]
}
Поля
cardWidth

enum (CarouselCard.CardWidth)

Ширина карточек в карусели.

cardContents[]

object (CardContent)

Список контента для каждой карточки в карусели. В карусели должно быть от двух до десяти карточек.

CarouselCard.CardWidth

Ширина карточек в карусели.

Перечисления
CARD_WIDTH_UNSPECIFIED Не указано.
SMALL 120 DP.
MEDIUM 232 DP.

CardContent

Контент карточки

JSON-представление
{
  "title": string,
  "description": string,
  "media": {
    object (Media)
  },
  "suggestions": [
    {
      object (Suggestion)
    }
  ]
}
Поля
title

string

Название карточки (необязательно). Максимум 200 символов.

description

string

Описание карточки (необязательно). Максимум 2000 символов.

media

object (Media)

(Необязательно) Медиаконтент (изображение, GIF, видео, PDF), который нужно добавить в карточку.

suggestions[]

object (Suggestion)

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

Медиа

Медиафайл в полезной подсказке.

JSON-представление
{
  "height": enum (Media.Height),

  // Union field content can be only one of the following:
  "fileName": string,
  "uploadedRbmFile": {
    object (UploadedRbmFile)
  },
  "contentInfo": {
    object (ContentInfo)
  }
  // End of list of possible types for union field content.
}
Поля
height

enum (Media.Height)

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

Объединенное поле content. Поле "Медиаконтент" content может иметь одно из следующих значений:
fileName
(deprecated)

string

Уникальное название файла, возвращенное платформой RCS for Business при загрузке файла. Устаревший параметр, вместо которого следует использовать параметр uploadedRbmFile.

uploadedRbmFile

object (UploadedRbmFile)

Содержит идентификаторы файла и его уменьшенной копии, которые были загружены на сервер RCS for Business и обслуживаются им.

contentInfo

object (ContentInfo)

Информация о файле, в том числе URL файла и URL его значка.

Платформа RCS for Business получает контент из кеша, но агент может заставить ее получить новую версию контента и обновить кеш.

ContentInfo

Сообщение, содержащее информацию о контенте.

JSON-представление
{
  "fileUrl": string,
  "thumbnailUrl": string,
  "forceRefresh": boolean
}
Поля
fileUrl

string

Общедоступный URL файла. Платформа RCS для бизнеса определяет MIME-тип файла по полю content-type в заголовках HTTP, когда платформа получает файл. Поле content-type должно присутствовать в HTTP-ответе от URL и содержать точную информацию. Рекомендуемый максимальный размер файла – 100 МБ.

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

thumbnailUrl

string

(Необязательно, только для файлов изображений, аудио и видео) Общедоступный URL значка. Максимальный размер – 100 КБ.

Если вы не укажете URL значка, платформа RCS для бизнеса будет показывать пустой значок, пока устройство пользователя не скачает файл. В зависимости от настроек пользователя файл может не скачиваться автоматически. В этом случае пользователю нужно будет нажать кнопку скачивания.

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

forceRefresh

boolean

Если задано значение, платформа RCS for Business получает файл и уменьшенное изображение по указанным URL, даже если у нее есть кешированные копии файла и/или уменьшенного изображения.

Media.Height

Высота содержания

Перечисления
HEIGHT_UNSPECIFIED Не указано.
SHORT 112 DP.
MEDIUM 168 DP.
TALL 264 DP.

Рекомендация

Предложенный ответ или действие, включенные в полезную подсказку или список вариантов запроса/действия.

JSON-представление
{
  "suggestionDisplay": enum (Suggestion.SuggestionDisplay),

  // Union field option can be only one of the following:
  "reply": {
    object (SuggestedReply)
  },
  "action": {
    object (SuggestedAction)
  }
  // End of list of possible types for union field option.
}
Поля
suggestionDisplay

enum (Suggestion.SuggestionDisplay)

Необязательное поле. Определяет поведение подсказки. Применяется только к текстовым сообщениям, отправленным клиентам Google Сообщений (версии 20260225.00 или более поздней). Это поле можно задавать только для отдельных вариантов ответов, связанных с текстовыми сообщениями. Сервер отклонит письмо, если это поле будет применено к подсказкам в полезных подсказках или к отдельным подсказкам с передачей файлов. Этот параметр сериализуется только для Google Сообщений и игнорируется другими клиентами, например iOS или Samsung.

Объединенное поле option. Предложенный ответ или действие. option может иметь одно из следующих значений:
reply

object (SuggestedReply)

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

action

object (SuggestedAction)

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

SuggestedReply

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

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

string

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

postbackData

string

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

SuggestedAction

При нажатии запускает соответствующее встроенное действие на устройстве.

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

  // Union field action can be only one of the following:
  "dialAction": {
    object (DialAction)
  },
  "viewLocationAction": {
    object (ViewLocationAction)
  },
  "createCalendarEventAction": {
    object (CreateCalendarEventAction)
  },
  "openUrlAction": {
    object (OpenUrlAction)
  },
  "shareLocationAction": {
    object (ShareLocationAction)
  }
  // End of list of possible types for union field action.
}
Поля
text

string

Текст, который показывается в рекомендуемом действии. Максимум: 25 символов.

postbackData

string

Полезная нагрузка (в кодировке Base64), которая будет отправлена агенту в событии пользователя, возникающем при нажатии на предложенное действие. Используйте не более 2048 символов.

fallbackUrl

string

(Необязательно) Резервный URL, который будет использоваться, если клиент не поддерживает предложенное действие. Резервные URL открываются в новых окнах браузера. Должен быть действительным URI, как определено в RFC 3986. Используйте не более 2048 символов.

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

object (DialAction)

Открывает стандартное приложение для звонков с указанным агентом номером телефона.

viewLocationAction

object (ViewLocationAction)

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

createCalendarEventAction

object (CreateCalendarEventAction)

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

openUrlAction

object (OpenUrlAction)

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

shareLocationAction

object (ShareLocationAction)

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

DialAction

Открывает стандартное приложение для звонков с указанным агентом номером телефона.

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

string

Номер телефона в формате E.164, например +12223334444.

ViewLocationAction

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

JSON-представление
{
  "latLong": {
    object (LatLng)
  },
  "label": string,
  "query": string
}
Поля
latLong

object (LatLng)

Широта и долгота указанного местоположения (необязательно).

label

string

Необязательный ярлык для булавки, установленной в точке latLong.

query

string

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

Например, если задать строку запроса "Growing Tree Bank", будут показаны все отделения Growing Tree Bank, расположенные поблизости от пользователя. Если задать строку запроса "1600 Amphitheater Parkway, Mountain View, CA 94043", будет выбран именно этот адрес, независимо от местоположения пользователя.

LatLng

Объект, содержащий географические координаты в виде значений широты и долготы. Это выражается в виде пары значений с плавающей запятой (double), представляющих градусы широты и градусы долготы. Если не указано иное, координаты задаются в системе WGS84. Также они должны попадать в нормализованные диапазоны значений.

JSON-представление
{
  "latitude": number,
  "longitude": number
}
Поля
latitude

number

Градусная мера широты. Значение должно находиться в диапазоне от -90,0 до +90,0.

longitude

number

Градусная мера долготы. Должна попадать в диапазон [-180.0, +180.0].

CreateCalendarEventAction

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

JSON-представление
{
  "startTime": string,
  "endTime": string,
  "title": string,
  "description": string
}
Поля
startTime

string (Timestamp format)

Время начала мероприятия.

Используется формат RFC 3339. Результат всегда будет Z-нормализованным, и в нем будут использоваться цифры дробных частей 0, 3, 6 или 9. Допустимы и другие типы нормализации. Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30".

endTime

string (Timestamp format)

Время окончания мероприятия.

Используется формат RFC 3339. Результат всегда будет Z-нормализованным, и в нем будут использоваться цифры дробных частей 0, 3, 6 или 9. Допустимы и другие типы нормализации. Примеры: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30".

title

string

Название мероприятия. Используйте не более 100 символов.

description

string

Описание мероприятия. Не более 500 знаков.

OpenUrlAction

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

JSON-представление
{
  "url": string,
  "application": enum (OpenUrlApplication),
  "webviewViewMode": enum (WebviewViewMode),
  "description": string
}
Поля
url

string

URL, который нужно открыть. С 1 ноября 2025 г. схема URL должна быть https:// или http://. Запросы к API, использующие другие схемы (например, tel:, mailto:, sms:), после этой даты будут отклоняться с ошибкой 400 Bad Request. URL должен быть действительным URI, как определено в RFC 3986. Используйте не более 2048 символов.

application

enum (OpenUrlApplication)

URL для открытия приложения, браузера или веб-представления. Чтобы проверить, поддерживает ли устройство пользователя режим WebView, сначала выполните проверку возможностей. Подробная информация приведена в документации: https://developers.google.com/business-communications/rcs-business-messaging/guides/build/capabilities.

webviewViewMode

enum (WebviewViewMode)

Режим просмотра для WebView.

description

string

Описание специальных возможностей для элемента webview.

OpenUrlApplication

Тип приложения, открываемого по URL

Перечисления
OPEN_URL_APPLICATION_UNSPECIFIED Не указано. Для открытия будет использоваться браузер.
BROWSER Используйте браузер, чтобы открыть URL.
WEBVIEW Открыть URL в окне встроенного веб-браузера

WebviewViewMode

Тип режима просмотра WebView.

Перечисления
WEBVIEW_VIEW_MODE_UNSPECIFIED Не указано. Чтобы использовать WebView, необходимо указать режим просмотра.
FULL Требуется полноэкранный оверлей с разговором с чат-ботом, который должен быть обозначен в строке состояния.
HALF Требуется наложение на половину экрана.
TALL Требуется наложение на три четверти экрана.

ShareLocationAction

У этого типа нет полей.

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

Suggestion.SuggestionDisplay

Поведение при показе отдельных текстовых подсказок.

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

Клиенты используют поведение по умолчанию:

  • Google Сообщения для отдельных текстовых сообщений: подсказки исчезают после отправки или получения новых сообщений.
  • iOS для отдельных текстовых сообщений: подсказки исчезают только после того, как пользователь нажмет на них.
  • Для всех клиентов, использующих полезные подсказки, они всегда будут постоянными. Если задать для полезных подсказок значение suggestionDisplay, появится ошибка 400.
PERSISTENT Подсказка будет постоянно видна в пузыре сообщения, даже если в чат будут добавлены новые сообщения.

StandaloneCard

Отдельная карточка

JSON-представление
{
  "cardOrientation": enum (StandaloneCard.CardOrientation),
  "thumbnailImageAlignment": enum (StandaloneCard.ThumbnailImageAlignment),
  "cardContent": {
    object (CardContent)
  }
}
Поля
cardOrientation

enum (StandaloneCard.CardOrientation)

Ориентация карточки.

thumbnailImageAlignment

enum (StandaloneCard.ThumbnailImageAlignment)

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

cardContent

object (CardContent)

Контент карточки.

StandaloneCard.CardOrientation

Ориентация карточки.

Перечисления
CARD_ORIENTATION_UNSPECIFIED Не указано.
HORIZONTAL

Горизонтальный формат.

Если в поле object(CardContent) горизонтальной расширенной карточки есть поле media, то в нем также должно быть хотя бы одно из полей: title, description или suggestions[].

VERTICAL Вертикальный формат.

StandaloneCard.ThumbnailImageAlignment

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

Перечисления
THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED Не указано.
LEFT Предпросмотр файла выровнен по левому краю.
RIGHT Предпросмотр файла выровнен по правому краю.

MessageTrafficType

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

Перечисления
MESSAGE_TRAFFIC_TYPE_UNSPECIFIED Поведение по умолчанию: тип трафика сообщений определяется вариантом использования агента. При необходимости обновите тип трафика в зависимости от содержания письма. Для многофункциональных агентов значение по умолчанию не задано. Тип трафика необходимо задать вручную (например, TRANSACTION или PROMOTION).
AUTHENTICATION Для сообщений аутентификации в варианте использования агента OTP.
TRANSACTION Для транзакционных сообщений в транзакционных или многофункциональных агентах.
PROMOTION Для рекламных сообщений в рамках промоакций или многофункциональных агентов.
SERVICEREQUEST Для сообщений о сервисах, на получение которых пользователь дал согласие. Используется в сценариях с одноразовыми кодами, транзакциями, промоакциями или многоразовыми агентами.
ACKNOWLEDGEMENT Для писем, подтверждающих запрос пользователя на отмену подписки. Используется в сценариях с одноразовыми кодами, транзакциями, промоакциями или многоразовыми агентами.

RichMessageClassification

Только для счетов в США: сведения о классификациях сообщений, используемых для выставления счетов.

JSON-представление
{
  "classificationType": enum (RichMessageClassificationType),
  "segmentCount": integer
}
Поля
classificationType

enum (RichMessageClassificationType)

segmentCount

integer

Количество сегментов по 160 байт для текста сообщения, всегда округляется в большую сторону.

Рассчитывается на основе общей длины текстового контента в байтах в кодировке UTF-8. Данные из предложенных ответов или действий не учитываются.

Например, если длина текстового сообщения составляет 300 байт, то значение segmentCount будет равно 2.

Это поле заполняется только для типов RICH_MESSAGE.

RichMessageClassificationType

Только для платежей в США: указывает классификацию сообщения для оплаты.

Важно! Цены на платные типы сообщений, описанные на этой странице, устанавливают операторы связи США. Операторы связи в США также определяют окончательную стоимость отправки сообщений RCS for Business для разработчика. Чтобы узнать больше о ценах или платежных данных, свяжитесь с представителями оператора.

Перечисления
RICH_MESSAGE_CLASSIFICATION_TYPE_UNSPECIFIED Не указано
RICH_MESSAGE Сообщение классифицируется как RICH при следующих условиях: 1. В нем нет полезных подсказок. 2. В нем нет прикрепленных файлов. 3. Все предложенные действия должны быть действиями "Позвонить" или "Открыть URL", которые не используют WebView.
RICH_MEDIA_MESSAGE Любое сообщение, не соответствующее критериям RICH_MESSAGE. К ним относятся сообщения с расширенной карточкой, медиафайлом или любым предложенным действием, кроме "Позвонить" или "Открыть URL в браузере".
SUGGESTED_ACTION_CLICK Нажатие пользователем на предложенное действие (не на предложенный ответ). Эта классификация применяется только к действиям пользователя и появляется исключительно в полезной нагрузке UserMessage веб-перехватчика. Оно не распространяется на сообщения A2P.

Методы

create

Отправляет сообщение от агента пользователю.

delete

Отменяет сообщение агента, которое было отправлено, но ещё не доставлено.