使用Node.js SDK创建自定义响应对象

使用Node.js SDK创建自定义响应对象,node.js,amazon-s3,alexa-skills-kit,Node.js,Amazon S3,Alexa Skills Kit,我正在为Echo Show学习node.js SDK的技能。我想使用VideoApp功能()根据从用户那里获取的信息显示视频。我在S3中有视频,构建了指令和整个响应对象,并称为“响应就绪”,如下所示: 我希望Echo Show使用我生成的响应对象来显示我的视频,但它却说“请求的技能的响应有问题”。当它这样说时,它还会在角落显示“无效指令”。下面是我生成的完整响应对象,请提供有关如何正确启动视频的任何帮助 { "version": "1.0", "response": { "sho

我正在为Echo Show学习node.js SDK的技能。我想使用VideoApp功能()根据从用户那里获取的信息显示视频。我在S3中有视频,构建了指令和整个响应对象,并称为“响应就绪”,如下所示:

我希望Echo Show使用我生成的响应对象来显示我的视频,但它却说“请求的技能的响应有问题”。当它这样说时,它还会在角落显示“无效指令”。下面是我生成的完整响应对象,请提供有关如何正确启动视频的任何帮助

{
  "version": "1.0",
  "response": {
    "shouldEndSession": true,
    "outputSpeech": null,
    "reprompt": null,
    "directives": [
        {
            "type": "VideoApp.Launch",
            "videoItem": {
                "source": "https://s3.amazonaws.com/path/to/video.mp4",
                "metadata": {
                    "title": "Video title",
                    "subtitle": "Subtitle to video"
                }
            }
        }
    ],
    "card": null
  }
}

我想出来了。我只需要将视频和它所在的bucket以S3权限公开可读。

此外,我还发现,如果VideoApp.Launch指令中包含shouldEndSession属性,则会得到无效的响应

{
  "version": "1.0",
  "response": {
    "shouldEndSession": true,
    "outputSpeech": null,
    "reprompt": null,
    "directives": [
        {
            "type": "VideoApp.Launch",
            "videoItem": {
                "source": "https://s3.amazonaws.com/path/to/video.mp4",
                "metadata": {
                    "title": "Video title",
                    "subtitle": "Subtitle to video"
                }
            }
        }
    ],
    "card": null
  }
}