AppRequest

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

有关用户当前互动的界面的信息,例如以及设备能否输出音频或配备屏幕。

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 Web 令牌。有关定义,请访问 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 的专属信息。Surface 与设备的不同之处在于,同一设备上可能会有多个 Google 助理界面。

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,可能需要多个轮流的对话才能为 Action 提供某些类型的输入。

intent

string

指示用户的 intent。对于第一轮对话,intent 将引用操作的触发 intent。对于后续对话,该 intent 将是 Google 上的常见操作(以“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

触发网址。