as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
开发
测试
应用发布
盈利
用户参与
设备规格
资源

API参考概述 (VSK Echo Show)

API参考概述 (VSK Echo Show)

视频技能指令从Alexa发送到您的Lambda函数。指令是JSON消息,包含有关执行特定操作(例如获取视频的元数据)的指示。有各种具有不同名称和有效载荷的指令。您的Lambda函数必须处理传入的指令并返回符合预期JSON的响应。总体而言,基本模型是从Alexa发送的请求(以JSON格式)(该请求称为指令)和由您的Lambda发送的响应(也采用JSON格式)。输入JSON,输出JSON。

多模式设备上支持的表述

简介中所述,多模式设备支持以下表述:

  • 搜索: 用户可以使用VideoNameActorNameGenreName等条件进行搜索,方法是向内容提供方查询要显示的内容。
  • 浏览: 用户可以在设备上浏览播放列表、视频库、录像等。
  • 分页: 用户可以转到下一页的搜索结果,也可以滚动到屏幕上可查看的搜索结果之外。
  • 频道导航: 用户可以为用户播放直播流或频道录像。
  • 从搜索结果中播放: 用户可以播放设备上显示的搜索结果中的视频。用户可以使用语音进行播放,也可以直接点击屏幕上的某个项目来播放。
  • 推荐: 用户可以通过明确询问推荐来搜索推荐。
  • 登陆页面: 用户可以访问您的内容的登陆页面(类似于应用主屏幕)。Alexa提供了一个登录页面模板,该模板由您的响应填充。

Alexa发送的指令

当用户说出任何支持的表述时,Alexa会将这些表述转换为指令,并将这些指令发送给您的Lambda函数。用户为浏览、搜索、频道切换、快速播放、推荐等而说出的表述可能会使用类似的指令(以不同的方式填充)。

尽管有各种各样的表述和场景,但Lambda必须响应的指令却很少。因此,当您为多模式设备编写Lambda代码时,请着重处理下表中列出的六条指令。

指令 描述
GetPlayableItems 当用户请求在设备上播放视频时,Alexa会发送此指令。您可以根据指令中的条件搜索内容,并返回与请求对应的视频的实体ID。您的Lambda的响应应当倾向于用户有权通过订阅(如果适用)播放的视频。如果没有适用于该请求的视频,则应返回相应的错误响应代码。 
GetPlayableItems(频道导航) 当用户请求进入特定频道时,Alexa会发送此指令。当视图切换到频道时,频道中的内容开始播放。 
GetPlayableItemsMetadata Alexa发送此指令是为了获取您之前通过GetPlayableItems为一组实体ID返回的结果的额外元数据。元数据包含播放视频以及向用户呈现适当提示所需的信息。 
GetDisplayableItems 当用户请求在设备上搜索视频和查看结果时,Alexa会发送此指令。您可以根据指令中的条件搜索内容,并返回与搜索请求对应的视频的实体ID。如果找不到请求的内容,则应返回相应的错误响应。
GetDisplayableItemsMetadata Alexa发送此指令是为了获取您之前通过GetDisplayableItems为一组实体ID返回的结果的额外元数据。元数据包含Alexa在设备上将实体ID显示为搜索结果所需的信息。 
GetBrowseNodeItems Alexa发送此指令以在搜索结果中获取分组内容。多模式设备上的搜索结果可以合并到具有多层的浏览节点中。用户可以通过单击这些分组结果项来选择向下钻取这些分组的结果项,以查看该分组下的更多结果。您的Lambda对GetBrowseNodeItems指令的响应应当返回属于请求中指定组的项目。
GetNextPage 当用户尝试通过滚动在屏幕上查看比屏幕上当前所显示结果更多的结果时,Alexa会发送此指令。调用此指令是为了在获取了更多结果的元数据时,动态获取这些结果以显示在屏幕上。 

预期的Lambda响应

当Alexa向您的Lambda发送之前描述的指令(JSON消息)之一时,您的Lambda必须使用一条JSON消息进行响应,该消息提供所需的信息(通常是内容ID),并且符合预期响应字段和架构。下图显示了Alexa指令和预期的Lambda响应。

GetPlayableItems指令和Lambda GetPlayableItemsResponse
GetPlayableItemsMetadataItems指令和Lambda GetPlayableItemsMetadataResponse
GetDisplayableItems指令和Lambda GetDisplayableItemsResponse
GetDisplayableItemsMetadata指令和Lambda GetDisplayableItemsMetadataResponse
GetBrowseNodeItems指令和Lambda GetBrowseNodeItemsResponse
GetNextPage指令和Lambda GetNextPageResponse

与Fire TV指令的比较

实现Fire TV的视频技能工具包还涉及解释和回应Alexa的指令,如指令和响应 (VSK FTV) 中所述。这些指令与用于多模式设备的指令不同,但它们相似:

但是,请注意由于基本的交互模型不同,多模式设备针对每个播放和搜索表述类型拥有两个指令(GetPlayableItemsGetPlayableItemsMetadata,以及GetDisplayableItemsGetDisplayableItemsMetadata)。对于多模式设备,您的Lambda会在响应中将信息反馈给Alexa。对于Fire TV应用,您的Lambda通过Amazon Device Messaging将所需信息直接推送到您的应用。

术语—请求与指令

在此处的视频技能文档中,术语“请求”和“指令”几乎完全是同义词。对于Alexa发送到您的Lambda的任何消息,请求是一个更笼统的术语。对于视频技能,这些消息在代码中被标记为指令,因此我们将这些请求称为“指令”。 这与其他Alexa技能工具包文档中使用的术语一致。

此外,术语“指令”在用于用户的表述(例如播放电影的请求)和用于Alexa发送到您的Lambda的信息时存在一些区别。