AppRequest

AppRequest 是 Google 助理向执行方式发送的请求,用于与 Action 互动。API 版本在 HTTP 标头中指定。对于 API 版本 1,标头包含:Google-Assistant-API-Version: v1。对于 API 版本 2,标头包含:Google-actions-API-Version: 2。如需查看有关如何在 Google 上的 Action 中使用此功能的示例,请参阅 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)

用户用来与 Action 互动的设备的相关信息。

surface

object (Surface)

与用户正在互动的 Surface 有关的信息,例如,它是否可以输出音频或具有屏幕。

conversation

object (Conversation)

保存会话数据,例如对话 ID 和对话令牌。

inputs[]

object (Input)

与 Action 指定的预期输入相对应的输入列表。对于初始对话触发器,输入包含有关用户如何触发对话的信息。

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)

最终用户的相关信息。某些字段仅在用户已授权向 Action 提供这些信息时可用。

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

应用提供的不透明令牌,可在特定用户的对话之间永久保留。该字符串的最大长度为 1 万个字符。

packageEntitlements[]

object (PackageEntitlement)

操作包中列出的每个软件包名称的用户权限列表(如果有)。

userVerificationStatus

enum (UserVerificationStatus)

指明用户的验证状态。

UserProfile

包含用户的个人信息。仅当用户针对某个特定字段向 Action 授予权限时,系统才会填充这些字段。

JSON 表示法
{
  "displayName": string,
  "givenName": string,
  "familyName": string
}
字段
displayName

string

用户的 Google 帐号中指定的全名。需要 NAME 权限。

givenName

string

用户 Google 帐号中指定的名字。需要 NAME 权限。

familyName

string

用户的 Google 帐号中指定的姓氏。请注意,此字段可以为空。需要 NAME 权限。

PackageEntitlement

与软件包名称相关的使用权列表

JSON 表示法
{
  "packageName": string,
  "entitlements": [
    {
      object (Entitlement)
    }
  ]
}
字段
packageName

string

应与操作包中的软件包名称一致

entitlements[]

object (Entitlement)

给定应用的使用权列表

使用权

定义用户的数字使用权。可能的使用权类型:付费应用、应用内购买、应用内订阅。

JSON 表示法
{
  "sku": string,
  "skuType": enum (SkuType),
  "inAppDetails": {
    object (SignedData)
  }
}
字段
sku

string

产品 SKU。付费应用的软件包名称,适用于应用内购买和应用内订阅的 Finsky docid 后缀。匹配 Play InApp Billing API 中的 getSku()。

skuType

enum (SkuType)

inAppDetails

object (SignedData)

仅适用于应用内购买和应用内订阅。

SignedData

JSON 表示法
{
  "inAppPurchaseData": {
    object
  },
  "inAppDataSignature": string
}
字段
inAppPurchaseData

object (Struct format)

匹配 getPurchases() 方法中的 INAPP_PURCHASE_DATA。包含所有应用内购数据(采用 JSON 格式)。有关详情,请参阅 https://developer.android.com/google/play/billing/billing_reference.html 的表 6。

inAppDataSignature

string

与 Play InApp Billing API 中的 getPurchases() 方法中的 IN_APP_DATA_SIGNATURE 匹配。

设备

用户用来与 Action 互动的设备的相关信息。

JSON 表示法
{
  "location": {
    object (Location)
  }
}
字段
location

object (Location)

表示设备的实际位置,例如纬度、经度和设置了格式的地址。需要 DEVICE_COARSE_LOCATIONDEVICE_PRECISE_LOCATION 权限。

Surface

用户正在互动的 Google 助理客户端特有的信息。Surface 与设备的不同之处在于,同一设备上可以有多个 Google 助理 surface。

JSON 表示法
{
  "capabilities": [
    {
      object (Capability)
    }
  ]
}
字段
capabilities[]

object (Capability)

请求时 Surface 支持的功能列表,例如 actions.capability.AUDIO_OUTPUT

能力

表示 Surface 能够支持的功能单元。

JSON 表示法
{
  "name": string
}
字段
name

string

功能的名称,例如 actions.capability.AUDIO_OUTPUT

对话

JSON 表示法
{
  "conversationId": string,
  "type": enum (ConversationType),
  "conversationToken": string
}
字段
conversationId

string

多轮对话的唯一 ID。它已分配给第一次转弯。此后,后续对话轮流会保持不变,直到对话终止。

type

enum (ConversationType)

type 指示对话在其生命周期中的状态。

conversationToken

string

上一轮对话中的 Action 指定的不透明令牌。Action 可以使用它来跟踪对话或存储对话相关数据。

输入

JSON 表示法
{
  "rawInputs": [
    {
      object (RawInput)
    }
  ],
  "intent": string,
  "arguments": [
    {
      object (Argument)
    }
  ]
}
字段
rawInputs[]

object (RawInput)

每轮对话的原始输入转录。若要在 Google 上为 Action 提供某些类型的输入内容,可能需要轮流进行多次对话。

intent

string

指示用户的意图。对于第一轮对话,intent 将引用操作的触发 intent。对于后续对话回合,intent 将是 Google intent 上的常见操作(以“actions.”开头)。例如,如果预期输入是 actions.intent.OPTION,此处指定的 intent 要么是 actions.intent.OPTION(如果 Google 助理能够满足该 intent),要么是 actions.intent.TEXT(如果用户提供了其他信息)。请访问 https://developers.google.com/assistant/df-asdk/reference/intents

arguments[]

object (Argument)

为 Action 请求的输入提供的参数值列表。

RawInput

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

触发性网址。