问题标签 [alexa-skills-kit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
427 浏览

echo - Alexa Echo Beta SDK - 证书问题

亚马逊最近发布了 Echo Alexa 工具包。

我收到并注册了我的应用程序。Alexa 清楚地识别出我的应用程序存在。但是它给出了这个错误

请求标识符:amzn1.echo-api.request.d969c196-8b3e-4169-99c8-20f566889760 证书没有通往受信任机构的路径。如果您使用的是自签名证书,则会发生这种情况。语音反馈 Echo 听到:“alexa start myapp”

我验证了我的 COMODO CA (COMODO RSA Certification Auth) 在授权 CA 的列表中。我确保我的证书包是有效的。

我需要什么具体的东西来确保我的 bundle.crt 对 Alexa 来说是正确的顺序吗?(没有提到需要 .com,我使用的是 .net)

这些是我的 COMODO 文件名。

AddTrustExternalCARoot.crt

COMODORSAAddTrustCA.crt

COMODORSADomainValidationSecureServerCA.crt

mydomain-net.crt

ssl-bundle.crt

stn.private.key

很高兴能让这个工作......请帮忙

南非

0 投票
4 回答
12010 浏览

amazon-web-services - Amazon Alexa Skills Kit:如何与外部应用程序帐户/用户 ID 关联

Amazon alexa 技能请求中,有一个userId,我试图了解这是什么以及是否有一些参考,因为我想将Amazon Echo用户帐户与我自己的应用程序中的一个帐户链接并这样做我必须有某种静态 userId 才能使用。

示例请求:

0 投票
1 回答
4690 浏览

aws-lambda - Alexa没有找到我的技能

我根据 Alexa Skills Kit 中提供的示例之一将我的 Alexa Skill 创建为 AWS Lambda Node.js 应用程序。我遵循了所有的指示:

  1. 我的 Echo 与我在 AWS 上的开发者账户注册了同一个账户
  2. 我在亚马逊开发者控制台上配置了我的技能
  3. 我将控制台中的应用程序 ID 放入我的应用程序代码中
  4. 我将代码上传到 AWS Lambda 服务(按照说明设置为 N. Virginia)
  5. 我测试了我的服务,它返回了预期的 JSON
  6. 我在开发人员控制台中输入了我的 ARN 作为端点
  7. 在控制台的下一步中,它告诉我通过说“Alexa,问 HelloWorld”来测试 Echo 的技能。

当我这样做时,她回答“与请求的应用程序通信时出现问题”。在 Echo 应用程序中,它说:

意外的通信问题 HelloWorld 请求标识符:amzn1.echo-api.request.e2d17280-592a-474f-a6b1-d1a9d8ff816d 与请求的应用程序通信时出现问题

我可以从我的 AWS Lambda 函数列表中看到没有请求到达该服务。我重新启动了 Echo。我给了它一个小时,以防它只需要时间传播到某个地方,但它仍然给出相同的响应。

所以这是一个相当模糊的死胡同。有没有人遇到过这个?有什么想法可以尝试吗?

0 投票
1 回答
1685 浏览

ios - 是否可以将 Alexa Skills Kit 与 iOS 移动应用程序集成以触发事件?

例如,假设我想在我的 ios 应用程序中启动相机拍照,我可以使用 ASK 和 iphone 麦克风来理解用户语音命令(“启动相机”)来启动相机并触发 ios 中的功能吗?

0 投票
2 回答
801 浏览

java - 与 Alexa 的意外通信问题

我将我的 Alexa 技能创建为 AWS Lambda java 应用程序,并使用了 Alexa Skills Kit 中提供的 HelloWorld 示例。我遵循了亚马逊网站上给出的所有步骤,包括此处给出的所有步骤Alexa not found my Skill。由于亚马逊此时没有完全给出使用 Lambda 和 java 的说明,我按照本教程https://github.com/jjaquinta/EchoProofOfConcepts/tree/master/jo.echo.lambda中给出的步骤,我在亚马逊论坛页面。当我在 Lambda 中运行代码时,它接受它,但仅将其显示为执行结果:

并为 Alexa 启动会话请求获取以下日志输出:

当我尝试使用 echo 的技能时,我遇到了“意外的通信问题”:请求标识符:amzn1.echo-api.request.173c5d6c-8e97-493c-9efd-beb88cffd82f 与请求的应用程序通信时出现问题。

有没有人遇到同样的问题?我想这可能与我的 zip 包装有关,所以有人知道正确的包装方法吗?

这是我用于 HelloWorld 的代码https://docs.google.com/document/d/1DU_-kAOxnhEp_4Lsj6I_LzEN4Di6-4Gmk28OZgc80IA/pub

0 投票
2 回答
2982 浏览

java - Amazon Lambda 上的 Amazon Echo/Alexa 的正确 Java handleRequest() 方法签名?

我正在尝试创建一个用 Java 实现的Amazon Lambda函数以与 Amazon Echo/ Alexa一起使用。我使用 Eclipse Mars 作为 IDE。

这是 my LambdaFunctionHandler,它将接收来自 Alexa 的请求,如下所示:

但是,当尝试使用来自 Alexa 的示例 JSON 输入对此进行测试时,我在 Eclipse 中收到错误:

{"errorMessage":"JSON 解析时出错","errorType":"java.lang.RuntimeException","stackTrace":[],"cause":{"errorMessage":"Lcom/fasterxml/jackson/databind /ObjectMapper;","errorType":"java.lang.NoClassDefFoundError","stackTrace":["java.lang.Class.getDeclaredFields0(Native Method)","java.lang.Class.privateGetDeclaredFields(Class.java:2583 )","java.lang.Class.getDeclaredFields(Class.java:1916)","com.fasterxml.jackson.databind.introspect.AnnotatedClass._findFields(AnnotatedClass.java:689)","com.fasterxml.jackson. databind.introspect.AnnotatedClass.resolveFields(AnnotatedClass.java:470)","com.fasterxml.jackson.databind.introspect.AnnotatedClass.fields(AnnotatedClass.java:282)","com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addFields(POJOPropertiesCollector.java:390)","com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collect(POJOPropertiesCollector.java:243)", "com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.collectProperties(BasicClassIntrospector.java:197)","com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:110)","com.fasterxml .jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:15)","com.fasterxml.jackson.databind.DeserializationConfig.introspect(DeserializationConfig.java:703)","com.fasterxml.jackson.databind.deser .DeserializerCache._createDeserializer(DeserializerCache.java:330)","com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:265)","com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:245)", "com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:143)","com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:439)","com.fasterxml.jackson .databind.ObjectReader._prefetchRootDeserializer(ObjectReader.java:1588)","com.fasterxml.jackson.databind.ObjectReader.(ObjectReader.java:185)","com.fasterxml.jackson.databind.ObjectMapper._newReader(ObjectMapper. java:558)","com.fasterxml.jackson.databind.ObjectMapper.reader(ObjectMapper.java:3098)"],"原因":{"errorMessage":"com.fasterxml.jackson.databind.ObjectMapper","errorType":"java.lang.ClassNotFoundException","stackTrace":["java.net.URLClassLoader.findClass(URLClassLoader.java :381)","java.lang.ClassLoader.loadClass(ClassLoader.java:424)","java.lang.ClassLoader.loadClass(ClassLoader.java:357)","java.lang.Class.getDeclaredFields0(Native Method )","java.lang.Class.privateGetDeclaredFields(Class.java:2583)","java.lang.Class.getDeclaredFields(Class.java:1916)","com.fasterxml.jackson.databind.introspect.AnnotatedClass。 _findFields(AnnotatedClass.java:689)","com.fasterxml.jackson.databind.introspect.AnnotatedClass.resolveFields(AnnotatedClass.java:470)","com.fasterxml.jackson.databind.introspect.AnnotatedClass.fields(AnnotatedClass.java:282)","com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addFields(POJOPropertiesCollector.java:390)","com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collect( POJOPropertiesCollector.java:243)","com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.collectProperties(BasicClassIntrospector.java:197)","com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java: 110)","com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:15)","com.fasterxml.jackson.databind.DeserializationConfig.introspect(DeserializationConfig.java:703)","com .fasterxml.jackson.databind.deser.DeserializerCache。_createDeserializer(DeserializerCache.java:330)","com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:265)","com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache. java:245)","com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:143)","com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:439)", "com.fasterxml.jackson.databind.ObjectReader._prefetchRootDeserializer(ObjectReader.java:1588)","com.fasterxml.jackson.databind.ObjectReader.(ObjectReader.java:185)","com.fasterxml.jackson.databind. ObjectMapper._newReader(ObjectMapper.java:558)","com.fasterxml.jackson.databind。ObjectMapper.reader(ObjectMapper.java:3098)"]}}}

这是我的 JSON 输入(取自在线的TestColors 示例):

因此,显然 AmazonSpeechletRequestEnvelope不是handleRequest().

handleRequest()接收来自 Alexa 的请求的正确方法签名是什么?

我找不到适用于 Alexa/Echo 的 Amazon Lambda 的 Java 示例。

0 投票
1 回答
2106 浏览

node.js - 节点 AWS Lambda + twitter API:未定义数据

我很喜欢 Alexa API,所以我从这里下载了一个 Hello World 示例 https://developer.amazon.com/appsandservices/solutions/alexa/alexa-skills-kit/getting-started-guide

我设法做了一些小改动,并让 Alexa 说其他话。但现在我想要一个真实世界的例子,所以我试图为用户获取最新的推文。

所以我编写了一个 twitter 函数并且它可以工作,我在我的控制台上看到了这条推文。此外,下载的示例也可以正常工作。但是现在,当我尝试通过将我的 twitter 函数添加到 Alexa 示例中来组合它们时,它会在尝试打印值时引发以下错误(如果我不打印它,它不会中断):

这是代码,但修改后的函数是 getWelcomeResponse()

有人可以指导我有什么问题吗?这可能是范围问题,我不确定。

0 投票
6 回答
10827 浏览

amazon-web-services - Amazon Echo - 向设备推送消息

我已将我的亚马逊回声设备与关联到我的帐户的亚马逊门户集成。我能够使用 Alexa Skills Kit 创建自己的自定义问题,并使用 AWS Lambda 函数进行处理以生成响应。

我的问题是:是否可以以编程方式将消息“推送”到回显设备?例如,我想让它说话而不用问它问题。我希望它在特定时刻做某事。

如果可能的话,您能否分享任何示例代码来实现这一目标?

0 投票
1 回答
5405 浏览

javascript - 将 Netatmo 气象站连接到 Amazon Echo (Alexa)

[以下已回答问题中的完整教程。欢迎反馈!]

我正在尝试创建一个 AWS Lambda 函数以用于 Amazon Alexa 技能,以从我的 Netatmo 气象站获取天气信息。基本上,我需要通过 http 请求连接到 Netatmo 云。

这是我的代码片段,http请求是针对临时访问令牌完成的,请求没问题,但结果正文是body:{“error”:“invalid_request”}。这里可能是什么问题?

0 投票
5 回答
20122 浏览

amazon - 如何定义不是列表的自定义插槽类型?

我正在使用 Alexa Skills Kit(用于 Amazon Echo)并想创建一种技能,将意图发送到 AWS Lambda 函数,该函数只会通过电子邮件将一些东西发回给我。

示例话语将是这样的:

这将允许我说“Alexa,让我的秘书做个备忘录,提醒我今天回家路上去商店”,然后会从我的 Lambda 函数中收到一封电子邮件,说“提醒我去我今天回家路上的商店。”

插槽是自由形式的myMemo——此时只需一两句话就可以了,但我在文档中没有找到很多关于如何为这样的东西编写模式的帮助。我目前最好的猜测失败了:

错误:您的请求有问题:未知插槽名称“{myMemo}”。发生在第 1 行的示例“MemoIntent take a memo {myMemo}”中。

我正在使用文档不鼓励使用的 AMAZON.LITERAL 插槽类型,但它也没有提供有关如何解决此问题的任何建议。此外,就像我提到的,它失败了。

这是失败的架构: