Method: fulfill

表示 fulfillment API 的 RPC

HTTP 请求

POST https://webhook_handler_service.googleapis.com/fulfill

网址采用 gRPC 转码语法。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "handler": {
    object (Handler)
  },
  "intent": {
    object (Intent)
  },
  "scene": {
    object (Scene)
  },
  "session": {
    object (Session)
  },
  "user": {
    object (User)
  },
  "home": {
    object (Home)
  },
  "device": {
    object (Device)
  },
  "context": {
    object (Context)
  }
}
字段
handler

object (Handler)

必需。需要执行有关如何处理请求的信息。例如,旨在获取事实的请求可能具有名为“getFact”的处理程序。

intent

object (Intent)

必需。表示最后匹配的意图。请参阅 https://developers.google.com/assistant/conversational/intents

scene

object (Scene)

可选。调用函数时有关当前场景和下一个场景的信息。将在场景范围内进行 fulfillment 调用时填充。请访问 https://developers.google.com/assistant/conversational/scenes

session

object (Session)

必需。保存会话数据,例如会话 ID 和会话参数。

user

object (User)

必需。发起对话的用户。

home

object (Home)

可选。与目标设备所属的 HomeGraph 结构相关的信息。请参阅 https://developers.google.com/actions/smarthome/concepts/homegraph

device

object (Device)

必需。用户用于与 Action 互动的设备中的信息。

context

object (Context)

可选。请求的当前上下文信息。包括但不限于正在进行的媒体会话信息或画布信息。

响应正文

如果成功,响应正文将包含结构如下的数据:

表示从开发者执行方式向 Actions on Google 发送的响应。

JSON 表示法
{
  "prompt": {
    object (Prompt)
  },
  "scene": {
    object (Scene)
  },
  "session": {
    object (Session)
  },
  "user": {
    object (User)
  },
  "home": {
    object (Home)
  },
  "device": {
    object (Device)
  },
  "expected": {
    object (Expected)
  }
}
字段
prompt

object (Prompt)

可选。表示要发送给用户的提示。除非明确覆盖,否则这些提示将附加到之前添加的消息中。

scene

object (Scene)

可选。表示当前场景和下一个场景。如果设置了 Scene.next,运行时将立即过渡到指定场景。

session

object (Session)

可选。描述当前会话的数据,执行方式可以创建、更新或移除会话参数。

user

object (User)

可选。用于指定要发回的用户参数。

home

object (Home)

可选。用于指定与目标设备所属的 HomeGraph 结构相关的参数。请参阅 https://developers.google.com/actions/smarthome/concepts/homegraph

device

object (Device)

可选。用于在用户有权访问的支持 Google 助理的设备之间移动。

expected

object (Expected)

可选。说明对下一轮对话的预期。

Handler

表示将事件信息从 Actions on Google 映射到执行方式的执行方式处理程序。使用处理程序名称确定应在 fulfillment 中运行哪些代码。例如,可以使用处理程序通过“OrderLookup”等处理程序名称获取用户订单信息另一个函数则使用处理程序名称(如“GetProductInfo”)从数据库中获取商品信息。

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

string

可选。处理程序的名称。

意向

表示一个意图。请参阅 https://developers.google.com/assistant/conversational/intents

JSON 表示法
{
  "name": string,
  "params": {
    string: {
      object (IntentParameterValue)
    },
    ...
  },
  "query": string
}
字段
name

string

必需。上次匹配的意图的名称。

params

map (key: string, value: object (IntentParameterValue))

必需。表示在意图匹配过程中识别的参数。这是被识别的参数的名称与从用户输入中识别的参数值的映射。在匹配的意图中定义并且已被识别的所有参数都将在此处显示。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

query

string

可选。符合此意图的最终用户输入或语音输入的内容。当根据用户输入匹配意图时,将填充此字段。

IntentParameterValue

表示 intent 参数的值。请参阅 https://developers.google.com/assistant/conversational/types

JSON 表示法
{
  "original": string,
  "resolved": value
}
字段
original

string

必需。从用户话语中提取的原始文本值。

resolved

value (Value format)

必需。从用户输入中提取的参数的结构化值。只有当匹配的意图中定义了参数,且在意图匹配期间可以识别参数的值,系统才会填充此字段。

场景

表示场景。场景可以调用 fulfillment、添加提示以及从用户那里收集槽值。场景由事件或 intent 触发,可以触发事件并匹配 intent 以转换到其他场景。

JSON 表示法
{
  "name": string,
  "slotFillingStatus": enum (SlotFillingStatus),
  "slots": {
    string: {
      object (Slot)
    },
    ...
  },
  "next": {
    object (NextScene)
  }
}
字段
name

string

必需。当前场景的名称。

slotFillingStatus

enum (SlotFillingStatus)

必需。槽填充的当前状态。此字段为只读字段。

slots

map (key: string, value: object (Slot))

与当前场景关联的槽。处理程序响应无法返回未在请求中发送的槽。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

next

object (NextScene)

可选。接下来要执行的场景的相关信息。

SlotFillingStatus

表示槽填充的当前状态。

枚举
UNSPECIFIED 未填充用法字段时的后备值。
INITIALIZED 槽已初始化,但尚未开始填充槽。
COLLECTING 正在收集槽值。
FINAL 所有广告位值都是最终值,无法更改。

广告位

表示广告位。

JSON 表示法
{
  "mode": enum (SlotMode),
  "status": enum (SlotStatus),
  "value": value,
  "updated": boolean,
  "prompt": {
    object (Prompt)
  }
}
字段
mode

enum (SlotMode)

槽的模式(必需或可选)。可由开发者设置。

status

enum (SlotStatus)

广告位的状态。

value

value (Value format)

广告位的值。在响应中更改此值,会修改槽填充中的值。

updated

boolean

指明槽值是否在上次回合时收集。此字段为只读字段。

prompt

object (Prompt)

可选。系统会在需要时向用户发送此提示,以填充所需的槽位。此提示会替换控制台中定义的现有提示。网络钩子请求中不包含此字段。

SlotMode

表示槽的模式,即是否必需。

枚举
MODE_UNSPECIFIED 未填充用法字段时的后备值。
OPTIONAL 表示完成槽填充不需要槽。
REQUIRED 指示必须有相应槽才能完成槽位填充。

SlotStatus

表示广告位的状态。

枚举
SLOT_UNSPECIFIED 未填充用法字段时的后备值。
EMPTY 表示广告位没有任何值。此状态无法通过响应进行修改。
INVALID 表示槽值无效。可通过响应来设置此状态。
FILLED 表示广告位具有值。此状态无法通过响应进行修改。

提示

表示对用户的响应。请参阅 https://developers.google.com/assistant/conversational/prompts

JSON 表示法
{
  "override": boolean,
  "firstSimple": {
    object (Simple)
  },
  "content": {
    object (Content)
  },
  "lastSimple": {
    object (Simple)
  },
  "suggestions": [
    {
      object (Suggestion)
    }
  ],
  "link": {
    object (Link)
  },
  "canvas": {
    object (Canvas)
  },
  "orderUpdate": {
    object (OrderUpdate)
  }
}
字段
override

boolean

可选。指定如何将此消息与之前定义的消息合并的模式。“true”清除以前定义的所有消息(第一个和最后一个简单消息、内容、建议链接和画布),并添加此提示中定义的消息。“false”将此提示中定义的消息添加到之前响应中定义的消息。将此字段保留为“false”还支持向“简单提示”“建议”提示和“画布”提示(属于“内容”提示的一部分)内的部分字段附加内容。如果提示中指定了“内容”和“链接”消息,它们始终会被覆盖。默认值为“false”。

firstSimple

object (Simple)

可选。第一条语音回复和纯文字回复。

content

object (Content)

可选。向用户显示的卡片、列表或媒体等内容。

lastSimple

object (Simple)

可选。最后一次语音和纯文字回复。

suggestions[]

object (Suggestion)

可选。要向用户显示的建议,这些建议将始终显示在响应末尾。如果“替换”字段的值为“false”,此字段中定义的标题将添加到之前定义的任何建议提示中定义的标题,并移除重复值。

canvas

object (Canvas)

可选。表示要发送给用户的 Interactive Canvas 响应。

orderUpdate

object (OrderUpdate)

在交易流中收到订单后,可选 Action 会返回 OrderUpdate 响应。收到此信息后,Google 会将此次订单更新记录下来;如果成功,则会在显示设备上随同 TTS 一起显示收据卡片。

简单

表示要发送给用户的简单提示。请参阅 https://developers.google.com/assistant/conversational/prompts-simple

JSON 表示法
{
  "speech": string,
  "text": string
}
字段
speech

string

可选。表示向用户说出的语音。可以是 SSML 或文字转语音。如果“替换”字段的值为“true”,则此字段中定义的语音将替换上一个简单提示的语音。请访问 https://developers.google.com/assistant/conversational/ssml

text

string

要在聊天气泡中显示的可选文本。如果未指定,系统将使用呈现方式呈现上面的语音字段。不得超过 640 个字符。如果“替换”字段的值为“true”,则此字段中定义的文本将替换成上一个简单提示的文本。

内容

用于富提示或选择提示的容器对象。

JSON 表示法
{

  // Union field content can be only one of the following:
  "card": {
    object (Card)
  },
  "image": {
    object (Image)
  },
  "table": {
    object (Table)
  },
  "media": {
    object (Media)
  },
  "collection": {
    object (Collection)
  },
  "list": {
    object (List)
  },
  "collectionBrowse": {
    object (CollectionBrowse)
  }
  // End of list of possible types for union field content.
}
字段

联合字段 content

content 只能是下列其中一项:

card

object (Card)

基本卡片。

image

object (Image)

图片。

table

object (Table)

表格卡片。

media

object (Media)

指示要播放的一组媒体的响应。

collection

object (Collection)

显示一系列可供选择的选项的卡片。

list

object (List)

显示可供选择的选项列表的卡片。

collectionBrowse

object (CollectionBrowse)

一张卡片,显示了一系列可打开的网页。

卡片

用于显示某些信息的基本卡片,如图片和/或文字请参阅 https://developers.google.com/assistant/conversational/prompts-rich#basic_card

