问题标签 [ask-sdk]

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 投票
3 回答
1284 浏览

python - Amazon Alexa 中帐户链接的示例 python 代码

我在哪里可以找到 Amazon Alexa 中帐户链接的示例 Python 代码。我只能在这里获得文档。

https://developer.amazon.com/docs/account-linking/understand-account-linking.html

请帮我 !!

0 投票
1 回答
1183 浏览

alexa - 如何让我的 Alexa 技能播放简单的 mp3 文件?

我正在尝试编写一个简单地播放 MP3 文件的 Alexa 技能。我使用以下代码修改了默认的“hello world”lambda:

但是当我部署代码并调用技能时,它不会发出任何声音或报告任何错误。当我将handle代码替换为

然后她在被调用时说你好世界。

我的问题:为什么她会跟我说话,但似乎不会播放我的mp3?我已经看到有关堆栈溢出的其他问题,原因是他们没有使用 https,但我使用的是 https。

0 投票
2 回答
119 浏览

java - ResponseBuilder toString() 以字符串形式返回对象类,而不仅仅是原始响应字符串

我目前正在从 Java ASK-SDK v1 迁移到Java ASK SDK v2

我正在尝试使用ResponseBuilder我构建响应的类返回一个 webhook 调用,并且数据是正确的,但是当我尝试使用 JSON 文本填充 HTTP 正文时,该ResponseBuilder.toString()值不仅仅使用字符串,我得到以下信息:

是否有另一种方法来获取响应正文的字符串?BaseSkillResponse一个getResponse()调用,但是,我无法弄清楚如何使用该类来生成字符串响应输出。

0 投票
2 回答
92 浏览

node.js - nodejs alexa技能继续直到用户说停止

我正在编写一个按城市返回顶尖大学的 alexa 技能。我希望会话和技能继续,直到用户说停止。TopCollegesByCityIntentHandler 采用城市名称的代码如下:

但是如果用户不说话超过 5-10 秒,技能会因为“请求的技能没有发送有效的响应”而死亡。我如何继续会话直到用户说停止?

谢谢

0 投票
2 回答
48 浏览

node.js - 如何在音频播放器中添加 Amazon.helpintent

当我寻求帮助时,Alexa 帮助调用而不是自定义帮助技能。如果音频播放器没有播放,例如。在启动页面上,我得到了自定义帮助调用,但在音频播放器中没有。我怎样才能覆盖它?

谢谢你。

0 投票
2 回答
169 浏览

python - ask-sdk python 返回 LinkAccountCard

我是 Alexa 自定义技能的新手,如果我的用户触发了需要身份验证的意图,我希望他们链接他们的帐户以继续使用我的技能。当然,我的技能需要返回一个指令,让他们知道如何链接他们的帐户。

我在官方文档中找到了,但不幸的是没有 python 的示例代码。在互联网上研究了几个小时后,ask_sdk_model.ui. 所以我开始像这样将这个类添加到我的代码中:

from ask_sdk_model.ui import LinkAccountCard if not handler_input.request_envelope.context.system.user.access_token: speech = "You must open alexa app on your phone and link you account to continue" handler_input.response_builder.speak(speech).set_card(LinkAccountCard(speech)) return handler_input.response_builder.set_should_end_session(False).response

但是 Alexa 一直对我说“对不起,我帮不了你”。如果我使用.set_card(SimpleCard(speech))而不是.set_card(LinkAccountCard(speech)),Alexa 会显示消息“您必须在手机上打开 alexa 应用程序并链接您的帐户才能继续”,而不会出现任何错误。那么如何将 linkAccountCard 返回给用户以帮助他们转到设置中的链接帐户?

非常感谢!

0 投票
1 回答
111 浏览

python - 用 Python (Flask) 编写的自托管 Alexa Skill 的定制代码覆盖率

我正在使用 Python 的 ask-sdk 编写一个用 Python 编写的 Alexa Skill。此技能在侦听端口 5000 的 Flask 服务器上自托管运行。现在我想使用 Bespoken Framework 集成单元测试。

