- JSON-представление
- Пользователь
- Профиль пользователя
- Право на пакет
- Право
- подписанные данные
- Устройство
- Поверхность
- Возможность
- Беседа
- Вход
- RawInput
 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 |   Информация об устройстве, которое пользователь использует для взаимодействия с Действием. | 
| surface |   Информация о поверхности, с которой взаимодействует пользователь, например, может ли она выводить звук или имеет экран. | 
| conversation |   Содержит данные сеанса, такие как идентификатор разговора и токен разговора. | 
| inputs[] |   Список входных данных, соответствующих ожидаемым входным данным, заданным действием. Для начального триггера разговора входные данные содержат информацию о том, как пользователь инициировал разговор. | 
| isInSandbox |   Указывает, следует ли обрабатывать запрос в изолированном режиме. | 
| availableSurfaces[] |   Поверхности, доступные для перекрестной передачи обслуживания. | 
Пользователь
| JSON-представление | |
|---|---|
| { "idToken": string, "profile": { object ( | |
| Поля | |
|---|---|
| idToken |   токен, представляющий личность пользователя. Это веб-токен Json, включая закодированный профиль. Определение находится по адресу https://developers.google.com/identity/protocols/OpenIDConnect#obtainuserinfo . | 
| profile |   Информация о конечном пользователе. Некоторые поля доступны только в том случае, если пользователь дал разрешение на предоставление этой информации Действию. | 
| accessToken |   Токен OAuth2, идентифицирующий пользователя в вашей системе. Доступно только в том случае, если пользователь связывает свою учетную запись. | 
| permissions[] |   Содержит разрешения, предоставленные пользователем этому действию. | 
| locale |   Основная языковая настройка пользователя, делающего запрос. Соответствует языковому коду IETF BCP-47 http://www.rfc-editor.org/rfc/bcp/bcp47.txt. Однако вложенный тег сценария не включен. | 
| lastSeen |   Временная метка последнего взаимодействия с этим пользователем. Это поле будет опущено, если пользователь ранее не взаимодействовал с агентом.  Временная метка в формате RFC3339 UTC «Зулу» с точностью до наносекунд. Пример:  | 
| userStorage |   Непрозрачный токен, предоставляемый приложением, который сохраняется во всех разговорах для конкретного пользователя. Максимальный размер строки — 10 тыс. символов. | 
| packageEntitlements[] |   Список прав пользователя для каждого имени пакета, указанного в пакете действий, если таковой имеется. | 
| userVerificationStatus |   Указывает статус проверки пользователя. | 
Профиль пользователя
Содержит личную информацию пользователя. Поля заполняются только в том случае, если пользователь предоставляет разрешение на действие для определенного поля.
| JSON-представление | |
|---|---|
| { "displayName": string, "givenName": string, "familyName": string } | |
| Поля | |
|---|---|
| displayName |    Полное имя пользователя, указанное в его учетной записи Google. Требуется разрешение  | 
| givenName |    Имя пользователя, указанное в его учетной записи Google. Требуется разрешение  | 
| familyName |    Фамилия пользователя, указанная в его учетной записи Google. Обратите внимание, что это поле может быть пустым. Требуется разрешение  | 
Право на пакет
Список прав, связанных с именем пакета
| JSON-представление | |
|---|---|
| {
  "packageName": string,
  "entitlements": [
    {
      object ( | |
| Поля | |
|---|---|
| packageName |   Должно соответствовать имени пакета в пакете действий. | 
| entitlements[] |   Список прав для данного приложения | 
Право
Определяет цифровые права пользователя. Типы возможных прав: платное приложение, покупки в приложении, подписки в приложении.
| JSON-представление | |
|---|---|
| { "sku": string, "skuType": enum ( | |
| Поля | |
|---|---|
| sku |   Артикул продукта. Название пакета для платного приложения, суффикс документа Finky для покупки в приложении и подписки в приложении. Сопоставьте getSku() в API биллинга Play InApp. | 
| skuType |   | 
| inAppDetails |   Доступно только для покупок в приложении и подписок в приложении. | 
подписанные данные
| JSON-представление | |
|---|---|
| { "inAppPurchaseData": { object }, "inAppDataSignature": string } | |
| Поля | |
|---|---|
| inAppPurchaseData |   Сопоставьте INAPP_PURCHASE_DATA из метода getPurchases(). Содержит все данные о покупках в приложении в формате JSON. Подробности см. в таблице 6 на странице https://developer.android.com/google/play/billing/billing_reference.html . | 
| inAppDataSignature |   Соответствует IN_APP_DATA_SIGNATURE из метода getPurchases() в Play InApp Billing API. | 
Устройство
Информация об устройстве, которое пользователь использует для взаимодействия с Действием.
| JSON-представление | |
|---|---|
| {
  "location": {
    object ( | |
| Поля | |
|---|---|
| location |    Представляет фактическое местоположение устройства, например широту, долготу и форматированный адрес. Требуется разрешение  | 
Поверхность
Информация, относящаяся к поверхности клиента Google Assistant, с которой взаимодействует пользователь. Поверхность отличается от устройства тем, что на одном устройстве может находиться несколько поверхностей Ассистента.
| JSON-представление | |
|---|---|
| {
  "capabilities": [
    {
      object ( | |
| Поля | |
|---|---|
| capabilities[] |    Список возможностей, которые поверхность поддерживает на момент запроса, например  | 
Возможность
Представляет единицу функциональности, которую способна поддерживать поверхность.
| JSON-представление | |
|---|---|
| { "name": string } | |
| Поля | |
|---|---|
| name |    Имя возможности, например  | 
Беседа
| JSON-представление | |
|---|---|
| {
  "conversationId": string,
  "type": enum ( | |
| Поля | |
|---|---|
| conversationId |   Уникальный идентификатор для многоходового разговора. Он назначен на первый ход. После этого он остается неизменным для последующих ходов разговора, пока разговор не будет завершен. | 
| type |   type указывает состояние диалога в его жизненном цикле. | 
| conversationToken |   Непрозрачный токен, указанный действием в последнем ходе разговора. Он может использоваться действием для отслеживания разговора или для хранения данных, связанных с разговором. | 
Вход
| JSON-представление | |
|---|---|
| { "rawInputs": [ { object ( | |
| Поля | |
|---|---|
| rawInputs[] |   Необработанная транскрипция входных данных каждого этапа разговора. Для действий в Google может потребоваться несколько поворотов разговора, чтобы обеспечить некоторые типы входных данных для действия. | 
| intent |    Указывает намерение пользователя. Для первого хода разговора намерение будет относиться к намерению, инициирующему Действие. Для последующих ходов разговора намерением будут обычные действия Google Intent (начинаются с «действия»). Например, если ожидаемый ввод —  | 
| arguments[] |   Список предоставленных значений аргументов для входных данных, запрошенных действием. | 
RawInput
| JSON-представление | |
|---|---|
| { "inputType": enum ( | |
| Поля | ||
|---|---|---|
| inputType |   Указывает, как пользователь предоставил этот ввод: напечатанный ответ, голосовой ответ, не указано и т. д. | |
| inputполя объединения. Фактическое входноеinputможет быть только одним из следующих: | ||
| query |   Печатный или устный ввод конечного пользователя. | |
| url |   Триггерный URL. | |