JSON 表示法
{
  "title": string,
  "subtitle": string,
  "text": string,
  "image": {
    object (Image)
  },
  "imageFill": enum (ImageFill),
  "button": {
    object (Link)
  }
}
字段
title

string

卡片的总体标题。可选。

subtitle

string

可选。

text

string

卡片的正文。支持一组数量有限的 Markdown 语法。必填,除非显示图片。

image

object (Image)

卡片的主打图片。高度固定为 192dp。可选。

imageFill

enum (ImageFill)

图片背景的填充方式。可选。

button

object (Link)

包含出站链接的按钮。可选。

映像

卡片中显示的图片。请参阅 https://developers.google.com/assistant/conversational/prompts-rich#image-cards

JSON 表示法
{
  "url": string,
  "alt": string,
  "height": integer,
  "width": integer
}
字段
url

string

图片的来源网址。图片可以是 JPG、PNG 和 GIF(动画和非动画)。例如:https://www.agentx.com/logo.png。必填。

alt

string

将用于无障碍功能的图片的文字说明,例如屏幕阅读器。必填。

height

integer

图片的高度(以像素为单位)。可选。

width

integer

图片的宽度(以像素为单位)。可选。

ImageFill

可能会影响图片呈现效果的图片显示选项。当图片的宽高比与图片容器的宽高比不一致时,应使用此属性。

枚举
UNSPECIFIED
GRAY 用灰色条填充图片和图片容器之间的间隙。
WHITE 用白条填充图片和图片容器之间的间隙。
CROPPED 对图片进行缩放,使图片宽度和高度符合或超过容器尺寸。如果缩放后的图片高度大于容器高度,系统可能会剪裁图片的顶部和底部;如果缩放后的图片宽度大于容器宽度,则可能会剪裁图片的左侧和右侧。与“缩放模式”相似在宽屏电视上播放 4:3 视频。

OpenUrl

JSON 表示法
{
  "url": string,
  "hint": enum (UrlHint)
}
字段
url

string

网址字段,可以是以下任一项:- 用于打开与应用关联的应用或网页的 http/https 网址

hint

enum (UrlHint)

表示网址类型的提示。

UrlHint

不同类型的网址提示。

枚举
AMP 直接指向 AMP 内容的网址,或通过 指向指向 AMP 内容的规范网址的网址。请参阅 https://amp.dev/

用于显示文本表格的表格卡片。请参阅 https://developers.google.com/assistant/conversational/prompts-rich#table_cards

JSON 表示法
{
  "title": string,
  "subtitle": string,
  "image": {
    object (Image)
  },
  "columns": [
    {
      object (TableColumn)
    }
  ],
  "rows": [
    {
      object (TableRow)
    }
  ],
  "button": {
    object (Link)
  }
}
字段
title

string

表格的总体标题。可选,但如果设置了字幕,则必须设置该字段。

subtitle

string

表格的副标题。可选。

image

object (Image)

与表关联的图片。可选。

columns[]

object (TableColumn)

标题和列的对齐方式。

rows[]

object (TableRow)

表中的行数据。前 3 行保证会显示,但其他行可能会被在某些平台上剪切。请使用模拟器进行测试,看看将针对给定 Surface 显示哪些行。在支持 WEB_BROWSER 功能的平台上,您可以将用户引导至包含更多数据的网页。

button

object (Link)

按钮。

TableColumn

JSON 表示法
{
  "header": string,
  "align": enum (HorizontalAlignment)
}
字段
header

string

列的标题文本。

align

enum (HorizontalAlignment)

内容与列的水平对齐方式。如果未指定,内容将与前缘对齐。

HorizontalAlignment

内容在单元格中的对齐方式。

枚举
UNSPECIFIED
LEADING 单元格的前缘。这是默认值。
CENTER 内容与列的中心对齐。
TRAILING 内容与列的尾随边缘对齐。

TableRow

描述表中的行。

JSON 表示法
{
  "cells": [
    {
      object (TableCell)
    }
  ],
  "divider": boolean
}
字段
cells[]

object (TableCell)

此行中的单元格。前 3 个单元格一定会显示,但其他单元格可能会被在某些表面上剪切。请使用模拟器进行测试,看看将针对给定 Surface 显示哪些单元格。

divider

boolean

指示每行后是否应有分隔线。

TableCell

描述一行中的单元格。

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

string

单元格的文本内容。

媒体

表示一个媒体对象。包含有关媒体的信息,例如名称、说明、网址等。请参阅 https://developers.google.com/assistant/conversational/prompts-media

JSON 表示法
{
  "mediaType": enum (MediaType),
  "startOffset": string,
  "optionalMediaControls": [
    enum (OptionalMediaControls)
  ],
  "mediaObjects": [
    {
      object (MediaObject)
    }
  ],
  "repeatMode": enum (RepeatMode),
  "firstMediaObjectIndex": integer
}
字段
mediaType

enum (MediaType)

startOffset

string (Duration format)

第一个媒体对象的起始偏移量。

该持续时间以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

optionalMediaControls[]

enum (OptionalMediaControls)

此媒体响应会话可以支持的可选媒体控件类型。如果设置,当发生特定媒体事件时,系统会向第三方发送请求。如果此政策未设置,3p 仍必须处理两种默认控件类型:FINISHED 和 FAILED。

mediaObjects[]

object (MediaObject)

媒体对象列表

repeatMode

enum (RepeatMode)

针对媒体对象列表重复运行模式。

firstMediaObjectIndex

integer

mediaObject 中要播放的第一个媒体对象的索引(从 0 开始)。如果未指定、零或超出边界,则从 mediaObject 中的第一个媒体对象开始播放。

MediaType

此响应的媒体类型。

枚举
MEDIA_TYPE_UNSPECIFIED
AUDIO 音频文件。
MEDIA_STATUS_ACK 对确认媒体状态报告的响应。

OptionalMediaControls

媒体响应可以支持的可选媒体控件类型

枚举
OPTIONAL_MEDIA_CONTROLS_UNSPECIFIED 未指定的值
PAUSED 活动已暂停。当用户暂停媒体时触发。
STOPPED 活动已停止。当用户在媒体播放期间退出第三方会话时触发。

MediaObject

表示单个媒体对象

JSON 表示法
{
  "name": string,
  "description": string,
  "url": string,
  "image": {
    object (MediaImage)
  }
}
字段
name

string

此媒体对象的名称。

description

string

此媒体对象的说明。

url

string

指向媒体内容的网址。MP3 文件必须托管在网络服务器上,并通过 HTTPS 网址公开提供。只有 MP3 格式支持直播。

image

object (MediaImage)

与媒体卡片一起显示的图片。

MediaImage

JSON 表示法
{

  // Union field image can be only one of the following:
  "large": {
    object (Image)
  },
  "icon": {
    object (Image)
  }
  // End of list of possible types for union field image.
}
字段

联合字段 image

image 只能是下列其中一项:

large

object (Image)

大图片,例如影集的封面等。

icon

object (Image)

标题右侧会显示一个小图片图标。其大小已调整为 36x36 dp。

RepeatMode

媒体对象列表的重复模式类型。

枚举
REPEAT_MODE_UNSPECIFIED 相当于“关闭”。
OFF 在最后一个媒体对象的末尾结束媒体会话。
ALL 当到达最后一个媒体对象的结尾时,循环到第一个媒体对象的开头。

集合

显示一系列可供选择的选项的卡片。请参阅 https://developers.google.com/assistant/conversational/prompts-selection#collection

JSON 表示法
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (CollectionItem)
    }
  ],
  "imageFill": enum (ImageFill)
}
字段
title

string

合集的标题。可选。

subtitle

string

合集的副标题。可选。

items[]

object (CollectionItem)

一个项列表。其值最小值为 2,最大值为 10

imageFill

enum (ImageFill)

集合项的图片背景的填充方式。可选。

CollectionItem

集合中的一项内容

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

string

必需。与关联类型中的条目键名匹配的 NLU 键。

列表

显示可供选择的选项列表的卡片。请参阅 https://developers.google.com/assistant/conversational/prompts-selection#list

JSON 表示法
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (ListItem)
    }
  ]
}
字段
title

string

列表的标题。可选。

subtitle

string

列表的副标题。可选。

items[]

object (ListItem)

一个项列表。其值最小值为 2,最大值为 30

ListItem

列表中的一个项

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

string

必需。与关联类型中的条目键名匹配的 NLU 键。

CollectionBrowse

将一组网络文档作为大型图块的集合显示。选中内容后,即可在网页查看器中启动与其相关联的网络文档。请参阅 https://developers.google.com/assistant/conversational/prompts-selection#collectionBrowse

JSON 表示法
{
  "items": [
    {
      object (Item)
    }
  ],
  "imageFill": enum (ImageFill)
}
字段
items[]

object (Item)

一个项列表。其值最小值为 2,最大值为 10

imageFill

enum (ImageFill)

图片显示选项的类型。

集合中的项。

JSON 表示法
{
  "title": string,
  "description": string,
  "footer": string,
  "image": {
    object (Image)
  },
  "openUriAction": {
    object (OpenUrl)
  }
}
字段
title

string

必需。集合项的标题。

description

string

集合项的说明。

footer

string

集合项的页脚文本,显示在说明下方。一行文本,用省略号截断。

image

object (Image)

合集项的图片。

openUriAction

object (OpenUrl)

必需。在项被选中后打开的 URI。

建议

当 Google 助理显示提示时,建议会为支持显示的设备用户提供建议内容信息卡。使用建议内容信息卡提示用户做出选择,从而继续或推进对话。点按后,建议内容信息卡会将显示的文本逐字返回对话中,就好像用户已经输入了一样。请参阅 https://developers.google.com/assistant/conversational/prompts#suggestions

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

string

必需。建议内容信息卡中显示的文本。用户点按后,这些文字会一字不差地重新发布到对话中,就如同用户已经输入了一样。每个标题在一组建议内容信息卡中必须是唯一的。最多 25 个字符

画布

表示要发送给用户的 Interactive Canvas 响应。此方法可与“firstSimple”字段。响应的大小上限为 50k 字节。请访问 https://developers.google.com/assistant/interactivecanvas

JSON 表示法
{
  "url": string,
  "data": [
    value
  ],
  "suppressMic": boolean,
  "continuousMatchConfig": {
    object (ContinuousMatchConfig)
  }
}
字段
url

