有什么方法可以使用 API 为 ALEXA 技能管理 API 授权生成 LWA 令牌?
现在,我正在通过 ASK-CLI 生成 LWA 令牌并将复制粘贴到 ASK-SMAPI-SDK 代码中。是否有任何 API/方法可以自动化此过程?
任何帮助是极大的赞赏。
有什么方法可以使用 API 为 ALEXA 技能管理 API 授权生成 LWA 令牌?
现在,我正在通过 ASK-CLI 生成 LWA 令牌并将复制粘贴到 ASK-SMAPI-SDK 代码中。是否有任何 API/方法可以自动化此过程?
任何帮助是极大的赞赏。
您可以从 Node 中点击 SMAPI 以使用 SMAPI Node.js SDK,此处提供的文档带有您使用 ASK CLI 生成的刷新令牌。您只需生成一次刷新令牌,然后就可以重复使用它。
为了使用 SMAPI 进行身份验证,您需要执行以下操作:
ask util generate-lwa-tokens --client-id <Client ID> --client-confirmation <Client Secret>.const Alexa = require('ask-smapi-sdk');
// specify the refreshTokenConfig with clientId, clientSecret and refreshToken generated in the previous step
const refreshTokenConfig = {
clientId,
clientSecret,
refreshToken
}
const smapiClient = new Alexa.StandardSmapiClientBuilder()
.withRefreshTokenConfig(refreshTokenConfig)
.client();
然后,您将能够通过 SDK 上的函数调用来访问 SMAPI!
有多种方法可以解释您的问题..
一是您希望各种客户/帐户能够登录并使用 Web 界面生成令牌,而不必通过 CLI 手动生成令牌。
如果是这样,则有许多支持 LWA 的 OAuth 库。我搞砸的最后一个是 Passport(用于 Node),但那是不久前的事了。只需确保您请求正确的范围,因为大多数库默认为配置文件范围。
另一个是您每次要运行脚本时都会生成令牌,因为它们会过期。
在这种情况下,该ask util generate-lwa-tokens命令会返回一个访问令牌和一个刷新令牌。访问令牌可以使用一个小时。刷新令牌可以无限期使用,但需要在最后一个令牌用完时(通常在发出后 3600 秒)换取新的访问令牌。
考虑使用 ASK SMAPI SDK。
在 SDK 中,您向 SDK 客户端提供访问令牌和刷新令牌。如果访问令牌是灰尘,它将为您提供一个带有刷新令牌的新令牌并使用它。SDK 为您完成了一些繁重的工作,因此您可能需要考虑它。
但也许您已经编写了自己的脚本并且不想转换它们。如果您想编写自己的客户端,以下是有关使用刷新令牌的 LWA 文档。它是一个 REST API,因此您只需能够生成 HTTP 请求。
工作流程是这样的...