- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
以下代码是我的 Alexa 技能中的启动处理程序,并且我的处理程序内部有一个名为 x 的变量。我试图将 x 设置为从 dynamoDB 获取的数据,并在 get 函数之外使用它(我从 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.03.html#GettingStarted.NodeJs.03.02 获取该函数),以便 Alexa 可以读出 x 的值(字符串)(如您在返回中看到的那样)。我的“get”函数中的语句不会更改 get 函数本身之外的 x 值。我知道 get 函数内部的 x 实际上正在更改,因为我将其记录到控制台。所以我就此发布了一篇类似的文章,我最初认为这是一个范围问题,但事实证明这是因为 get 函数是异步的。因此,我添加了 async 和 wait 关键字,如下所示。我是 NodeJS 的新手,所以根据我的研究,我认为我应该把它们放在哪里。但这仍然不起作用。
const LaunchHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === `LaunchRequest`;
},
async handle(handlerInput) {
var x;
//DYNAMO GET FUNCTION
await DBClient.get(params, function(err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
} else {
x = data.Item.Answer;
} });
return handlerInput.responseBuilder
.speak(x)
.withShouldEndSession(false)
.getResponse();
},
};
顺便说一句,这是我(成功)从数据库返回的 JSON:
{
"Item": {
"Answer": "Sunny weather",
"Question": "What is the weather like today"
}
}
最佳答案
您正在寻找这样的东西吗?在句柄函数中,我调用另一个函数 getSpeechOutput 来创建一些反馈文本。因此函数调用dynamodb函数getGA来获取用户数据
const getSpeechOutput = async function (version) {
const gadata = await ga.getGA(gaQueryUsers, 'ga:users')
let speechOutput;
...
return ...
}
const UsersIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'UsersIntent';
},
async handle(handlerInput) {
try {
let speechOutput
...
speechOutput = await getSpeechOutput("long");
...
return handlerInput.responseBuilder
.speak(speechOutput)
.reprompt("Noch eine Frage?")
.withSimpleCard(defaulttext.SKILL_NAME, speechOutput)
.getResponse();
} catch (error) {
console.error(error);
}
},
};
这就是数据库函数:
const getUser = async function (userId) {
const dynamodbParams = {
TableName: process.env.DYNAMODB_TABLE_BLICKANALYTICS,
Key: {
id: userId
}
}
return await dynamoDb.get(dynamodbParams).promise()
}
关于node.js - Alexa 技能异步等待从 DynamoDB 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55192363/
我正在研究 Alexa 技能(用于 Echo),并且我从一开始就研究了 Alexa 技能套件。 现在,我对 Alexa 语音服务感到困惑。我已经阅读了亚马逊上的文档,但无法更好地理解它。 请指导什么是
我正在尝试为 Alexa 创建一项技能,根据我选择的 tg 类别重现 .mp3 文件。我声明我从未使用过 node.js 并且我看过一门关于如何创建 alexa 技能的类(class)。到目前为止,我
是否可以远程触发 Alexa,即我有一个场景,应根据移动应用程序上的某些操作触发 Alexa,并且所提供的响应将由 echo dot 读出。 瓦伦 最佳答案 如果用户不与支持 Alexa 的设备交互,
在 Alexa 中创建技能时,每个插槽最多可以添加多少个值? 由于担心将原始用户对话记录为输入的技能,AMAZON.LITERAL 似乎已被弃用。 如果无法记录用户原始输入,我有大量可能的值可用作输入
我正在尝试编写我的第一个 Alexa 技能,但应用程序流程有点困惑,甚至阅读了有关对话委托(delegate)等的所有文档。我真的很喜欢一些建议。 我追求的流量 "Alexa, start Movie
我已经使用 aws lamda 函数创建了示例技能。我已经使用模拟器测试了技能,效果很好。我想测试 Alexa 应用程序的技能。 有人可以提及从头开始测试 Alexa 应用程序技能的步骤吗? 最佳答案
我已经使用 aws lamda 函数创建了示例技能。我已经使用模拟器测试了技能,效果很好。我想测试 Alexa 应用程序的技能。 有人可以提及从头开始测试 Alexa 应用程序技能的步骤吗? 最佳答案
我正在开发节点中的 Alexa 技能,我想知道如何对我的代码进行单元测试。我正在使用亚马逊发布的alexa sdk。 我找到了很多库来实现这一点,但它们似乎是在 alexa sdk 可用之前开发的。
我正在尝试在 Amazon Alexa 中创建一个简单的调查技巧,Alexa 向用户提出问题,然后他们以他们喜欢的任何方式(开放式)做出回应。例如,如果 Alexa 询问“你会做饭吗?”,用户可能会以
是否有任何方法可以在 Alexa 技能中显示像“阅读更多”这样的超链接?我试图在我的自定义 Alexa 技能中显示超链接,但找不到任何方法来实现它 最佳答案 超链接现在作为 APL 的一部分提供支持它
我正在尝试开发 Alexa 技能,我需要获取相对时间,例如:“ 5 分钟前 ”。 我为我的技能定义了一个时间段,它接受像 5 minutes 这样的时间, 6.30 am或 4 in the morn
我正在开发一项 Alexa 技能,我会在其中停下来获取水果名称。但是,如果我说诸如“苹果的成本是多少”之类的话,其中插槽值带有撇号,Alexa 似乎无法识别撇号。解决方法是说“一个苹果的成本是多少”之
如何为Alexa技能创建通用插槽?这样我就可以创建自己的Todo应用程序,它将识别自由格式的文本。 最佳答案 Alexa blog announced a List Skill API。如上所述,新技
如果我告诉 Alexa 以某些语言(中文、俄语等)或表情符号发出文本,它不会对用户说什么。 Alexa API 是否有办法指示字符串在发出之前或之后将转换为空/无声?或者,有没有办法在 Alexa 之
我想在我的网站/移动应用程序中使用 amazon alexa api。鉴于我开发了我的自定义技能,我想知道是否可以使用以及如何集成 alexa。 最佳答案 您可以使用 Alexa 语音服务。您需要收集
我打算根据自己的技能调用指定的电话号码。 例如 Me: Alexa, ask to find the customer service number Alexa: Sure, the custome
自定义技能已创建但未发布。 我可以在服务模拟器中对其进行测试。 当我尝试从门户网站 ( http://alexa.amazon.com/ ) 或手机上的 Alexa 应用程序将技能添加到我的设备时,搜
我一直在进行 alexa 开发,最近遇到了前所未有的情况。在尝试启用新技能测试时,我在 上收到以下错误测试 标签 : There was a failure enabling your skill,
我正在重写与 Particle.io API 通信的 Alexa 技能。这次我使用 ask-cli 来管理上传。所以到目前为止我的基本流程是: “问新”以创建入门技能和 lambda “请求部署”以创
我使用 PHP 创建了自定义技能和 https 端点。我已经在它正在运行的模拟器上测试了技能。我能够在 alexa android 应用程序上看到我的技能,并且我已经启用了它。但未得到有效响应。 最佳
我是一名优秀的程序员,十分优秀!