javascript - 我正在尝试执行 Alexa 技能,但她说请求的技能响应有问题
问题描述
我用 console.log(lojaMensagem) 在 cmd 上测试了命令并且正在工作,但是当我戴上 Alexa Skill 时它给了我一个错误,你能帮我吗?是的,我正确放置了 npm 包!抱歉,如果问题太明显了,我是 Alexa Skills 的新手
const LojaDoDiaHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'LojaDoDia';
},
handle(handlerInput) {
const { get } = require('axios');
(async handle => {
const itemsName = []
const shop = await get(
'https://fortniteapi.io/v2/shop?lang=pt-BR',
{ headers: { Authorization: 'my api key' } }
)
for (const item of shop.data.shop)
itemsName.push(item.displayName)
const lojaMensagem = `Os itens da loja de hoje são ${itemsName.join('. ')}`
console.log(lojaMensagem)
return handlerInput.responseBuilder
.speak(lojaMensagem)
.reprompt('') // Se eu quiser resposta
.getResponse
})()
}`
解决方案
您的handle
方法没有返回任何内容 - 您只需调用您的函数(return 在其中),然后该handle
方法返回undefined
,这就是您听到有关响应问题的消息的原因。另一个问题是您不调用getResponse
函数(缺少()
)。
顺便说一句,您可以使handle
方法异步:
const LojaDoDiaHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'LojaDoDia';
},
async handle(handlerInput) {
const { get } = require('axios');
const itemsName = []
const shop = await get(
'https://fortniteapi.io/v2/shop?lang=pt-BR',
{ headers: { Authorization: 'my api key' } }
)
for (const item of shop.data.shop)
itemsName.push(item.displayName)
const lojaMensagem = `Os itens da loja de hoje são ${itemsName.join('. ')}`
console.log(lojaMensagem)
return handlerInput.responseBuilder
.speak(lojaMensagem)
.reprompt('') // Se eu quiser resposta
.getResponse()
}
推荐阅读
- jwt - 通过 JWT 验证 Grafana
- asp.net-core - 覆盖默认的 asp.net 核心取消令牌或更改请求的默认超时
- python - Pymodbus:在 StopServer -> StartSerialServer 之后不起作用(无法打开端口:PermissionError)
- intellij-idea - 我无法在 IntelliJ 上编辑 http 文件或使用 http 客户端,我该如何解决?
- optimization - 如何在 F# 中优化此代码以提高速度,以及为什么一个部分执行两次?
- c# - Web服务异步调用冻结页面
- azerothcore - 新死亡骑士不会开启符文锻造
- unit-testing - Azure DevOps:防止在多个单元测试项目中覆盖 codecov 报告
- python - 获取 TypeError:forward() 缺少 1 个必需的位置参数:Learner() 上的“x”。快速 AI 的预测
- testing - 如何使用使用 redis 的 easycache 编写 xunit 测试?