基本的Alexa技能

时间:2016-04-13 01:54:54

标签: alexa-skills-kit

我已经下载了Alexa Skills在线教程:

https://github.com/amzn/alexa-skills-kit-js/blob/master/samples/reindeerGames/src/index.js

并遵循(我认为)教程中的所有说明:

https://developer.amazon.com/public/community/post/TxDJWS16KUPVKO/New-Alexa-Skills-Kit-Template-Build-a-Trivia-Skill-in-under-an-Hour

这是第一次Alexa Skills开发人员的教程。我的问题是,一旦点击“保存并测试”按钮,我收到此错误消息:

errorMessage“:”异常:TypeError:无法读取未定义的属性'application'“

有谁知道上述错误的含义或如何摆脱它?

非常感谢。

1 个答案:

答案 0 :(得分:5)

这看起来像是一个javascript错误,告诉您正在尝试在未定义的变量上使用名为application的属性。

JavaScript会将值“undefined”分配给您使用但尚未设置的任何变量。

您可以通过多种方式调试Lambda中的问题。也许最简单的方法是查看日志。要做到这一点:

  1. 转到Lambda控制台(将代码上传到Lambda)
  2. 选择“监控”选项卡
  3. 选择“在CloudWatch中查看日志”(右上角)
  4. 查看最新日志,查找您的某个文件(通常为index.js)中的报告错误,特别是行号。这应该可以帮助您找到错误。

    请注意,时间戳将是GMT,因此可能与您的实际时间不符。如果您有多个条目,这可能会造成混淆。但分钟应该匹配,帮助您验证您正在查看正确的日志条目。

    调试Lambda问题的一种更高级,更快捷的方法是包含“测试”请求,并在每次将代码上传到Lambda时运行此命令。

    进行设置:

    1. 在“服务模拟器”部分下的ASK测试页面中运行您定义的一个话语。
    2. 复制下面显示的“Lambda请求”部分中的代码。
    3. 现在切换到Lambda函数的Lambda控制台
    4. 单击“操作”按钮中的向下箭头,然后选择“配置测试事件”
    5. 将您在上面复制的请求粘贴到文本字段
    6. 单击“保存并测试”。
    7. 现在每次将新代码上传到Lambda时,您都可以选择“测试”,然后运行您刚刚保存的请求。

      最重要的是,控制台日志将显示在右下角,这样您就不必切换到日志并刷新以查看日志。