基于Alexa技能开发人员参考的目录管理API

问题描述 投票:0回答:1

This doc说:“通过基于引用的目录管理API,您可以创建引用外部数据源的自定义插槽类型,以获取插槽类型值。该API允许您创建和维护插槽类型值的目录不依赖您的Alexa技能。”

但是,当您深入研究它时,它并没有提供一些有关如何在诸如s3的端点上实际设置目录的必要详细信息。

虽然在此this resource中提供了similar question作为答案,但它实际上是指内容目录(例如音乐播放列表),而不是基于参考的目录管理API,因此我认为这是错误的,因此不适用。

因此,对于基于参考的目录管理API:文档说它必须为JSON格式,并提供ingredients.json作为示例。但是我直接使用了它,但是失败了(见下文)。同样,它也没有描述包含同义词的格式。请对此进行描述。

我可以使用'/ v1 / skills / api / custom / interactionModel / catalogs /'成功创建目录,并获得一个catalogId作为回报。但是,通过'/ skills / api / custom / interactionModel / catalogs / {catalogId} / versions'创建目录版本失败。发出POST时出现“网站暂时不可用”的消息。

这是该帖子中包含的请求正文结构:

data: {

  "source": {

      "type": "URL",

      "url": "https://s3.amazonaws.com/..../ingredients.json"

  },

  "description": "test S3 bucket"

}

而且,是否必须将S3端点公开?我尝试了两种方式,似乎都没有关系。如果确实必须公开,那么您如何处理安全性?

感谢您的帮助。

alexa-skills-kit
1个回答
0
投票
虽然API调用失败,但确实使用CLI方法使它正常工作。

ask api create-model-catalog-version -c {catalogID} -f {filename}

文件应为具有以下结构的JSON:

{ "type": "URL", "url": "[your catalog url]" }

[如何使API方法正常工作仍然是一个悬而未决的问题,因此感谢所有答案。也许这是一个错误,因为我在API调用的数据结构中指定了与CLI命令使用的JSON文件中完全相同的“源”定义。

这是我在使用CLI时学到的东西:

是,必须将S3端点公开,以使create-model-catalog-version作业成功。这使我感到不安,希望看到能够在这些端点周围包装一些安全性的功能。

这里是您要使用的JSON格式,包括使用同义词,官方Amazon example中未描述。请注意,您不必包含该示例中所示的ID。

{ "values": [ { "name": { "value": "hair salon", "synonyms": [ "hairdresser", "beauty parlor" ] } }, { "name": { "value": "hospital", "synonyms": [ "emergency room", "clinic" ] } }, ] }

© www.soinside.com 2019 - 2024. All rights reserved.