AppRequest

AppRequest — это запрос, отправленный Google Assistant на выполнение для взаимодействия с действием. Версия API указана в HTTP-заголовке. Для API версии 1 заголовок содержит: Google-Assistant-API-Version: v1 . Для API версии 2 заголовок содержит: Google-actions-API-Version: 2 . Примеры того, как это используется в действиях в Google, см. на странице https://developers.google.com/assistant/df-asdk/reference/conversation-webhook-json .

JSON-представление
{
  "user": {
    object (User)
  },
  "device": {
    object (Device)
  },
  "surface": {
    object (Surface)
  },
  "conversation": {
    object (Conversation)
  },
  "inputs": [
    {
      object (Input)
    }
  ],
  "isInSandbox": boolean,
  "availableSurfaces": [
    {
      object (Surface)
    }
  ]
}
Поля
user

object ( User )

Пользователь, инициировавший беседу.

device

object ( Device )

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

surface

object ( Surface )

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

conversation

object ( Conversation )

Содержит данные сеанса, такие как идентификатор разговора и токен разговора.

inputs[]

object ( Input )

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

isInSandbox

boolean

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

availableSurfaces[]

object ( Surface )

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

Пользователь

JSON-представление
{
  "idToken": string,
  "profile": {
    object (UserProfile)
  },
  "accessToken": string,
  "permissions": [
    enum (Permission)
  ],
  "locale": string,
  "lastSeen": string,
  "userStorage": string,
  "packageEntitlements": [
    {
      object (PackageEntitlement)
    }
  ],
  "userVerificationStatus": enum (UserVerificationStatus)
}
Поля
idToken

string

токен, представляющий личность пользователя. Это веб-токен Json, включая закодированный профиль. Определение находится по адресу https://developers.google.com/identity/protocols/OpenIDConnect#obtainuserinfo .

profile

object ( UserProfile )

Информация о конечном пользователе. Некоторые поля доступны только в том случае, если пользователь дал разрешение на предоставление этой информации Действию.

accessToken

string

Токен OAuth2, идентифицирующий пользователя в вашей системе. Доступно только в том случае, если пользователь связывает свою учетную запись.

permissions[]

enum ( Permission )

Содержит разрешения, предоставленные пользователем этому действию.

locale

string

Основная языковая настройка пользователя, делающего запрос. Соответствует языковому коду IETF BCP-47 http://www.rfc-editor.org/rfc/bcp/bcp47.txt . Однако вложенный тег сценария не включен.

lastSeen

string ( Timestamp format)

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

Временная метка в формате RFC3339 UTC «Зулу» с точностью до наносекунд. Пример: "2014-10-02T15:01:23.045123456Z" .

userStorage

string

Непрозрачный токен, предоставляемый приложением, который сохраняется во всех разговорах для конкретного пользователя. Максимальный размер строки — 10 тыс. символов.

packageEntitlements[]

object ( PackageEntitlement )

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

userVerificationStatus

enum ( UserVerificationStatus )

Указывает статус проверки пользователя.

Профиль пользователя

Содержит личную информацию пользователя. Поля заполняются только в том случае, если пользователь предоставляет разрешение на действие для определенного поля.

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

string

Полное имя пользователя, указанное в его учетной записи Google. Требуется разрешение NAME .

givenName

string

Имя пользователя, указанное в его учетной записи Google. Требуется разрешение NAME .

familyName

string

Фамилия пользователя, указанная в его учетной записи Google. Обратите внимание, что это поле может быть пустым. Требуется разрешение NAME .

Право на пакет

Список прав, связанных с именем пакета

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

string

Должно соответствовать имени пакета в пакете действий.

entitlements[]

object ( Entitlement )

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

Право

Определяет цифровые права пользователя. Типы возможных прав: платное приложение, покупки в приложении, подписки в приложении.

JSON-представление
{
  "sku": string,
  "skuType": enum (SkuType),
  "inAppDetails": {
    object (SignedData)
  }
}
Поля
sku

string

Артикул продукта. Название пакета для платного приложения, суффикс документа Finky для покупки в приложении и подписки в приложении. Сопоставьте getSku() в API биллинга Play InApp.

skuType

enum ( SkuType )

inAppDetails

object ( SignedData )

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

подписанные данные

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

object ( Struct format)

Сопоставьте INAPP_PURCHASE_DATA из метода getPurchases(). Содержит все данные о покупках в приложении в формате JSON. Подробности см. в таблице 6 на странице https://developer.android.com/google/play/billing/billing_reference.html .

inAppDataSignature

string

Соответствует IN_APP_DATA_SIGNATURE из метода getPurchases() в Play InApp Billing API.

Устройство

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

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

object ( Location )

Представляет фактическое местоположение устройства, например широту, долготу и форматированный адрес. Требуется разрешение DEVICE_COARSE_LOCATION или DEVICE_PRECISE_LOCATION .

Поверхность

Информация, относящаяся к поверхности клиента Google Assistant, с которой взаимодействует пользователь. Поверхность отличается от устройства тем, что на одном устройстве может находиться несколько поверхностей Ассистента.

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

object ( Capability )

Список возможностей, которые поверхность поддерживает на момент запроса, например actions.capability.AUDIO_OUTPUT .

Возможность

Представляет единицу функциональности, которую способна поддерживать поверхность.

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

string

Имя возможности, например actions.capability.AUDIO_OUTPUT .

Беседа

JSON-представление
{
  "conversationId": string,
  "type": enum (ConversationType),
  "conversationToken": string
}
Поля
conversationId

string

Уникальный идентификатор для многоходового разговора. Он назначен на первый ход. После этого он остается неизменным для последующих ходов разговора, пока разговор не будет завершен.

type

enum ( ConversationType )

type указывает состояние диалога в его жизненном цикле.

conversationToken

string

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

Вход

JSON-представление
{
  "rawInputs": [
    {
      object (RawInput)
    }
  ],
  "intent": string,
  "arguments": [
    {
      object (Argument)
    }
  ]
}
Поля
rawInputs[]

object ( RawInput )

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

intent

string

Указывает намерение пользователя. Для первого хода разговора намерение будет относиться к намерению, инициирующему Действие. Для последующих ходов разговора намерением будут обычные действия Google Intent (начинаются с «действия»). Например, если ожидаемый ввод — actions.intent.OPTION , то указанное здесь намерение будет либо actions.intent.OPTION если Google Assistant смог удовлетворить это намерение, либо actions.intent.TEXT если пользователь предоставил другое информация. См. https://developers.google.com/assistant/df-asdk/reference/intents .

arguments[]

object ( Argument )

Список предоставленных значений аргументов для входных данных, запрошенных действием.

Сырой ввод

JSON-представление
{
  "inputType": enum (InputType),

  // Union field input can be only one of the following:
  "query": string,
  "url": string
  // End of list of possible types for union field input.
}
Поля
inputType

enum ( InputType )

Указывает, как пользователь предоставил этот ввод: напечатанный ответ, голосовой ответ, не указано и т. д.

input поля объединения. Фактическое input значение может быть только одним из следующих:
query

string

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

url

string

Триггерный URL.