我正在建立一项技能,当提示时播放随机歌曲。
我已经想过,我必须使用AudioPlayer.Play
指令并为audioItem.stream.url
提供有效的属性(例如https://test.com/api/getmysong,它会返回流式mp3文件)。
到目前为止,太好了。但是...
由于安全原因,我不希望“公共用户”能够访问mp3。 Alexa如何准确地请求文件?我也可以使用它来验证Alexa的特定请求,用户有权请求mp3吗?我还需要使用其他机制来保护“ mp3”文件吗?
答案 0 :(得分:2)
您的mp3(文件或流)必须是公开的并通过https提供-Alexa仅按原样使用提供的链接。
Flash Briefing的创建者可以发现相同的问题-因为Flash Briefing音频文件也应该具有公共访问权限。但是-您可以限制对AWS IP range的音频流的访问-在topic上与Flash Briefing相关的Amazon Developers Forum中可以找到。它无法确保100%的音频安全-但仍然可以使您的文件无法从“互联网的其余部分”访问。
答案 1 :(得分:-1)
我还发现,除非URL是经过CA签名的,否则它不会播放mp3。它不适用于自签名证书。 一种替代方法是将mp3文件上传到Amazon S3存储,在那里您可以使用更多身份验证机制