问题标签 [jovo-framework]
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.
alexa - Alexa Skills Kit CLI 上缺少命令
我刚刚从 升级jovo-cli
1.0.13
到1.2.10
,现在遇到ask-cli
. 我不确定为什么会连接这些,但我曾经能够jovo deploy -p alexaSkill
毫无问题地运行,现在当我运行它时会引发以下错误:
我尝试更新ask-cli
到版本1.4.9
并完全删除、重新安装和重新初始化。两者都不起作用。
在所有可用的ask
命令中,奇怪的是, init
, deploy
, new
, clone
, simulate
, validate
, diff
,dialog
和help
都存在并且可以调用。特别是所有抛出此错误的列表命令(lambda
、api
、add
、remove
和util
)。
有没有人遇到过这个?我可以采取哪些其他步骤来尝试修复它?
jovo-framework - Jovo 与信使
我最近开始使用 Jovo 框架来构建基于 Dialogflow 的 Google Home 设备应用程序。该应用程序运行良好。现在决定通过 Dialogflow 与 Facebook Messenger 进行集成。它工作正常。我可以触发机器人从 Messenger 开始加上可以看到输出等等,但有两个问题:
- FB messenger 中的输出如下所示:[speak]Some text inside[/speak],我们可以从输出中删除 SSML 标签吗,有没有办法在触发 tell() 或 ask() 方法之前去除这些标签,我已经尝试使用 this.googleAction().setResponseObject() 方法,检查了如何响应 JSON 的样子,然后创建了要传递的对象,其中我删除了这些标签,但它不是这样高效,寻找更简单的东西
- 有没有一种方法可以使用,比如 setResponseObject() 但没有 alexaSkill() 或 googleAction “prefix” obj,我们可以在其中准备一个自定义对象,以便我们可以发送自定义 JSON 响应。我问是因为我想使用 FB Messenger 特定的输出,例如按钮:https ://developers.facebook.com/docs/messenger-platform/send-messages/buttons 。这是否可以使用 JOVO
alexa - Jovo Alexa 视频 onEnd 活动?
我正在尝试使用 Jovo 和 Alexa 的新 APL 播放视频。我遇到的问题是 Alexa 文档说他们可以收听 onEnd 事件,但它似乎没有触发?
https://developer.amazon.com/docs/alexa-presentation-language/apl-video.html#on-end
这是我的 APL 文档的样子
视频最后也挂了,好像直到技能超时?我不确定这是否是 Alexa 的 APL 处理视频的方式,或者可能是问题的征兆。
任何帮助是极大的赞赏!
编辑:这就是它在 Jovo 中的实现方式,这就是为什么我认为 APL 文档可能是问题所在。https://github.com/jovotech/jovo-framework/blob/5544dc587c8c344a133e1a4b2cb659b4319954b4/jovo-integrations/jovo-platform-alexa/src/modules/Display.ts#L154
node.js - 从这个承诺返回响应的正确方法是什么?
我正在使用 Jovo Node.js 框架为 Amazon Alexa 和 Google Assistant 平台编写语音优先应用程序。我向外部 API 发出嵌套的 http 请求(第一个调用是获取作为第二个 API 调用的参数所需的资源 ID)。数据返回后,我想向应用程序的用户发送响应。但是,我在测试期间根本没有得到任何回应。
我尝试从同一个 .then() 内部发送响应,我从 API 获取数据并制定响应,我还尝试简单地在一个对象中返回该响应并将另一个 .then() 链接到在我尝试发送响应的地方处理该承诺。这些选项都不起作用。
我在请求处理程序中 console.logged “this”,然后在 .then() 处理第一个 API 调用,在 .then() 处理第二个 API 调用(只是为了确保上下文相同)和它是同一个“这个”。
console.logging 从 API 接收的数据也有效,所以我知道我收到了 API 的响应。我只是无法向用户发送回复。
下面是我的代码:
node.js - 如何在不结束会话的情况下使用 JOVO 的 tell 方法响应 Alexa 或 Google
我的 JOVO 项目只是回答了来自 Alexa 和 Google 的一些问题。现在,每次我使用 Amazon Developer 和 Google 的模拟器测试我的项目时,我都必须在每次响应后重新打开技能/操作。我认为这是因为 JOVO 中的 .tell 方法结束了会话。
我知道在 C# 中,有一个方法 .shouldEndSession() 并且当您将其设置为 false 时,下一个命令将被发送回我的技能/操作。
JOVO有没有类似的方法
谢谢
javascript - 你如何(或者你能)如何在 JOVO 的 Intents 中运行异步代码?
我想在我的 JOVO 意图中运行一个异步函数。目前,它正在同步运行代码,这不允许 JOVO 发送正确的响应。
这就是我的代码的样子。
FindItem()
返回项目名称的字符串(如 Banana)。
然而,这只是回应'nada'。我希望它以(例如:)“香蕉”作为回应
有什么解决办法吗?
提前致谢!
node.js - 在单个 Alexa 技能中使用多个声音?
我想在一项技能中使用多个 Alexa 声音。这可能吗?
我知道有 Amazon Polly,但您使用什么 SSML 来使用不同的字符。我已经尝试在网上查找,但我一无所获。
我希望“你的名字是蒂姆”的声音与句子的其余部分不同。
actions-on-google - 通过 Auth0 使用帐户链接,但将其重定向到我的后端
我正在使用 jovo 框架开发Alexa-skill/Google-action 。我有一个单独的网络应用程序,我的用户存储在其中,我有身份验证 api 和为它实现的一切。现在,当用户使用我的 Alexa-skill/Google-action 时,我希望能够通过使用我的后端来识别它们。帐户链接似乎是这样做的方法。所以我为此使用Auth0。 我的问题是如何专门为此使用 Auth0。我不想将我的用户迁移到 Auth0,只想做这样的事情:
当有人使用技能/操作时,系统会提示他们进行帐户关联,我希望他们输入用户名和密码,然后我希望将该请求重定向到我的后端。我想要来自后端的响应以及来自 Auth0 的响应。
现在我实现了 Auth0,但我在那里创建了一个数据库,并且有几个用户只是为了测试它。
node.js - 无法在设备上使用交互式画布查看 Web 应用
我已经使用谷歌的交互式画布 API 为我的谷歌操作提供视觉内容和语音交互。
交互式画布通过 https webapp 显示内容。我将我编写的 nodejs webapp 部署到 AWS EC2 实例,它工作正常,我可以通过浏览器以及谷歌操作控制台看到 webapp,但它没有在任何支持谷歌助手的设备上呈现。
我使用 nginx 允许将来自 http 和 https 的请求转发到端口 4001,并通过 openssl for https 获得自签名证书。我已经为我的实例打开了端口 80 和 443。
这就是我的 webapp 监听端口的方式:
actions-on-google - 当未单独打开操作以询问意图时,“代理返回空 TTS”
当我使用“okay Google, ask {skillname} to {utterance}”调用该技能时,我得到响应“代理返回一个空的 tts”并且对话结束。它甚至似乎都没有打到我的后端 - 我已经尝试在本地服务器和 AWS 上托管后端代码,并且在两种情况下都会出现相同的问题。在 Google 上的 Stackdriver 或 AWS 上的 CloudWatch 上都没有发出请求的日志。我得到的唯一响应是以下内容调试选项卡:
其他任何选项卡中都没有。当我尝试在手机上以相同的方式调用这些短语时,我只看到一个加载符号,而日志中也没有任何内容表明它甚至到达了后端。
奇怪的是,当我说“好的 Google,与 {skillname} {utterance} 交谈”时,这不会发生 - 这绝对没问题。
当我首先打开我的操作,然后调用它们时,所有的意图都工作得很好。我已经使用 Jovo 构建了它并在 Alexa 上发布了这个问题,这个问题只发生在 Google 上。