Articles of alexa

Amazon AWS Lambda Alexa HTTP获取问题

我一直在使用Amazon Lambda和alexa技能工具包获取以下代码。 我已经花了无数个小时,并且无法工作。 我不断得到这个消息返回,并不能找出为什么http get失败。 “请稍后再试”。 它甚至不打印控制台消息。 var Alexa = require('alexa-sdk'); var http = require('http'); var APP_ID = "omitted"; var SKILL_NAME = 'omitted'; var options = { host: 'api.forismatic.com', path: '/api/1.0/?method=getQuote&lang=en&format=text', method: 'GET' }; exports.handler = function(event, context, callback) { var alexa = Alexa.handler(event, context); alexa.APP_ID = APP_ID; alexa.registerHandlers(handlers); alexa.execute(); }; var handlers = { […]

Alexa podcast技能套件,从远程json加载audio文件

所以,我试图用json来加载这个audio数据: https : //github.com/alexa/skill-sample-nodejs-audio-player/ 使用请求( https://github.com/request/request )来获取json数据就像一个testing,我运行这个代码。 情节被定义为请求之外的数组。 request.get('myjsondatalink.asp', function (error, response, body) { if(error) { episodes[0] = 'soundcloud-url'; console.log(error); } if (!error && response.statusCode == 200) { var podcasts = body; episodes[0] = 'soundcloud-url'; } episodes[0] = 'soundcloud-url'; }); 我知道请求之外的代码工作,因为我已经尝试声明请求之外的情节[0],它播放良好。 控制台不给我任何错误,我已经尝试只是包括在索引中的这个请求的东西,我可以得到它至less略微工作(可以得到它在成功的请求控制台日志的东西)。 任何理由,这将无法正常工作? 最初是3秒钟超时,所以我把它增加到了30,这是我能得到索引中testing请求的唯一方法。 就像一个笔记,我跑了 for(var podcast in podcasts) { console.log(podcast); } 并且它像1439,1440,1441,1442,1443等那样熄灭,而不是string。 也不太确定,但我不熟悉节点,所以我认为这是错的?

Alexa和mysql远程端点不能被调用或者input无效

我正在尝试将alexa连接到mysql。 数据库通过xampp存储在本地主机上。 我已经完美地获得了nodejs-mysql连接,但是当我尝试将其与alexa合并在一起时,它就这样说 “远程端点不能被调用,或者它返回的响应是无效的。” 我的数据库文件: – var mysql=require('mysql'); var con=mysql.createConnection({ host:'localhost', user: 'root', password:'', database:'ctp' }); function answer(){} answer.prototype.getdata= function(question,callback) { sql="select answer from jarvis where question="+question; con.query(sql,function(err,rows,fields) { callback(rows); }) } module.exports=answer; 我的index.js文件: – 'use strict'; var AlexaSkill = require('./AlexaSkill'), recipes = require('./recipes'), dbcon=require('./dbconfig'); var mys=new dbcon(); var APP_ID = "amzn1.ask.skill.1bfd2f06-1c46-464f-9f06-9195691e0aae"; //OPTIONAL: replace with […]

Alexa的意图不是等待API响应

我们正在使用alexa-app开发alexa技巧,我们试图从facebook获取专辑的一个目的是成功/失败,我们希望alexa作出相应的响应。 但意图是不等待FB电话来完成。 以下是我们正在使用的代码片段: function fetchAlbums(){ return new Promise(resolve =>{ FB.api("/me/albums", function (res) { if (res && !res.error) { // If we have data if (res.data) { resolve("Got Albums"); } else { // REPORT PROBLEM WITH PARSING DATA resolve("Error getting albums"); } } else { // Handle errors here. resolve("Error hitting endpoint"); } }); }); } […]

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”(节点包) 我无法理解这个问题。 请帮忙。

节点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", […]

如何解决警告:应用程序ID没有设置?

我总是在我的日志文件中得到'应用程序ID没有设置'的错误,而我在这个例子中设置了这个ID: const APP_ID = 'amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; 我该如何解决这个问题?

使用Alexa和JS的HTTP发布

我试图获得一个Alexa技能(JS / Lambda)使用HTTP.request将值发布到REST服务器。 我正在尝试一些简单的事情来完成工作。 我想我错过了一些明显的东西。 理想的技能使用 我说,“Alexa,告诉testing五”。 Alexa将代码中指定的URL更新为5。 Alexa说:“我已经把价值更新到了五点。” 问题 我有两个问题: 口语与打字的话语 。 如果我在亚马逊服务模拟器(“五”)中键入我的插槽值,该值将发布到我的服务器,因为它应该是。 但是,如果我说同样的话,即使Alexa正确地识别了这些单词(通过查看应用程序中的卡片确认),该值也不会被发布,并且她说:“我找不到问题的答案。 在哪里以及如何调用输出function 。 我想我需要添加类似下面两行的内容,但是根据我在当前代码中添加的位置,Alexa会响应而不更新节点,或者什么也不做。 var text = 'I have updated the value to' + targetSlot; output( text, context ); 调用名称 posting test 意图架构 { "intents": [ { "intent": "writeTarget", "slots": [ { "name": "Target", "type": "NUMBER" } ] }] } 示例话语 […]