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 处理程序。使用处理程序名称确定应在 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

必需。上次匹配的 intent 的名称。

params

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

必需。表示作为 intent 匹配的一部分标识的参数。这是已识别的形参的名称与从用户输入中识别出的参数值的映射。在匹配的意图中定义并且已被识别的所有参数都将在此处显示。

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

query

string

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

IntentParameterValue

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

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

string

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

resolved

value (Value format)

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

场景

表示场景。场景可以调用执行方式、添加提示,以及向用户收集槽值。场景由事件或 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)

可选。系统会在需要填充所需槽位时向用户发送此提示。此提示会覆盖控制台中定义的现有提示。此字段不包含在 webhook 请求中。

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”,系统还会向简单提示、建议提示和 Canvas 提示(内容提示的一部分)中的某些字段附加内容。如果提示中已定义内容消息和链接消息,则一律会被覆盖。默认值为“false”。

firstSimple

object (Simple)

可选。第一条语音和纯文本响应。

content

object (Content)

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

lastSimple

object (Simple)

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

suggestions[]

object (Suggestion)

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

canvas

object (Canvas)

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

orderUpdate

object (OrderUpdate)

可选操作在交易流程中收到订单后返回 OrderUpdate 进行响应。收到该订单后,Google 会记录对订单的这项更新,如果更新成功,则会在显示设备上显示一张收据卡片以及 TTS 信息。

简单

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

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

string

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

text

string

在聊天气泡中显示的可选文本。如果未指定,将使用上述语音字段的显示渲染。上限为 640 个字符。如果包含的提示中的“override”字段为“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 功能的 surface 上,您可以将用户指向包含更多数据的网页。

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 个单元格一定会显示,但其他单元格可能在某些表面上被裁剪掉。请使用模拟器进行测试,了解给定界面将会显示哪些单元格。

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)

此媒体响应会话可以支持的可选媒体控件类型。如果设置此参数,当特定媒体事件发生时,系统会向第三方发出请求。如果未设置,第三方仍必须处理两种默认控件类型: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。
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 数据。如果包含的提示中的“override”字段为“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. 如果作为 updateMask 的一部分提供,则 order.create_time、order.google_order_id 和 order.merchant_order_id 将被忽略。

这是以逗号分隔的完全限定字段名称列表。示例:"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 可以设置为提供的 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)

用户的电话号码。

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

除了被定义为最长长度为 40 位的一系列数字之外,扩展项在 ITU 建议中并未标准化。此处将它定义为一个字符串,以适应可能在扩展名中使用前导零的情况(组织可以自由使用,因为没有定义任何标准)。除数字外,一些其他拨号字符可能会存储在此处,例如“,”(表示等待)。例如,在 xxx-xxx-xxxx ext. 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

商家的名称,例如“Panera Bread”。

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

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

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

有关输入/修改地址的建议:- 使用国际化地址微件,例如 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

订单或订单项的价格属性。

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(含 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}”。示例:“警告:本产品可让您接触加州政府已知会导致癌症的化学物质。有关更多信息,请访问 <ph type="x-smartling-placeholder">{0}</ph>。"此披露文字不得包含任何促销内容或与广告类似的内容。

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”在不同的上下文中可能有不同的含义。对于 FOOD 订单,可能是“正在准备食物”。对于零售业,这可能是商品正在包装。
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。示例:Walmart 是商家,storeCode 是履单的 Walmart 商店。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)

提货方式,例如到店、路边自提等。

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)

车辆照片的网址。照片将以约 256x256 像素显示。必须是 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)

商家提供的商品详细信息,例如 { "allergen": "peanut" }。如果 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 找不到实体,可能是商品、FulfillmentOption、Promotion。必须提供实体 ID。
INVALID 实体数据无效,可能是商品、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。如果操作使用多语言功能,该语言区域可能与用户语言区域不同。例如,设置 handle_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”状态表示您可以使用参数字段或通过帐号关联保存各对话的数据。

枚举
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)

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

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

Action 软件包中指定的 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”。

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

针对语音自定义调整,操作期望用户话语中的短语列表。最多允许 1000 个词组。注意:此字段与 v2 API 中 EstimatedInput.speech_biasing_hints 的含义相同。