string

要加载的交互式画布 Web 应用的网址。如果您未设置此政策,系统会重复使用当前有效画布中的网址。

data[]

value (Value format)

可选。要作为事件传递到沉浸式体验网页的 JSON 数据。如果“替换”字段的值为“false”此 Canvas 提示中定义的数据值将添加到之前的 Canvas 提示中定义的数据值之后。

suppressMic

boolean

可选。默认值:false。

continuousMatchConfig

object (ContinuousMatchConfig)

用于启动持续匹配模式的配置。

ContinuousMatchConfig

用于启动持续匹配模式的配置。

JSON 表示法
{
  "expectedPhrases": [
    {
      object (ExpectedPhrase)
    }
  ],
  "durationSeconds": integer
}
字段
expectedPhrases[]

object (ExpectedPhrase)

此次持续匹配模式会话期间可能出现的所有预期词组。

durationSeconds

integer

使连续匹配模式保持开启状态的时长。如果指定,系统会在达到使用时间上限后关闭麦克风。允许的最大值为 180。

ExpectedPhrase

JSON 表示法
{
  "phrase": string,
  "alternativePhrases": [
    string
  ]
}
字段
phrase

string

要在连续匹配模式会话期间匹配的词组。

alternativePhrases[]

string

即使存在语音偏差,某些短语也可能被语音模型错误地识别。这样一来,开发者就可以为同音词指定替代触发器。

OrderUpdate

更新为订单。

JSON 表示法
{
  "type": enum (Type),
  "order": {
    object (Order)
  },
  "updateMask": string,
  "userNotification": {
    object (UserNotification)
  },
  "reason": string
}
字段
type
(deprecated)

enum (Type)

已弃用:请改用 OrderUpdate.update_mask。如果 type = SNAPSHOT,则 OrderUpdate.order 应为整个订单。如果 type = ORDER_STATUS,则表示订单级状态更改。只提取 order.last_update_time 和此行业状态。注意:type.ORDER_STATUS 仅支持 PurcahaseOrderExtension 状态更新,并且没有延长此支持的计划。我们建议使用 updateMask,因为它更通用、可扩展,并且适用于所有行业。

order

object (Order)

updateMask

string (FieldMask format)

注意:对于以下特殊字段,有以下注意事项/建议:1. order.last_update_time 将始终作为更新请求的一部分进行更新。2. 如果 order.create_time、order.google_order_id 和 order.merchant_order_id 作为 updateMask 的一部分提供,则将被忽略。

这是完全限定字段名称的逗号分隔列表。示例:"user.displayName,photo"

userNotification

object (UserNotification)

指定此标志时,系统会向用户显示一条包含指定标题和文本的通知。指定通知只是建议发送通知,并不保证一定会带来通知。

reason

string

更改/更新的原因。

类型

已弃用:请改用 OrderUpdate.update_mask。允许对订单进行更新。

枚举
TYPE_UNSPECIFIED 未指定类型,不应明确设置此字段。
ORDER_STATUS 仅更新订单状态。
SNAPSHOT 更新订单快照。

订单

订单实体。注意:1.除非另有规定,否则所有级别的所有字符串都必须少于 1000 个字符。2. 除非另有规定,否则所有级别的所有重复字段数量都必须少于 50。3. 所有级别的所有时间戳(如果指定)都必须是有效的时间戳。

JSON 表示法
{
  "googleOrderId": string,
  "merchantOrderId": string,
  "userVisibleOrderId": string,
  "userVisibleStateLabel": string,
  "buyerInfo": {
    object (UserInfo)
  },
  "image": {
    object (Image)
  },
  "createTime": string,
  "lastUpdateTime": string,
  "transactionMerchant": {
    object (Merchant)
  },
  "contents": {
    object (Contents)
  },
  "priceAttributes": [
    {
      object (PriceAttribute)
    }
  ],
  "followUpActions": [
    {
      object (Action)
    }
  ],
  "paymentData": {
    object (PaymentData)
  },
  "termsOfServiceUrl": string,
  "note": string,
  "promotions": [
    {
      object (Promotion)
    }
  ],
  "disclosures": [
    {
      object (Disclosure)
    }
  ],
  "vertical": {
    "@type": string,
    field1: ...,
    ...
  },

  // Union field verticals can be only one of the following:
  "purchase": {
    object (PurchaseOrderExtension)
  },
  "ticket": {
    object (TicketOrderExtension)
  }
  // End of list of possible types for union field verticals.
}
字段
googleOrderId

string

Google 指定的订单 ID。

merchantOrderId

string

必填:商家分配的内部订单 ID。此 ID 必须是唯一的,并且后续订单更新操作中必须使用该 ID。此 ID 可设置为提供的 googleOrderId 或任何其他唯一值。请注意,向用户显示的 ID 是 userVisibleOrderId,它可能是一个不同的值,更方便用户使用。允许的长度上限为 128 个字符。

userVisibleOrderId

string

引用当前订单的面向用户的 ID。此 ID 应与该订单在其他情境(包括网站、应用和电子邮件)中显示的 ID 一致。

userVisibleStateLabel
(deprecated)

string

已弃用:请改用 OrderExtensions 状态。此订单状态的用户可见标签。

buyerInfo

object (UserInfo)

买方的相关信息。

image

object (Image)

与订单相关联的图片。

createTime

string (Timestamp format)

必填:订单的创建日期和时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

lastUpdateTime

string (Timestamp format)

上次更新订单的日期和时间。OrderUpdate 是必需的。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

transactionMerchant

object (Merchant)

协助结账的商家。可能与订单项级提供商不同。示例:包含来自 ANA 的订单项的 Expedia 订单。

contents

object (Contents)

必需:订单内容,即一组订单项。

priceAttributes[]

object (PriceAttribute)

价格、折扣、税费等。

followUpActions[]

object (Action)

在订单级别跟踪后续操作。

paymentData

object (PaymentData)

订单的付款相关数据。

termsOfServiceUrl

string

指向适用于订单/提议订单的服务条款的链接。

note

string

订单已附加备注。

promotions[]

object (Promotion)

与此订单相关联的所有促销活动。

disclosures[]

object (Disclosure)

与此订单相关的信息。

vertical
(deprecated)

object

已弃用:请改用行业。除非某些订单项中的这些属性被覆盖,否则这些属性将应用于所有订单项。此行业必须与订单项级行业类型一致。可能的值:google.actions.orders.v3.verticals.purchase.PurchaseOrderExtension google.actions.orders.v3.verticals.ticket.TicketOrderExtension

此对象可以包含任意类型的字段。附加字段 "@type" 包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }

联合字段 verticals。除非某些订单项中的这些属性被覆盖,否则这些属性将应用于所有订单项。此行业必须与订单项级行业类型一致。verticals 只能是下列其中一项:
purchase

object (PurchaseOrderExtension)

采购订单

ticket

object (TicketOrderExtension)

票务订单

UserInfo

用户相关信息。用于表示与订单相关联的用户信息。

JSON 表示法
{
  "email": string,
  "firstName": string,
  "lastName": string,
  "displayName": string,
  "phoneNumbers": [
    {
      object (PhoneNumber)
    }
  ]
}
字段
email

string

用户电子邮件地址,例如:janedoe@gmail.com

firstName

string

用户的名字。

lastName

string

用户的姓氏。

displayName

string

用户的显示名称,可能与名字或姓氏不同。

phoneNumbers[]

object (PhoneNumber)

用户的电话号码。

电话号码

标准电话号码表示法。

JSON 表示法
{
  "e164PhoneNumber": string,
  "extension": string,
  "preferredDomesticCarrierCode": string
}
字段
e164PhoneNumber

string

根据国际电信联盟 (ITU) 建议 E.164 中的定义,采用 E.164 格式的电话号码。Wiki 链接:https://en.wikipedia.org/wiki/E.164

extension

string

扩展不是在 ITU 建议中标准化的,除非是定义为长度不超过 40 位的一串数字。此处将其定义为字符串,以配合在扩展名中使用前导零的情况(组织可以完全自由地这样做,因为未定义标准)。除数字外,一些其他拨号字符,例如“,”(表示等待)可能会存储在此处。例如,xxx-xxx-xxxx 分机号:123、“123”是扩展名。

preferredDomesticCarrierCode

string

在国内拨打此电话号码时首选的运营商选择代码。这也包括在某些国家/地区,在固定电话和手机之间拨打需要拨打的代码。例如,在哥伦比亚,“3”需要在手机和国内固定电话之前拨打,然后再拨打电话。https://en.wikipedia.org/wiki/Telephone_numbers_in_Colombia https://en.wikipedia.org/wiki/Brazilian_Carrier_Selection_Code

请注意,这是“首选”换言之,其他代码也可使用。

映像

卡片中显示的图片。

JSON 表示法
{
  "url": string,
  "accessibilityText": string,
  "height": integer,
  "width": integer
}
字段
url

string

图片的来源网址。图片可以是 JPG、PNG 和 GIF(动画和非动画)。例如:https://www.agentx.com/logo.png。必填。

accessibilityText

string

将用于无障碍功能的图片的文字说明,例如屏幕阅读器。必填。

height

integer

图片的高度(以像素为单位)。可选。

width

integer

图片的宽度(以像素为单位)。可选。

商家

购物车/订单/订单项的商家。

JSON 表示法
{
  "id": string,
  "name": string,
  "image": {
    object (Image)
  },
  "phoneNumbers": [
    {
      object (PhoneNumber)
    }
  ],
  "address": {
    object (Location)
  }
}
字段
id

string

分配给商家的可选 ID(如果有)。

name

string

商家的名称,例如“帕纳拉面包”。

image

object (Image)

与商家关联的图片。

phoneNumbers[]

object (PhoneNumber)

商家的电话号码。

address

object (Location)

商家的地址。

位置

表示位置的容器。

JSON 表示法
{
  "coordinates": {
    object (LatLng)
  },
  "formattedAddress": string,
  "zipCode": string,
  "city": string,
  "postalAddress": {
    object (PostalAddress)
  },
  "name": string,
  "phoneNumber": string,
  "notes": string,
  "placeId": string
}
字段
coordinates

object (LatLng)

地理坐标。需要 [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 权限。

formattedAddress

string

显示地址,例如“1600 Amphitheatre Pkwy, Mountain View, CA 94043”。需要 [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 权限。

zipCode

string

邮政编码。需要 [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 或 [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] 权限。

city

string

城市。需要 [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 或 [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] 权限。

postalAddress

object (PostalAddress)

邮寄地址。需要 [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 或 [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] 权限。

name

string

地点的名称。

phoneNumber

string

营业地点的电话号码,例如营业地点的联系电话号码或送货地点的电话号码。

notes

string

关于该地点的备注。

placeId

string

placeId 与 Places API 搭配使用,用于提取地点的详细信息。请参阅 https://developers.google.com/places/web-service/place-id

LatLng

表示纬度/经度对的对象。该对象以一对双精度数表示,分别代表纬度度数和经度度数。除非另有说明,否则该对象必须符合 WGS84 标准。值必须介于标准化范围内。

JSON 表示法
{
  "latitude": number,
  "longitude": number
}
字段
latitude

number

纬度(以度为单位)。它必须在 [-90.0, +90.0] 范围内。

longitude

number

经度(以度为单位)。它必须在 [-180.0, +180.0] 范围内。

PostalAddress

表示邮政地址,例如邮政递送或付款地址。给定邮政地址时,邮政服务可以将物品投递到处所、邮政信箱或其他投递地点。此对象不模拟地理位置(道路、城镇、山区)。

在典型的使用场景中,地址将通过用户输入或导入现有数据来创建,具体取决于进程的类型。

有关输入 / 修改地址的建议:- 使用国际化地址 widget,例如 https://github.com/google/libaddressinput

如需详细了解如何使用此架构,请参阅:https://support.google.com/business/answer/6397478

JSON 表示法
{
  "revision": integer,
  "regionCode": string,
  "languageCode": string,
  "postalCode": string,
  "sortingCode": string,
  "administrativeArea": string,
  "locality": string,
  "sublocality": string,
  "addressLines": [
    string
  ],
  "recipients": [
    string
  ],
  "organization": string
}
字段
revision

integer

PostalAddress 的架构修订版本。必须将其设置为 0,也就是最新版本。

所有新版本必须向后兼容旧版本。

regionCode

string

必需。地址的国家/地区的 CLDR 地区代码。系统不会推断此字段,该值由用户确保正确。如需了解详情,请参阅 http://cldr.unicode.org/http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html。例如:瑞士的地区代码为“CH”。

languageCode

string

选填。此地址内容的 BCP-47 语言代码(如果已知)。这通常是输入表单的界面语言,或者与地址的“国家/地区”中使用的某种语言或其转换后的其他语言相匹配。这可能会影响某些国家/地区的格式,但对数据的正确性并不重要,也不会影响任何验证或其他与格式无关的操作。

如果此值未知,则应省略(而不是指定可能不正确的默认值)。

示例:“zh-Hant”、“ja”、“ja-Latn”、“en”。

postalCode

string

可选。地址的邮政编码。并非所有国家/地区都使用或要求使用邮政编码,但在使用邮政编码时,它们可能会触发地址其他部分的额外验证(例如美国的州/邮政编码验证)。

sortingCode

string

可选。特定于国家/地区的额外排序代码。大多数区域都未使用此功能。在使用它的地方,此值可以是一个类似“CEDEX”的字符串,后面可能会跟一个数字(例如“CEDEX 7”),或者只有一个数字,代表“管制区代码”(牙买加),“投递区域指标”(马拉维)或“邮局指标”(例如科特迪瓦)。

administrativeArea

string

可选。最高行政区划,用于国家或地区的邮政地址。例如,此值可以是州、省、州(俄罗斯)或县。具体来说,对于西班牙,此值为省而非自治区(例如此值为“巴塞罗那”而非“加泰罗尼亚”)。许多国家在邮政地址中不使用行政区划。例如对于瑞士,此字段应留空。

locality

string

可选。一般是指地址的城市/城镇部分。示例:美国的城市、意大利的市镇、英国的邮镇。对于没有明确定义 locality 或者其无法很好地对应这个结构的区域,应将 locality 留空并使用 address_lines。

sublocality

string

可选。地址的子级市行政区。例如,此值可以是社区、自治市/镇/区、行政区。

addressLines[]

string

描述详细地址的非结构化地址行。

由于 addressLines 中的值没有类型信息,并且有时可能在单个字段中包含多个值(例如“Austin, TX”),因此清楚的行顺序很重要。地址行的顺序应该是地址的国家/地区的“信封顺序”。在某些地方,此顺序有可能不同(例如日本),address_language 有助于使其明确(例如,“ja”表示从大到小排序,“ja-Latn”或“en”表示从小到大排序)。这样就可以根据语言选择地址的具体行。

地址的最小结构化表示形式由 regionCode 和 addressLines 组成,其中所有其他信息都放在 addressLines 中。可以在没有地理编码的情况下非常近似地设置此地址的格式,但是在至少部分完成之前,不能对任何地址组成部分进行语义推理。

创建仅包含 regionCode 和 addressLines 的地址,然后进行地理编码是处理完全非结构化地址的推荐方法(而不是猜测地址的哪些部分是城市/市镇或行政区)。

recipients[]

string

可选。此地址的收件人。在某些情况下,该字段可能包含多行信息。例如,它可能包含“转交”信息。

organization

string

可选。地址对应的组织的名称。

目录

订单项的封装容器。

JSON 表示法
{
  "lineItems": [
    {
      object (LineItem)
    }
  ]
}
字段
lineItems[]

object (LineItem)

订单项列表。至少需要提供 1 个订单项,最多允许提供 50 个。所有订单项必须属于同一行业。

LineItem

一个订单项包含一个行业。一个订单或购物车可以包含多个属于同一行业的订单项。子订单项/插件等应根据其用例在纵向 proto 中定义。注意:1.除非另有规定,否则所有级别的所有字符串都必须少于 1000 个字符。2. 除非另有规定,否则所有级别的所有重复字段数量都必须少于 50。3. 所有级别的所有时间戳(如果指定)都必须是有效的时间戳。

JSON 表示法
{
  "id": string,
  "name": string,
  "userVisibleStateLabel": string,
  "provider": {
    object (Merchant)
  },
  "priceAttributes": [
    {
      object (PriceAttribute)
    }
  ],
  "followUpActions": [
    {
      object (Action)
    }
  ],
  "recipients": [
    {
      object (UserInfo)
    }
  ],
  "image": {
    object (Image)
  },
  "description": string,
  "notes": [
    string
  ],
  "disclosures": [
    {
      object (Disclosure)
    }
  ],
  "vertical": {
    "@type": string,
    field1: ...,
    ...
  },

  // Union field verticals can be only one of the following:
  "purchase": {
    object (PurchaseItemExtension)
  },
  "reservation": {
    object (ReservationItemExtension)
  }
  // End of list of possible types for union field verticals.
}
字段
id

string

必需:商家为订单项分配的标识符。用于在应用部分更新时识别现有订单项。允许的长度上限为 64 个字符。

name

string

收据上显示的订单项名称。允许的长度上限为 100 个字符。

userVisibleStateLabel
(deprecated)

string

已弃用。请改用垂直水平状态。例如,对于购买交易,请使用 PurchaseOrderExtension.status。用户可见的此订单项状态标签。

provider

object (Merchant)

特定订单项的提供商(如果与整个订单不同)。示例:订单项提供商 ANA 的 Expedia 订单。

priceAttributes[]

object (PriceAttribute)

订单项级价格和调整项。

followUpActions[]

object (Action)

跟踪订单项中的后续操作。

recipients[]

object (UserInfo)

订单项级客户,可能与订单级买方不同。示例:用户 X 以用户 Y 的名义预订了餐厅。

image

object (Image)

与此内容相关的小图片(如果有)。

description

string

订单项说明。

notes[]

string

适用于此特定订单项的附加说明,例如取消政策。

disclosures[]

object (Disclosure)

与此订单项相关的信息。

vertical
(deprecated)

object

已弃用:请改用行业。必需:根据类型/行业划分的订单项的语义内容。每个类别都应包含自己的履单详情。必须是以下值之一:google.actions.orders.v3.verticals.purchase.PurchaseItemExtension google.actions.orders.v3.verticals.reservation.ReservationItemExtension google.actions.orders.v3.verticals.ticket.TicketItemExtension

此对象可以包含任意类型的字段。附加字段 "@type" 包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }

联合字段 verticals。必需:根据类型/行业划分的订单项的语义内容。每个类别都应包含自己的履单详情。verticals 只能是下列其中一项:
purchase

object (PurchaseItemExtension)

采购订单,如商品、食品等

reservation

object (ReservationItemExtension)

餐馆、理发等预订订单

PriceAttribute

订单或订单项的 price 属性。

JSON 表示法
{
  "type": enum (Type),
  "name": string,
  "id": string,
  "state": enum (State),
  "taxIncluded": boolean,

  // Union field spec can be only one of the following:
  "amount": {
    object (Money)
  },
  "amountMillipercentage": integer
  // End of list of possible types for union field spec.
}
字段
type

enum (Type)

必填:金额属性的类型。

name

string

必需:用户显示的价格属性字符串。此信息由商家发送并本地化。

id

string

可选:与此价格对应的订单项的 ID。

state

enum (State)

必需:价格状态:估算价格与实际价格。

taxIncluded

boolean

价格是否含税。

联合字段 spec。表示货币金额或毫百分比。spec 只能是下列其中一项:
amount

object (Money)

货币金额。

amountMillipercentage
(deprecated)

integer

百分比规范,精确到百分之 1/1000。例如:8.750% 表示为 8750,负百分比表示折扣百分比。弃用此字段。如果需要可靠的应用场景,可以考虑重新添加。

类型

表示货币的类型。

枚举
TYPE_UNSPECIFIED 未指定类型,客户端不应该明确设置此属性。
REGULAR 未应用任何折扣等的正常显示价格。
DISCOUNT 从小计中减去。
TAX 添加到小计中。
DELIVERY 添加到小计中。
SUBTOTAL 在加收某些费用前的小计。
FEE 任何其他费用。
GRATUITY 添加到小计中。
TOTAL 显示的订单或订单项价格。

表示价格状态。

枚举
STATE_UNSPECIFIED 未指定。
ESTIMATE 价格只是估算值,但最终金额会接近此金额。示例:如果在交易时未准确知晓税费,则总金额为 ESTIMATE 金额。
ACTUAL 将向用户收取的实际价格。

金钱

表示含有货币类型的金额。

JSON 表示法
{
  "currencyCode": string,
  "amountInMicros": string
}
字段
currencyCode

string

ISO 4217 中定义的由 3 个字母组成的货币代码。

amountInMicros

string (int64 format)

金额(以微单位表示)。例如,对于 1.99 美元,应将此字段设置为 1990000。

操作

与订单或订单项相关联的后续操作。

JSON 表示法
{
  "type": enum (Type),
  "title": string,
  "openUrlAction": {
    object (OpenUrlAction)
  },
  "actionMetadata": {
    object (ActionMetadata)
  }
}
字段
type

enum (Type)

必需:操作类型。

title

string

操作的标题或标签,向用户显示。允许的长度上限为 100 个字符。

openUrlAction

object (OpenUrlAction)

要执行的操作。

actionMetadata

object (ActionMetadata)

与操作关联的元数据。

类型

可能的后续操作。

枚举
TYPE_UNSPECIFIED 未指定的操作。
VIEW_DETAILS 查看订单详情操作。
MODIFY 修改订单操作。
CANCEL 取消订单操作。
RETURN 退货订单操作。
EXCHANGE 广告交易平台订单操作。
EMAIL

电子邮件操作。EMAIL 和 CALL 类型已被弃用。openUrlAction.url 可用作电话号码或电子邮件地址。

CALL

通话操作。

REORDER 重新排序操作。
REVIEW 查看订单操作。
CUSTOMER_SERVICE 请与客户服务人员联系。
FIX_ISSUE 直接访问商家网站或应用以解决问题。
DIRECTION 路线链接。

OpenUrlAction

打开指定网址。

JSON 表示法
{
  "url": string,
  "androidApp": {
    object (AndroidApp)
  },
  "urlTypeHint": enum (UrlTypeHint)
}
字段
url

string

网址字段,可以是以下任一项:- 用于打开与应用关联的应用或网页的 http/https 网址

androidApp

object (AndroidApp)

有关 Android 应用的信息(如果网址应由 Android 应用实现)。

urlTypeHint

enum (UrlTypeHint)

表示网址类型的提示。

AndroidApp

执行方式限制的 Android 应用规范

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

string

指定 Android 执行方式时,必须指定软件包名称。

versions[]

object (VersionFilter)

如果指定了多个过滤条件,任何过滤条件匹配都将触发应用。

VersionFilter

如果需要应用的特定版本,则应添加 VersionFilter。

JSON 表示法
{
  "minVersion": integer,
  "maxVersion": integer
}
字段
minVersion

integer

最低版本代码或 0(含)。

maxVersion

integer

最高版本代码(含边界值)。考虑的范围是 [minVersion:maxVersion]。null 范围表示任何版本。示例:要指定单个版本,请使用:[target_version:target_version]。要指定任何版本,请勿指定 minVersion 和 maxVersion。如需指定 maxVersion 之前的所有版本,请勿指定 minVersion。如需指定 minVersion 中的所有版本,请勿指定 maxVersion。

UrlTypeHint

不同类型的网址提示。

枚举
URL_TYPE_HINT_UNSPECIFIED 未指定
AMP_CONTENT 直接指向 AMP 内容的网址,或指向通过 <link rel="amphtml"> 指向 AMP 内容的规范网址。

ActionMetadata

每项操作的相关元数据。

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

string (Timestamp format)

此操作的到期时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

披露

可能会向用户显示的产品、服务或政策披露信息。

JSON 表示法
{
  "title": string,
  "disclosureText": {
    object (DisclosureText)
  },
  "presentationOptions": {
    object (DisclosurePresentationOptions)
  }
}
字段
title

string

披露信息的标题。示例:“安全信息”。

disclosureText

object (DisclosureText)

披露声明的内容。允许使用网页链接。

presentationOptions

object (DisclosurePresentationOptions)

披露信息的呈现选项。

DisclosureText

表示带有网页链接的纯文本。

JSON 表示法
{
  "template": string,
  "textLinks": [
    {
      object (TextLink)
    }
  ]
}
字段
template

string

要显示的文本,包含占位符,如“{0}”和“{1}”插入每个文本链接。示例:“警告:本产品可能会接触加州已知的可致癌的化学物质。有关详情,请访问 {0}。”披露声明文字不得包含任何促销内容或类似广告的内容。

DisclosurePresentationOptions

披露信息的呈现方式。

JSON 表示法
{
  "presentationRequirement": enum (PresentationRequirement),
  "initiallyExpanded": boolean
}
字段
presentationRequirement

enum (PresentationRequirement)

披露声明的呈现要求。

initiallyExpanded

boolean

披露信息的内容一开始是否应展开。默认情况下,该窗格最初处于收起状态。

PresentationRequirement

披露信息的呈现要求。

枚举
REQUIREMENT_UNSPECIFIED 未指定的要求。不应明确设置此属性。
REQUIREMENT_OPTIONAL 您可以选择是否披露。如果设备不支持显示披露声明,则可以跳过。
REQUIREMENT_REQUIRED 您必须提供这项披露信息。如果设备不支持显示披露信息,系统会将对话内容移至手机。

PurchaseItemExtension

购买行业的订单项内容。

JSON 表示法
{
  "status": enum (PurchaseStatus),
  "userVisibleStatusLabel": string,
  "type": enum (PurchaseType),
  "productId": string,
  "quantity": integer,
  "unitMeasure": {
    object (MerchantUnitMeasure)
  },
  "returnsInfo": {
    object (PurchaseReturnsInfo)
  },
  "fulfillmentInfo": {
    object (PurchaseFulfillmentInfo)
  },
  "itemOptions": [
    {
      object (ItemOption)
    }
  ],
  "productDetails": {
    object (ProductDetails)
  },
  "extension": {
    "@type": string,
    field1: ...,
    ...
  }
}
字段
status

enum (PurchaseStatus)

必需:订单项级状态。

userVisibleStatusLabel

string

必需:状态的用户可见标签/字符串。允许的长度上限为 50 个字符。

type

enum (PurchaseType)

必填:购买交易的类型。

productId
(deprecated)

string

与此订单项关联的产品或优惠 ID。

quantity

integer

商品的数量。

unitMeasure

object (MerchantUnitMeasure)

单位度量。用于指定商品的尺寸(以所选单位为单位)。尺寸和有效价格共同用于确定单价。

returnsInfo

object (PurchaseReturnsInfo)

返回此订单项的信息。如果未设置,此订单项将沿用订单级返回的信息。

fulfillmentInfo

object (PurchaseFulfillmentInfo)

此订单项的履单信息。如果未设置,此订单项将沿用订单级履单信息。

itemOptions[]

object (ItemOption)

其他插件或子作品。

productDetails

object (ProductDetails)

商品的详细信息。

extension
(deprecated)

object

商家与 Google 之间交换的任何额外字段。注意:强烈建议您不要使用此扩展程序。根据用例/情况,请考虑以下某种方法:1.如果 PurchaseItemExtension 中的字段可用于其他用例(即通用功能),请在 PurchaseItemExtension 中定义相应字段。2. 如果 Vertical_extension 仅适用于自定义的非通用用例/功能,请使用该扩展程序。

此对象可以包含任意类型的字段。附加字段 "@type" 包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }

PurchaseStatus

与采购订单或特定订单项相关联的购买状态。

枚举
PURCHASE_STATUS_UNSPECIFIED 状态不明。
READY_FOR_PICKUP 可随时取货。
SHIPPED 已发货。
DELIVERED 已送达。
OUT_OF_STOCK 缺货。
IN_PREPARATION “IN_PREPARATION”在不同语境下可能具有不同的含义。对于食品订单,可能是正在准备食物。对于零售业,这可能是商品在包装中。
CREATED 订单已创建。
CONFIRMED 商家已确认订单。
REJECTED 商家拒绝了订单或订单项。
RETURNED 用户退回了此商品。
CANCELLED 用户取消了订单或订单项。
CHANGE_REQUESTED 用户已请求更改订单,集成商正在处理此更改。请求处理完毕后,订单应移至其他状态。

PurchaseType

购买类别。

枚举
PURCHASE_TYPE_UNSPECIFIED 未知值。
RETAIL 这包括购买实体商品等。
FOOD 包括点餐购买。
GROCERY 杂货购买。
MOBILE_RECHARGE 购买手机预付费充值。

MerchantUnitMeasure

商家价格计量单位。

JSON 表示法
{
  "measure": number,
  "unit": enum (Unit)
}
字段
measure

number

值:示例 1.2。

unit

enum (Unit)

单位:例如 POUND, GRAM。

单位

枚举
UNIT_UNSPECIFIED 未指定单位。
MILLIGRAM 毫克。
GRAM 克。
KILOGRAM 公斤。
OUNCE 盎司。
POUND 磅。

PurchaseReturnsInfo

返回与订单或特定订单项相关的信息。

JSON 表示法
{
  "isReturnable": boolean,
  "daysToReturn": integer,
  "policyUrl": string
}
字段
isReturnable

boolean

如果为 true,则允许返回。

daysToReturn

integer

指定天数内允许退货。

policyUrl

string

指向退货政策的链接。

PurchaseFulfillmentInfo

与采购订单或特定订单项关联的履单信息。

JSON 表示法
{
  "id": string,
  "fulfillmentType": enum (Type),
  "expectedFulfillmentTime": {
    object (Time)
  },
  "expectedPreparationTime": {
    object (Time)
  },
  "location": {
    object (Location)
  },
  "expireTime": string,
  "price": {
    object (PriceAttribute)
  },
  "fulfillmentContact": {
    object (UserInfo)
  },
  "shippingMethodName": string,
  "storeCode": string,
  "pickupInfo": {
    object (PickupInfo)
  }
}
字段
id

string

此服务选项的唯一标识符。

fulfillmentType

enum (Type)

必需:履单的类型。

expectedFulfillmentTime

object (Time)

如果指定了时间范围,则为窗口;如果指定了单个时间,则为 ETA。预计送货或自提时间。

expectedPreparationTime

object (Time)

如果指定了时间范围,则为窗口;如果指定了单个时间,则为 ETA。准备食物的预计时间。一次性首选。

location

object (Location)

自提或送货地点。

expireTime

string (Timestamp format)

此履单选项的过期时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

price

object (PriceAttribute)

此选项的费用。

fulfillmentContact

object (UserInfo)

此执行方式的用户联系人。

shippingMethodName

string

用户选择的配送方式名称。

storeCode

string

营业地点的商店代码。示例:沃尔玛是商家,storeCode 是履单的沃尔玛商店。https://support.google.com/business/answer/3370250?ref_topic=4596653.

pickupInfo

object (PickupInfo)

有关如何选择订单的更多信息。仅当履单类型为“PICKUP”时,此字段才适用。

类型

履单类型。

枚举
TYPE_UNSPECIFIED 未指定类型。
DELIVERY 此订单将会送达。
PICKUP 此订单需要自提。

时间

时间结构,用于表示向用户显示订单时使用的事件时间。

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

string

表示订单事件时间,例如预订时间、送货时间等。可以是持续时间(开始和结束时间),可以是日期、日期时间等。如需查看所有支持的格式,请参阅 https://en.wikipedia.org/wiki/ISO_8601

PickupInfo

有关订单取货方式的详细信息。其中包括提货类型等详细信息,以及每种类型所附的其他元数据(如果有)。

JSON 表示法
{
  "pickupType": enum (PickupType),
  "curbsideInfo": {
    object (CurbsideInfo)
  },
  "checkInInfo": [
    {
      object (CheckInInfo)
    }
  ]
}
字段
pickupType

enum (PickupType)

提货方法,例如 INSTORE、CUBSIDE 等

curbsideInfo

object (CurbsideInfo)

路边信息具体详情。如果 pickupType 不是“CURBSIDE”,将忽略此字段。

checkInInfo[]

object (CheckInInfo)

合作伙伴支持的各种方法的列表,用于支持签到。

PickupType

支持的自提类型列表。

枚举
UNSPECIFIED 未指定自提类型。
INSTORE 在餐厅内取餐。
CURBSIDE 在餐厅外的指定地点停车,有人会送餐到那里。

CurbsideInfo

有关如何进行路边下单的详细信息。

JSON 表示法
{
  "curbsideFulfillmentType": enum (CurbsideFulfillmentType),
  "userVehicle": {
    object (Vehicle)
  }
}
字段
curbsideFulfillmentType

enum (CurbsideFulfillmentType)

合作伙伴需要更多信息才能处理路边自提订单。根据所选的履单类型,系统将从用户那里收集相应的详细信息。

userVehicle

object (Vehicle)

下单用户的车辆详细信息。

CurbsideFulfillmentType

路边履单类型的可能值。

枚举
UNSPECIFIED 未指定路边履单类型。
VEHICLE_DETAIL 必须提供车辆详细信息,方便路边自提。

交通工具

车辆详细信息

JSON 表示法
{
  "make": string,
  "model": string,
  "licensePlate": string,
  "colorName": string,
  "image": {
    object (Image)
  }
}
字段
make

string

车辆品牌(例如“本田”)。此信息会向用户显示,并且必须本地化。必填。

model

string

车辆型号(例如“Grom”)。此信息会向用户显示,并且必须本地化。必填。

licensePlate

string

车牌号(例如“1ABC234”)。必填。

colorName

string

车辆颜色名称,例如黑色 可选。

image

object (Image)

指向车辆照片的网址。照片将显示约 256 x 256 像素。必须是 jpg 或 png。可选。

CheckInInfo

合作伙伴支持签入方法所需的元数据。

JSON 表示法
{
  "checkInType": enum (CheckInType)
}
字段
checkInType

enum (CheckInType)

用于发送签到说明的方法。

CheckInType

用于发送签到说明的各种方法。

枚举
CHECK_IN_TYPE_UNSPECIFIED 未知值。
EMAIL 签到信息将通过电子邮件发送。
SMS 签到信息将通过短信发送。

ItemOption

表示插件或子项。

JSON 表示法
{
  "id": string,
  "name": string,
  "prices": [
    {
      object (PriceAttribute)
    }
  ],
  "note": string,
  "quantity": integer,
  "productId": string,
  "subOptions": [
    {
      object (ItemOption)
    }
  ]
}
字段
id

string

对于属于商品的选项,应提供唯一商品 ID。

name

string

选项名称。

prices[]

object (PriceAttribute)

选项总价。

note

string

与选项相关的备注。

quantity

integer

对于作为商品的选项,则指定数量。

productId

string

与此选项关联的产品或优惠 ID。

subOptions[]

object (ItemOption)

定义其他嵌套子选项。

ProductDetails

商品的详细信息。

JSON 表示法
{
  "productId": string,
  "gtin": string,
  "plu": string,
  "productType": string,
  "productAttributes": {
    string: string,
    ...
  }
}
字段
productId

string

与此订单项关联的产品或优惠 ID。

gtin

string

商品的全球贸易项目代码。如果 Merchant Center 中不存在 offerId,此对象会很有用。可选。

plu

string

价格查询代码(通常称为 PLU 代码、PLU 编号、PLU、农产品代码或农产品标签)是一个数字体系,用于唯一地标识杂货店和超市出售的批发产品。

productType

string

商家定义的商品类别。例如:“首页 >杂货 >乳制品和鸡蛋 >牛奶 >全脂牛奶”

productAttributes

map (key: string, value: string)

商家提供的商品详细信息,例如{ &quot;allergen&quot;: &quot;peanut&quot;}。如果 Merchant Center 中不存在 offerId,此对象会很有用。可选。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

ReservationItemExtension

餐馆、理发等预订订单的订单项内容。

JSON 表示法
{
  "status": enum (ReservationStatus),
  "userVisibleStatusLabel": string,
  "type": enum (ReservationType),
  "reservationTime": {
    object (Time)
  },
  "userAcceptableTimeRange": {
    object (Time)
  },
  "confirmationCode": string,
  "partySize": integer,
  "staffFacilitators": [
    {
      object (StaffFacilitator)
    }
  ],
  "location": {
    object (Location)
  }
}
字段
status

enum (ReservationStatus)

必需:预留状态。

userVisibleStatusLabel

string

必需:状态的用户可见标签/字符串。允许的长度上限为 50 个字符。

type

enum (ReservationType)

预留的类型。如果所有类型选项均不适用,则可以未设置。

reservationTime

object (Time)

服务/事件预定发生的时间。可以是时间范围、日期或确切日期和时间。

userAcceptableTimeRange

object (Time)

用户接受的时间范围。

confirmationCode

string

此预订的确认码。

partySize

integer

人数。

staffFacilitators[]

object (StaffFacilitator)

将负责为预订提供服务的教员。例如:发型师

location

object (Location)

服务/事件的位置。

ReservationStatus

预留的状态。

枚举
RESERVATION_STATUS_UNSPECIFIED 未指定状态。
PENDING 预留正在等待处理。
CONFIRMED 预订已确认。
CANCELLED 用户取消了预订。
FULFILLED 预留已完成。
CHANGE_REQUESTED 已请求更改预留
REJECTED 预订已过期或被集成商拒绝。

ReservationType

预留的类型。

枚举
RESERVATION_TYPE_UNSPECIFIED 未指定类型。
RESTAURANT 预订餐厅。
HAIRDRESSER 理发师预订。

StaffFacilitator

服务人员的相关信息。

JSON 表示法
{
  "name": string,
  "image": {
    object (Image)
  }
}
字段
name

string

教职员的姓名。例如:“张三”

image

object (Image)

表演者的图片。

PaymentData

与订单相关的付款数据。

JSON 表示法
{
  "paymentResult": {
    object (PaymentResult)
  },
  "paymentInfo": {
    object (PaymentInfo)
  }
}
字段
paymentResult

object (PaymentResult)

集成商用于完成交易的付款结果。如果结账体验由 Actions-on-Google 管理,则 Actions on Google 会填充此字段。

paymentInfo

object (PaymentInfo)

与订单相关的付款信息,便于进行用户互动。

PaymentResult

集成商用于完成交易的付款结果。

JSON 表示法
{

  // Union field result can be only one of the following:
  "googlePaymentData": string,
  "merchantPaymentMethodId": string
  // End of list of possible types for union field result.
}
字段
联合字段 result。提供的是 Google 付款数据或商家付款方式。result 只能是下列其中一项:
googlePaymentData

string

Google 提供的付款方式数据。如果您的付款处理方被列为 Google 支持的付款处理方,请访问:https://developers.google.com/pay/api/。通过链接前往您的付款处理方,可了解详情。否则,请参阅以下文档了解载荷详情。https://developers.google.com/pay/api/payment-data-cryptography

merchantPaymentMethodId

string

用户选择的商家/操作提供的付款方式。

PaymentInfo

与正在下单有关的付款信息。此 proto 可捕获对用户的互动有用的信息。

JSON 表示法
{
  "paymentMethodDisplayInfo": {
    object (PaymentMethodDisplayInfo)
  },
  "paymentMethodProvenance": enum (PaymentMethodProvenance)
}
字段
paymentMethodDisplayInfo

object (PaymentMethodDisplayInfo)

交易所用付款方式的显示信息。

paymentMethodProvenance

enum (PaymentMethodProvenance)

交易所用付款方式的出处。用户可能向 Google 和商家注册了同一付款方式。

PaymentMethodDisplayInfo

集成商用于完成交易的付款结果。

JSON 表示法
{
  "paymentType": enum (PaymentType),
  "paymentMethodDisplayName": string,
  "paymentMethodVoiceName": string
}
字段
paymentType

enum (PaymentType)

付款的类型。

paymentMethodDisplayName

string

向用户显示的付款方式名称。例如:VISA **** 1234 支票账户 **** 5678

paymentMethodVoiceName

string

对于仅支持语音助理的设备,将向用户显示的付款方式名称。例如,“尾号为一二三四的签证”或“尾号为五六七八的支票账户”。注意:这是语音优化字符串,用于替代纯语音助理设备的 paymentMethodDisplayName。如果未设置此字符串,系统会改为向用户读出 paymentMethodDisplayName。

PaymentType

PaymentType 表示商家提供的付款方式使用的付款方式。操作还必须提供付款方式的显示名称。

枚举
PAYMENT_TYPE_UNSPECIFIED 未指定的付款类型。
PAYMENT_CARD 信用卡/借记卡或预付卡。
BANK 付款方式是银行账户。
LOYALTY_PROGRAM 付款方式属于会员回馈活动。
CASH 付款方式为现金。
GIFT_CARD 付款方式是礼品卡。
WALLET 第三方钱包,例如 PayPal

PaymentMethodProvenance

表示用于交易的付款方式出处。

枚举
PAYMENT_METHOD_PROVENANCE_UNSPECIFIED 未指定出处。
PAYMENT_METHOD_PROVENANCE_GOOGLE 出处是 Google。
PAYMENT_METHOD_PROVENANCE_MERCHANT 出处属于商家。

促销

添加到购物车的促销活动/优惠。

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

string

必填:适用于此优惠的优惠券代码。

PurchaseOrderExtension

适用于购买行业的附加订单信息。这些属性适用于订单内的所有订单项,除非它们在订单项中被覆盖。

JSON 表示法
{
  "status": enum (PurchaseStatus),
  "userVisibleStatusLabel": string,
  "type": enum (PurchaseType),
  "returnsInfo": {
    object (PurchaseReturnsInfo)
  },
  "fulfillmentInfo": {
    object (PurchaseFulfillmentInfo)
  },
  "purchaseLocationType": enum (PurchaseLocationType),
  "errors": [
    {
      object (PurchaseError)
    }
  ],
  "extension": {
    "@type": string,
    field1: ...,
    ...
  }
}
字段
status

enum (PurchaseStatus)

必需:订单的总体状态。

userVisibleStatusLabel

string

用户可见的状态标签/字符串。允许的长度上限为 50 个字符。

type

enum (PurchaseType)

必填:购买交易的类型。

returnsInfo

object (PurchaseReturnsInfo)

订单的退货信息。

fulfillmentInfo

object (PurchaseFulfillmentInfo)

订单的履单信息。

purchaseLocationType

enum (PurchaseLocationType)

购买地点(实体店内 / 在线)

errors[]

object (PurchaseError)

可选:此订单因而导致此订单被拒的错误。

extension
(deprecated)

object

商家与 Google 之间交换的任何额外字段。注意:强烈建议您不要使用此扩展程序。根据用例/情况,请考虑以下某种方法:1.如果 PurchaseOrderExtension 中的字段可用于其他用例(即通用功能),请定义 PurchaseOrderExtension 中的字段。2. 如果 Vertical_extension 仅适用于自定义的非通用用例/功能,请使用该扩展程序。

此对象可以包含任意类型的字段。附加字段 "@type" 包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }

PurchaseLocationType

购买的地理位置类型。

枚举
UNSPECIFIED_LOCATION 未知值。
ONLINE_PURCHASE 所有在线购买交易。
INSTORE_PURCHASE 所有实体店内购买。

PurchaseError

采购订单可能被拒绝的错误。

JSON 表示法
{
  "type": enum (ErrorType),
  "description": string,
  "entityId": string,
  "updatedPrice": {
    object (PriceAttribute)
  },
  "availableQuantity": integer
}
字段
type

enum (ErrorType)

必需:表示订单被商家拒绝的详细原因。

description

string

更多错误说明。

entityId

string

与错误对应的实体 ID。例如,它可对应于 LineItemId / ItemOptionId。

updatedPrice

object (PriceAttribute)

在出现 PRICE_CHANGED / INORRECT_PRICE 错误类型时相关。

availableQuantity

integer

现货数量。在 AVAILABILITY_CHANGED 的情况下适用。

ErrorType

可能的错误类型。

枚举
ERROR_TYPE_UNSPECIFIED 未知错误
NOT_FOUND 找不到实体,实体可能是 Item、FulfillmentOption 和 Promotion。必须提供实体 ID。
INVALID 实体数据无效。可以是 Item、FulfillmentOption 和 Promotion。必须提供实体 ID。
AVAILABILITY_CHANGED 商品不可用,或商品数量不足,无法完成此请求。必须提供实体 ID。
PRICE_CHANGED 商品价格与商品实体中的价格不同。必须提供实体 ID 和更新后的价格。
INCORRECT_PRICE 费用中的价格错误总计。必须提供实体 ID 和更新后的价格。
REQUIREMENTS_NOT_MET 未满足接受订单的限制 - 最小购物车金额等。
TOO_LATE FulfillmentOption 已过期。
NO_CAPACITY 没有可用的服务容量。如果更精细的错误类型均不适用,请使用此错误代码。
NO_COURIER_AVAILABLE 找不到快递公司。一种精细的错误类型,可以归类为 NO_CAPACITY。
INELIGIBLE 用户不符合下单条件(已列入黑名单)。
OUT_OF_SERVICE_AREA 因边界规定等原因,无法配送至要求的地址。
CLOSED 该餐馆在点餐时已打烊。
PROMO_NOT_APPLICABLE 通用错误代码,用于捕获所有无法应用促销代码的情况(如果以下任何一项均不适用)。添加促销代码作为实体 ID。
PROMO_NOT_RECOGNIZED 合作伙伴无法识别优惠券代码。添加促销代码作为实体 ID。
PROMO_EXPIRED 促销活动已过期,因此无法应用。添加促销代码作为实体 ID。
PROMO_USER_INELIGIBLE 当前用户不符合条件,无法使用此优惠券。添加促销代码作为实体 ID。
PROMO_ORDER_INELIGIBLE 当前订单无法使用此优惠券。添加促销代码作为实体 ID。
UNAVAILABLE_SLOT 提前订餐空档不可用。
FAILED_PRECONDITION 未满足接受订单的限制 - 最小购物车金额等。
PAYMENT_DECLINED 付款无效。
MERCHANT_UNREACHABLE 无法联系到商家。当合作伙伴是集合商家而无法覆盖商家时,这会很有用。
ACCOUNT_LINKING_FAILED 商家尝试将用户 Google 账号与其系统中的账号相关联,但在此过程中遇到了错误。

TicketOrderExtension

为电影、体育赛事等票务订单订购内容。

JSON 表示法
{
  "ticketEvent": {
    object (TicketEvent)
  }
}
字段
ticketEvent

object (TicketEvent)

应用于所有订单项门票的活动。

TicketEvent

表示单个事件。

JSON 表示法
{
  "type": enum (Type),
  "name": string,
  "description": string,
  "url": string,
  "location": {
    object (Location)
  },
  "eventCharacters": [
    {
      object (EventCharacter)
    }
  ],
  "startDate": {
    object (Time)
  },
  "endDate": {
    object (Time)
  },
  "doorTime": {
    object (Time)
  }
}
字段
type

enum (Type)

必填:门票活动的类型,例如电影,音乐会

name

string

必填:活动名称。例如,如果活动为电影,则此值应为电影名称。

description

string

活动说明。

url

string

指向活动信息的网址。

location

object (Location)

活动进行的地点或组织所在的地点。

eventCharacters[]

object (EventCharacter)

与此事件相关的字符。它可以是电影活动的导演或演员,或音乐会的表演者等。

startDate

object (Time)

开始时间。

endDate

object (Time)

结束时间。

doorTime

object (Time)

进入时间,可能不同于活动开始时间。例如活动于上午 9 点开始,但入场时间是上午 8:30。

类型

事件的类型。

枚举
EVENT_TYPE_UNKNOWN 事件类型未知。
MOVIE 影片。
CONCERT 音乐会。
SPORTS 体育。

EventCharacter

一个事件字符,例如组织者、表演者等

JSON 表示法
{
  "type": enum (Type),
  "name": string,
  "image": {
    object (Image)
  }
}
字段
type

enum (Type)

事件字符的类型,例如演员或导演。

name

string

字符的名称。

image

object (Image)

角色的图片。

类型

字符类型。

枚举
TYPE_UNKNOWN 未知类型。
ACTOR 演员。
PERFORMER 表演者。
DIRECTOR 主管。
ORGANIZER 组织者。

UserNotification

作为订单更新的一部分显示的可选用户通知。

JSON 表示法
{
  "title": string,
  "text": string
}
字段
title

string

用户通知的标题。允许的长度上限为 30 个字符。

text

string

通知的内容。允许的长度上限为 100 个字符。

NextScene

表示接下来要执行的场景。

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

string

接下来要执行的场景的名称。

会话

包含当前对话会话的相关信息

JSON 表示法
{
  "id": string,
  "params": {
    string: value,
    ...
  },
  "typeOverrides": [
    {
      object (TypeOverride)
    }
  ],
  "languageCode": string
}
字段
id

string

必需。当前对话会话的全局唯一 ID。此字段为只读字段。

params

map (key: string, value: value (Value format))

必需。会话期间从表单和意图收集的所有参数的列表。key 为参数名称。此处定义的参数将与会话中定义的参数合并。值为 null 的参数将从会话中移除。请参阅会话存储文档:https://developers.google.com/assistant/conversational/storage-session

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

typeOverrides[]

object (TypeOverride)

可选。类型范围限定为会话。会话类型定义可以补充或替换现有类型。类型名称必须是唯一的。

languageCode

string

当前对话会话的语言。遵循 IETF BCP-47 语言代码 http://www.rfc-editor.org/rfc/bcp/bcp47.txt。如果操作使用多语言功能,则可能与用户语言区域不同。例如,如果设置了 Handler_response.expected.language_code,则该脚本会更改所有后续回合的对话语言,这将反映在此字段中。

TypeOverride

表示类型的替换。

JSON 表示法
{
  "name": string,
  "mode": enum (TypeOverrideMode),
  "synonym": {
    object (SynonymType)
  }
}
字段
name

string

必需。要补充或替换的类型的名称。

mode

enum (TypeOverrideMode)

必需。此类型应如何与其他类型值合并。

synonym

object (SynonymType)

TypeOverrideMode

会话实体类型的修改类型。

枚举
TYPE_UNSPECIFIED 未指定。不应使用此值。
TYPE_REPLACE 此响应中的类型定义将替换之前定义的类型定义。
TYPE_MERGE 此响应中的类型定义将与之前定义的类型定义合并。新的类型定义将覆盖现有的类型定义。

SynonymType

表示具有同义词的类型。

JSON 表示法
{
  "entries": [
    {
      object (Entry)
    }
  ]
}
字段
entries[]

object (Entry)

必需。同义词类型的条目列表。

条目

表示同义词类型的条目。

JSON 表示法
{
  "name": string,
  "synonyms": [
    string
  ],
  "display": {
    object (EntryDisplay)
  }
}
字段
name

string

必需。条目名称(例如“bicycle”)。此字段中的条目必须包含在重复的同义词字段中,才能识别为有效的类型值。

synonyms[]

string

必需。条目的同义词列表(例如“bike”和“cycle”)。

display

object (EntryDisplay)

可选。商品显示的信息。

EntryDisplay

JSON 表示法
{
  "title": string,
  "description": string,
  "image": {
    object (Image)
  },
  "footer": string,
  "openUrl": {
    object (OpenUrl)
  }
}
字段
title

string

必需。商品的标题。用户点按后,这些文字会一字不差地重新发布到对话中,就如同用户已经输入了一样。每个标题在一组集合项中必须是唯一的。

description

string

可选。卡片的正文。

image

object (Image)

可选。要显示的图像。

footer

string

可选。浏览集合项的页脚文本,显示在说明下方。一行文本,用省略号截断。

openUrl

object (OpenUrl)

与浏览轮播项相关联的文档的网址。浏览轮播界面时必填。

用户

表示向 Action 发出请求的用户。

JSON 表示法
{
  "locale": string,
  "params": {
    string: value,
    ...
  },
  "accountLinkingStatus": enum (AccountLinkingStatus),
  "verificationStatus": enum (UserVerificationStatus),
  "lastSeenTime": string,
  "engagement": {
    object (Engagement)
  },
  "packageEntitlements": [
    {
      object (PackageEntitlements)
    }
  ],
  "permissions": [
    enum (Permission)
  ]
}
字段
locale

string

发出请求的用户的主要语言区域设置。遵循 IETF BCP-47 语言代码 http://www.rfc-editor.org/rfc/bcp/bcp47.txt。但不包含脚本子标记。

params

map (key: string, value: value (Value format))

可选。与当前用户关联的所有参数的列表。请参阅用户存储空间文档:https://developers.google.com/assistant/conversational/storage-user

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

accountLinkingStatus

enum (AccountLinkingStatus)

用户账号是否已关联到应用。

verificationStatus

enum (UserVerificationStatus)

指明用户的验证状态。

lastSeenTime

string (Timestamp format)

上次与此用户互动的时间戳。如果用户之前未与代理互动过,此字段会被省略。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

engagement

object (Engagement)

当前用户的互动度,包括对 intent 的任何订阅。

packageEntitlements[]

object (PackageEntitlements)

与当前操作关联的 Android 软件包相关的用户权限。

permissions[]

enum (Permission)

包含用户向此操作授予的权限。

AccountLinkingStatus

指明最终用户是否已将其账号与此应用相关联。请参阅账号关联文档:https://developers.google.com/assistant/identity

枚举
ACCOUNT_LINKING_STATUS_UNSPECIFIED 未知。
NOT_LINKED 用户尚未将其账号与此应用相关联。
LINKED 用户已将其账号关联到此应用。

UserVerificationStatus

指明 Google 是否已验证用户。“VERIFIED”状态表示您可以使用 params 字段或通过账号关联保存各会话中的数据。

枚举
USER_VERIFICATION_STATUS_UNSPECIFIED 未知。
GUEST 访客用户。
VERIFIED 已验证用户。

互动

提供有关当前用户已注册了哪些互动机制的其他只读信息。例如,了解用户已订阅的 intent 有助于避免让用户再次订阅同一个 intent。也就是说,此信息可用于有条件地路由到场景,以便仅在用户尚未订阅的情况下设置 DailyUpdates 或 PushNotifications。请参阅与用户互动相关的文档:https://developers.google.com/assistant/engagement

JSON 表示法
{
  "pushNotificationIntents": [
    {
      object (IntentSubscription)
    }
  ],
  "dailyUpdateIntents": [
    {
      object (IntentSubscription)
    }
  ]
}
字段
pushNotificationIntents[]

object (IntentSubscription)

包含用户已启用推送通知的 intent 的列表。

dailyUpdateIntents[]

object (IntentSubscription)

包含用户已启用每日更新的意图列表。

IntentSubscription

描述现有的 IntentSubscription。

JSON 表示法
{
  "intent": string,
  "contentTitle": string
}
字段
intent

string

所订阅的 intent 的名称。

contentTitle

string

订阅的简短说明。当 Google 助理向用户请求权限时,它会用作通知的标签。

PackageEntitlements

与软件包名称相关的用户权限列表。请参阅数字商品交易文档:https://developers.google.com/assistant/transactions/digital/dev-guide-digital-non-consumables

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

string

在操作软件包中指定的 Android 软件包名称。

entitlements[]

object (Entitlement)

用户对给定套餐的使用权。

使用权

定义用户的数字使用权。

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

string

产品 SKU。付费应用的软件包名称,用于应用内购买和应用内订阅的 Finsky docid 后缀。与 Play InApp Billing API 中的 getSku() 匹配。请参阅 Play 应用内结算文档:https://developer.android.com/google/play/billing

skuType

enum (SkuType)

SKU 的类型。

inAppDetails

object (SignedData)

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

SkuType

枚举
SKU_TYPE_UNSPECIFIED
IN_APP 应用内购买
SUBSCRIPTION 订阅
APP 付费应用

SignedData

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

object (Struct format)

包含 JSON 格式的所有应用内购买数据。如需了解详情,请参阅 https://developer.android.com/google/play/billing/billing_reference.html 的表 6。

inAppDataSignature

string

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

权限

可能的权限值。

枚举
PERMISSION_UNSPECIFIED 未指定的权限。
DEVICE_PRECISE_LOCATION 询问用户的确切位置、纬度/经度和采用特定格式的地址。
DEVICE_COARSE_LOCATION 询问用户的粗略位置、邮政编码、城市和国家/地区代码。
UPDATE 请求权限以发送更新。请访问 https://developers.google.com/assistant/engagement/daily

首页

表示用户目标设备所属的 HomeGraph 结构。

JSON 表示法
{
  "params": {
    string: value,
    ...
  }
}
字段
params

map (key: string, value: value (Value format))

可选。与目标设备所属的 HomeGraph 结构相关联的参数的列表。请参阅主存储空间文档:https://developers.google.com/assistant/conversational/storage-home

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

设备

表示用户用于向 Action 发出请求的设备。

JSON 表示法
{
  "capabilities": [
    enum (Capability)
  ],
  "currentLocation": {
    object (Location)
  },
  "timeZone": {
    object (TimeZone)
  }
}
字段
capabilities[]

enum (Capability)

必填。向 Action 发出请求的设备的功能。

currentLocation

object (Location)

可选。用户的设备位置信息。请注意,只有在最终用户授予位置信息权限后,系统才会填充此字段。如需详细了解哪些字段根据粗略和细粒度权限进行设置,请参阅位置消息。请参阅权限文档:https://developers.google.com/assistant/conversational/permissions

timeZone

object (TimeZone)

可选。与客户端设备关联的时区。它可用于解析日期时间值。

能力

请求时设备 Surface 支持的功能。

枚举
UNSPECIFIED 未指定的设备功能。
SPEECH 设备可以通过文字转语音或 SSML 向用户发出语音提示。
RICH_RESPONSE 设备可以显示丰富的响应,如卡片、列表和表格。
LONG_FORM_AUDIO 设备可以播放长音频媒体,例如音乐和播客。
INTERACTIVE_CANVAS 设备可以显示交互式画布响应。
HOME_STORAGE 设备可以支持保存和获取家庭存储空间。

位置

表示位置的容器。

JSON 表示法
{
  "coordinates": {
    object (LatLng)
  },
  "postalAddress": {
    object (PostalAddress)
  }
}
字段
coordinates

object (LatLng)

地理坐标。需要 [DEVICE_PRECISE_LOCATION] 权限。

postalAddress

object (PostalAddress)

邮寄地址。需要 [DEVICE_PRECISE_LOCATION] 或 [DEVICE_COARSE_LOCATION] 权限。授予粗略位置信息权限后,系统仅会发送“postalCode”和“locality”字段。确切位置权限将填充其他字段,例如“administrativeArea”“addressLines”和“addressLines”。

TimeZone

表示 IANA 时区数据库中的时区。

JSON 表示法
{
  "id": string,
  "version": string
}
字段
id

string

IANA 时区数据库中的时区,例如“America/New_York”。

version

string

可选。IANA 时区数据库版本号,例如“2019a”。

上下文

在用户进行查询时包含上下文信息。此类上下文包括但不限于有关活跃媒体会话、画布 Web 应用状态的信息等。

JSON 表示法
{
  "media": {
    object (MediaContext)
  },
  "canvas": {
    object (CanvasContext)
  }
}
字段
media

object (MediaContext)

包含有关当前活跃媒体会话的上下文信息。

canvas

object (CanvasContext)

包含有关当前画布的上下文信息。

MediaContext

包含有关当前活跃媒体会话的上下文信息。

JSON 表示法
{
  "progress": string,
  "index": integer
}
字段
progress

string (Duration format)

当前有效媒体文件的媒体播放进度。

该持续时间以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

index

integer

媒体响应中媒体文件列表中当前活动媒体文件的索引(从 0 开始)。

CanvasContext

包含有关当前画布的上下文信息。

JSON 表示法
{
  "state": value
}
字段
state

value (Value format)

可选。状态由第三方 Interactive Canvas 应用设置。这仅适用于请求,而不适用于响应。例如,如果这是一个食谱应用,则状态可以是 struct 值:{ "current_page": 5, "last_page": 3, } 文件大小上限为 50KB。

预计

说明对下一轮对话的预期。

JSON 表示法
{
  "speech": [
    string
  ]
}
字段
speech[]

string

Action 希望从用户话语中返回的短语列表,用于实现语音纠偏。最多可以输入 1,000 个词组。注意:此字段与 v2 API 中的 预期 Input.speech_biasing_hints 相同。