alexa-skills-kit - 使用 Alexa 技能管理 (SMAPI) 与 CLI

标签 alexa-skills-kit login-with-amazon

现在它可用了,我想使用 Alexa SMAPI 来管理技能模型,就像我可以通过 Dialogflow API 在 Google 上使用 Actions 一样。在 SMAPI docs 中,它说:

“如果您正在构建自己的工具或服务以与 API 集成,您将需要实现 OAuth 2.0 与 Login with Amazon 的集成,以请求用户的授权并检索用于调用技能管理 API 的访问 token 。请参阅 Developer Guide for Login With Amazon。 API 需要使用授权代码授权类型。”

要使用 Dialogflow API,您只需提供来自代理的开发人员访问 token 。要使用 SMAPI,每个请求都必须有一个 Authorization header ,其值应该是从 Login with Amazon 检索到的访问 token 。

我有一个关于应用 LWA Dev Guide 中的说明来获取此访问 token 的基本问题。一切都是为了告诉您如何在网站上使用 LWA。我不是从网站设置 SMAPI 调用。我只想有一个 Lambda 函数,它被触发以启动 nodejs 代码来更新技能。我如何在这种情况下应用这些说明?如上所述,指南第 25 页上的授权代码授予部分适用。有没有办法只获取我可以用来直接获取 access_token 的身份验证代码,而不是通过 redirect_uri?换句话说,我想知道您是否可以在网站之外使用 LWA 框架以及 SMAPI。

或者 SMAPI 真的只设置为与网站一起使用,而我们只是应该将 CLI 用于我所描述的用例?

最佳答案

客户必须使用 Amazon.com 登录来验证和授权您的应用程序代表他们使用 API。该部分需要网络浏览器。

一旦完成并且您拥有访问 token 和刷新 token ,您将永远不需要再次使用网络......除非客户通过您提供的机制注销您的服务或通过亚马逊登录取消您的服务的授权应用程序控件在其亚马逊帐户控制面板中。然后他们需要通过 Login with Amazon 重新登录或通过 Login with Amazon 重新授权您的应用程序。

更新:考虑到你的评论...

听起来您只想为自己编写脚本,并且无需在其中编写身份验证工作流,而是使用从开发人员控制面板获得的一些访问代码。

所以这是一个可能的解决方案:在您控制的机器上进行 Alexa Skills Kit 命令行界面 (ASK CLI) 设置。

npm install -g ask-cli
ask init

它将为您打开浏览器并为您运行身份验证。然后它将您的访问和刷新 token 写入本地计算机上的配置文件。如果您使用的是 Linux 或 Mac 终端,则可能需要“sudo”安装。

documentation of the init command告诉你在哪里可以找到你的配置文件。将您的 token 从它复制到您的脚本,您应该能够在与该开发人员帐户关联的技能上运行 SMAPI 命令(我自己没有尝试过,但看起来您在设置 Login with Amazon 时请求相同的范围) SMAPI 或在 ASK CLI init 中使用它,所以这些 token 应该可以工作)。

您仍然需要定期刷新访问 token ,但您不必建立任何网站架构。

这有帮助吗?

关于alexa-skills-kit - 使用 Alexa 技能管理 (SMAPI) 与 CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47321778/

相关文章:

speech-recognition - 有没有办法通过 Alexa 或 DialogFlow.ai 等技术来使用原始音频数据?

alexa-skills-kit - 从 Alexa 技能套件 (ASK) 获取位置

amazon-web-services - 为 Alexa Skill 创建自定义和动态 Slot 值

alexa-skills-kit - 尽管 LWA 授权 token 有效,但 Alexa SMAPI 仍返回 HTTP 4xx

android - 使用 Android 登录亚马逊 - 多个 API key

javascript - 如何将 aws cognito 与 Web 联合和 javascript 结合使用

java - 打包为 jar 时的 Alexa 语音服务 SSL 握手

node.js - 使用 SDK V4 中的 Microsoft Bot 框架创建 Alexa 机器人