我的 testing.json 文件如下所示:

我在端口 9998 上本地运行 http.server 以获取 report.html。测试成功通过,但代码覆盖率无法正常工作。似乎这个技能中使用的文件根本无法识别。相反,他们正在查找文件 slides.js、debugger.js、jquery.js

我遵循了本指南https://read.bespoken.io/cli/tutorials/tutorial-flask-ask-python/#getting-started

因此,我查找了常见问题解答并从https://read.bespoken.io/unit-testing/faq/#what-are-continuous-integration-ci-and-automated-unit-testing获得了这些信息:


我可以对用 Javascript 以外的编程语言编写的技能进行单元测试吗? 是的你可以。它确实需要在您的笔记本电脑上本地运行我们的图书馆可以调用的服务器,否则它将“正常工作”。

在运行测试之前,启动服务器以接收有效负载。它将监听类似:http://localhost:9000 的内容。

在 testing.json 文件的 SkillURL 配置元素中设置该 URL。这应该设置而不是处理程序元素 - 处理程序仅适用于 Javascript lambdas/functions。

运行测试后,关闭服务器 - 我们建议将此作为常规过程的一部分。例如,它可以添加到我们的过滤器之一 - 在此处阅读过滤器 XXX。最后,如果您对请求执行请求签名检查或时间戳过滤,则需要禁用此功能。


这是我的 app.py:

我很感谢任何想法!

0 投票
2 回答
257 浏览

node.js - 启动使用 Firebase Functions 部署的 Alexa 技能时出现问题

我最近开始开发 alexa 技能(使用 SMAPI 和 ASK SDK)并在后端 Firebase 上使用 nodejs。我将我的代码部署在 Cloud Functions 上,并将我的函数 uri 放在技能清单文件中的端点上。启动技能时遇到问题。

0 投票
1 回答
75 浏览

nestjs - NestJS和问SDK服务注入

我正在尝试使用 nestjs 构建自定义 Alexa 网络服务。如果我尝试从 AlexaController 调用 RequestHandler 中的服务,它不起作用,因为 this. 那里不可用(如果我在 requestHandler 中尝试 console.log(this) 我看到 {canHandle, handle} )并且服务器返回我该服务未定义。这是我的控制器:

这是我的 AlexaModule:

如何使该服务在该 RequestHandler 中可见?有什么建议吗?提前致谢

0 投票
1 回答
212 浏览

javascript - 永远不会触发 Alexa LaunchRequest

我正在使用 Alexa 技能包的 ask-sdk-core。我有以下 LaunchRequestHandler 和 AudioIntentHandler。我遇到的问题是,当我通过说“Alexa,与 SkillName 交谈”或“Alexa,开始 SkillName”来触发技能时,请求以某种方式发送 AudioIntent 而不是 LaunchRequest 到 lambda 函数,因此,音频流开始播放. 我能够通过开发者控制台触发正常行为和错误行为。

以及其他几个 IntentHandler。这些 IntentHandler 之一启动音频流。

音频意图处理程序由 ResumeIntentHandler 支持

以及以下 AudioPlayer 处理程序

该技能按预期操作,例如 Aelxa,请向 SkillName 寻求帮助。我能够达到我所有的非音频意图。还可以帮助意图、取消、停止等按预期工作。为什么启动时会触发音频意图?

我添加了更好的日志记录。错误行为似乎发生在用户第二次启动该技能之后。第一个技能交互效果很好。之后,“start SkillName”触发“AudioIntentHandler”。请求如下所示:

所以在我看来,我的 addRequestHandlers 不是这里的问题,因为它的 Alexa 发送了错误的意图。AudioIntentHandler 根据错误请求正确触发。

错误请求包括 AudioPlayer 信息。可能来自与该技能的最后一次(第一次交互)。我相信这可能是错误的根源?

如果用户启动技能并且 Alexa 检测到存在停止的音频,Alexa 是否会继续使用音频意图?我在暂停或停止时没有正确清除音频播放器吗?