【问题标题】:Can you post (state) information to an Alexa Skill without going through an intent?您可以在不经过意图的情况下将(状态)信息发布到 Alexa Skill 吗?
【发布时间】:2019-11-07 17:14:41
【问题描述】:

一般来说是 Alexa 技能的新手。开发一个应用程序,其中 Alexa 技能的状态由语音交互以外的其他方式确定。比如说,它是一个天气技能。我知道我可以从技能意图处理程序访问天气服务来检索“天气状态”,但我想知道是否有一种方法 - 在这个例子中 - 气象站,将天气状态发布到技能和让技能将其存储为(全局的、与用户无关的)状态变量。 这将使我不必构建第二个 Web 服务来维护状态信息。

我已经看到技能的消息传递能力,但我不确定这是否适合我想要的东西。

【问题讨论】:

    标签: alexa alexa-skills-kit alexa-app


    【解决方案1】:

    我想你需要这个Proactive Events API

    您可以使用 Proactive Events API 向 Alexa 发送事件。这些事件代表客户可能感兴趣的事实数据。收到事件后,Alexa 会主动将信息传递给选择接收这些事件的客户...

    因为客户可以选择通过您的技能接收事件通知, 他们从 Alexa 收到主动消息从来不会感到惊讶。 使用此 API,您可以发送个人客户特定事件,该事件 导致单个客户的通知。或者,你 可以发送一个广播事件,触发通知给所有 选择从您的技能接收通知的客户。 例如,天气技能可以发送单个天气警报, 然后,Alexa 会向所有感兴趣的客户提供服务。

    Javascript中有一个demo

    【讨论】:

    • 我将使用 ProActive Events 作为应用程序的一部分,但这不是我目前正在寻找的。坚持天气示例,让我们假设一分钟,每个 Alexa 用户的天气始终相同。当天气从“晴”变为“阴”时,我想把这个变化的数据发送给技能并持久化存储,这样每当有人问天气时,技能就可以直接响应,而不必经过一个第二个网络服务。
    • @Genoil 也许您可以将信息存储为persistent attributes
    【解决方案2】:

    在我发现设置 EB Web 服务和使用 Node 构建简单的 API 以供 ASK lambda 函数从中获取数据是多么容易之后,我想这是一个更好的方法。我什至可以将 ASK lambda 函数替换为 EB 节点服务,该服务将技能后端和持久存储合二为一。

    【讨论】:

      猜你喜欢
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 2022-06-21
      • 1970-01-01
      相关资源
      最近更新 更多