Articles of alexa skills kit

如何从Alexa技能获取Amazon Echo的位置

我知道亚马逊并没有直接向开发者提供获取用户回声的位置的方法,但我想知道是否有办法解决这个问题。 我正在写节点的技能,所以我已经运行到像geoip这样的节点包,但是当我把这个技能上传到aws lambda时,我得到一个错误,说ELF头文件中的某些东西是不正确的。 任何援助将不胜感激!

Alexa技巧,audio播放需要时间

我正在研究与audio播放列表的Alexa技能。audio放在同一个S3桶,我使用该特定位置的URL(启用云端)。 问题是一些audio需要一些时间才能开始(即5秒),而有些则很快就开始了。 文件大小或文件位置没有区别,所有audio都使用相同的代码。 虽然,我想这是Alexaaudio播放器的一些问题。 我的audio播放代码是: this.response.audioPlayerPlay('REPLACE_ALL', url, token, null, offset); 请注意,我在node.js工作,我的终点是一个lambda函数,我使用“alexa-sdk”(节点包) 我无法理解这个问题。 请帮忙。

如何处理自定义Alexa技能中的自由文本?

为了学习的目的,我想创build一个由自定义Alexa技能调用的AWS Lambda函数。 此function的目的是发送邮件(电子邮件,短信)给指定的收件人。 我知道如何创buildfunction,一切工作正常,除了Alexa的用户提供了她应该发送的自由文本的部分。 我知道老虎机的概念,但我只能定义固定值。 有没有办法获得免费的文本,并在Lambda函数(Java或Node.js)中使用它? 提前致谢

在特定的状态下启动Alexa技能

早些时候,我遇到了Alexa的问题,没有把状态改回到空白状态,并发现有这样一个错误 。 为了完全避免这个问题,我决定,我想强制我的技能始终以START_MODE开头。 我用这个作为我的参考,他们通过在第55行的alexa.execute()之前执行alexa.state = constants.states.START设置技能的状态。但是,当我在代码中执行相同的操作时,工作。 以下是我目前的技能: exports.newSessionHandler = { LaunchRequest () { this.hander.state = states.START; // Do something } }; exports.stateHandler = Alexa.CreateStateHandler(states.START, { LaunchRequest () { this.emit("LaunchRequest"); }, IntentA () { // Do something }, Unhandled () { // Do something } }); 我使用Bespoken-tools来testingMocha这个技能,当我直接提供IntentA就像这样: alexa.intended("IntentA", {}, function (err, p) { /*…*/ }) testing抱怨, […]

节点JScallback与Alexa技能

我有一个模块,其中包括一个请求调用,似乎没有得到执行。 var request = require('request'); var Alexa = require('alexa-sdk'); var APP_ID = <my alexa app ID>; var self = module.exports = { handler : function (event, context, callback) { var alexa = Alexa.handler(event, context); alexa.appId = APP_ID; alexa.registerHandlers(self); alexa.execute(); }, "TestIntent": function () { var speechOutput = "Recorded Test"; request("http://www.google.com", function(error, response,body) { return console.log(body); […]

如何正确指定Alexa技能的lambda函数中的SSML?

我正在努力使Alexa的技能在Alexa中被标记为SSML。 我试图模仿在这个回购的例子,但我总是收到一个lambda响应 { … "response": { "outputSpeech": { "type": "SSML", "ssml": "<speak> [object Object] </speak>" }, … } 和Alexa的字面意思是“对象对象”。 这是我input到我的lambda函数(使用node.js): var speechOutput = { type: "SSML", ssml: 'This <break time=\"0.3s\" /> is not working', }; this.emit(':tellWithCard', speechOutput, SKILL_NAME, "ya best not repeat after me.") 像这样设置speechOutput也不起作用: var speechOutput = { type: "SSML", ssml: 'This <break time=\"0.3s\" […]

从AWS Lambda Alexa Intent,Node.js中发布到SNS

我有一个用Node.js编写的Lambda函数,可以成功发布到SNS。 当我在Alexa Lambda函数的Alexa意图中使用相同的函数时,只有在注释掉代码的Alexa部分时才会执行该函数。 这是独立的Lambda函数: var AWS = require("aws-sdk"); exports.handler = function() { var sns = new AWS.SNS(); var params = { Message: "Cheese", Subject: "Test SNS From Lambda", TopicArn: "arn:aws:sns:us-east-1:xxxxxxx:MyTopic" }; sns.publish(params, function(){}); }; 如果我然后尝试将SNS代码放入我的Alexa lambda函数的函数中,则不会执行。 Alexa代码的其余部分工作正常,但没有发布到SNS。 如果我把它的Alexa部分注释掉,它确实有效。 这是不起作用的代码(aws-sdk包含在文件的顶部,在本例中省略): exports.handler = function(event, context) { var sns = new AWS.SNS(); var params = { Message: "Cheese", […]

Node.js Lambda函数“响应无效”Amazon Alexa

更新:我的http请求端点有一个错误。 我没有设置适当的authentication选项,以便修复很多错误,可能是这个特定的错误。 我的问题类似于这里: Node.js Lambda函数返回“响应无效”从REST调用回到Alexa服务模拟器 然而,解决这个问题并不能解决我的问题。 所以我做了一个http请求调用Hana云中的一个xsjs服务。 我得到'响应是无效的'错误信息。 我看不出为什么。 这是我的function: // Create a web request and handle the response. function httpGet(query, callback) { console.log("/n QUERY: "+ query); var host = 'datacloudyd070518trial.hanatrial.ondemand.com'; var path = '/LocationInformation/getLocationInfo.xsjs?location='; var hostname = 'https://' + host + path + query; var auth = 'user1:D1anafer'; var req = http.request({'hostname': hostname, 'auth': […]

将AMAZON.DURATION添加到当前时间

我正在写一个Alexa技能,我希望在将来的时间将logging存储在数据库中。 例如,如果用户说“在两个小时之内”,我想存储从现在起两个小时的时间。 到目前为止,我发现我可以使用一个AMAZON.DURATION插槽types来将这样的单词转换为一个持续时间,但我还没有想出如何将它添加到当前date。 持续时间如下所示:PT2H。 P表示持续时间,T表示时间单位,2H表示2小时。 我可以自己parsing这个,但是我希望有一些内置函数可以做到这一点?

如何以编程方式将AWS lambda触发器设置为Alexa技能

我想设置使用Alexa事件的AWS lambda的触发器来运行触发器,但在SDK文档中找不到任何东西。 有人知道吗? 如果有人向我展示了如何使用node.js SDK,我会特别开心,但也欢迎其他想法(CLI)。 我正在玩事件源映射SDK调用,但似乎没有办法。 我认为API是为Kinesis和Dynamostreamdevise的,并没有赶上最新的Alexa发展变化。