问题标签 [alexa-account-linking]

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 投票
1 回答
895 浏览

amazon-web-services - 如何使用 Login With Amazon 将用户帐户链接到我的技能?

通过遵循亚马逊的 Alexa 文档,我很难让它发挥作用。我在 Account Linking 上搁浅了,因为我不知道如何让 Login with Amazon (LWA) 请求 alexa::skills:account_linking 范围。

我已将 Amazon API 库包含在我的应用程序中并正确设置,我正在使用(全球可用的)amazon 对象调用该过程,如下所示(打字稿):

我期望从中发生的是一个弹出的亚马逊登录过程,它(1)让用户登录到亚马逊,(2)收集用户同意将他们的亚马逊账户链接到我的 Alexa 技能(即链接到我的凭证托管服务),以便我们(在浏览器中)返回一个授权代码,我们可以(在我们的服务器上)交换承载和刷新令牌以代表用户行事。

问题是,上面的代码立即失败并且永远不会弹出一个进程。抛出的消息说:“请求了一个未知的范围”。如果我从 options.scope 数组中删除 'alexa::skills:account_linking' 字符串,我会进入亚马逊登录屏幕,如果我登录亚马逊,我的服务器会获得授权码等。但没有帐户链接已经发生了,所以我被卡住了。

我试图将这个文档(它也谈到以某种方式包含技能 ID)与这个文档相协调,但我只是不知道如何使它工作。谁能帮我指出我在这里做错了什么的正确方向?它一定是非常基本的东西。

0 投票
1 回答
406 浏览

node.js - 获取 Google 令牌以使用 Cognito 访问 google 服务以获得 Alexa 技能

我已经为 alexa 技能启用了 AWS Cognito,并且只为用户启用了 google 登录,现在 Cognito + google 身份验证流程成功完成,并且我们获得了 AWS 持有者令牌ey...,现在我希望使用 google 服务 AP(驱动器/gmail),敏感/受限的 Google API

这可以使用 Cognito 作为身份验证提供程序吗?如果不能,我可以创建一种 Alexa + Node(中间件,用于处理谷歌身份验证,然后将代码/令牌传回 Alexa 服务器)

0 投票
1 回答
1037 浏览

oauth-2.0 - Alexa Skill Activation API 中的 redirect_uri 是什么?

背景

我正在实施 Alexa 的App-to-App Account Linking Flow,我被困在第 6 步 - 使用 Alexa 的Skill Activation API启用技能。

具体来说,我不确定为redirect_uriPOST 字段提供什么值。在文档中,提供了以下描述:

包含在向您的 OAuth 2.0 服务器的授权请求中包含的 redirect_uri 参数,用于获取用户的授权代码。这使亚马逊能够从您的令牌服务器检索访问令牌。此 URL 必须对 Amazon 不透明。

我的理解是 Alexa 想要将现有的授权代码交换为访问令牌,但我不知道 Alexa 是如何尝试“在后台”完成此操作的,而我目前的方法会引发 400 错误。

错误信息

笔记

  • 我的应用使用 Firebase 身份验证,并通过与 Google 和 Facebook 的联合登录为用户创建帐户。因此,Google 和 Facebook 重定向回我的原生应用(React Native)。
  • 我没有通用链接;相反,在我的帐户链接流程中,Alexa 应用程序将用户重定向到一个 html 页面,该页面使用其自定义模式重定向到我的应用程序。
  • 当用户从 Alexa 登录我的应用程序时,Alexa 会将他们从我的登录页面重定向回 Alexa 应用程序。在这种情况下,Alexa通用链接是重定向 url。
  • 当用户从我的应用程序(应用程序到应用程序链接)登录 Alexa 时,Alexa 应用程序会将他们重定向到我的应用程序。我的应用是重定向网址。

我尝试使用我的应用程序的 [faux]“通用链接”作为重定向 url,但无济于事。我的登录流程中没有其他重定向。这个网址应该是什么?

注意:我有一个端点用于将 auth_code 交换为 access_token。令牌在正文中返回;没有附加到 redirect_url 的 access_token 的重定向。

技能激活示例(我的 React Native 应用程序):

0 投票
1 回答
537 浏览

oauth-2.0 - Alexa 帐户链接 - 刷新令牌过期时会发生什么?

我的技能需要帐户链接,它将通过 OAuth 2.0 协议使用 AWS cognito 用户池对客户进行身份验证。我可以在用户池中指定刷新令牌的 TTL,我决定让它有效期为 60 天。

据我了解,alexa 会向您发送访问令牌以及您的技能收到的每个请求,以便您可以识别使用该技能的客户。如果他们的访问令牌过期,alexa 将通过在将带有访问令牌的请求转发给您之前刷新他们的令牌来处理这个问题。因此,您可以获得有效的访问令牌。

现在,刷新令牌过期时会发生什么?即使客户每天都在使用该技能,它是否会在 60 天后过期?我想我要问的是:

  1. 当访问令牌过期并且 alexa 刷新它时。刷新令牌是否也会刷新?
  2. 如果是,当刷新令牌在 60 天后过期时,我们如何保持客户登录和他们的帐户链接?
0 投票
1 回答
53 浏览

permissions - Alexa - 有没有办法在没有帐户链接的情况下获取用户信息?

我想绕过帐户链接并获取用户名、电子邮件和电话号码。有没有办法做到这一点?我似乎找不到任何关于如何绕过帐户链接并仍然获取用户信息的文档。

0 投票
2 回答
190 浏览

alexa - 用户全名的自定义插槽并在单个 alexa 技能中链接多个帐户

我有两个与 Alexa Skill 相关的查询 -

  1. 我正在使用帐户链接功能,但是当我使用一个帐户登录时,我无法使用另一个帐户登录,知道吗?有关这方面的更多信息,请参阅此处
  1. 对于用户全名,我创建了一个自定义Slot,但无法获取用户对 Echo 显示设备说出的确切全名,例如,使用说话Danny Stone但 Alexa 设备将其捕获为“Danny”、Dannys 音调”、“Danni”等。

任何帮助,将不胜感激

0 投票
2 回答
241 浏览

login-with-amazon - 从网站开始的应用程序到应用程序 Alexa 帐户链接

我正在从我的网站开始实施 alexa 帐户链接以在我的 alexa 设备上接收通知,使用文档https://developer.amazon.com/en-US/docs/alexa/account-linking/app中所示的 LWA 流程-to-app-account-linking-starting-from-your-app.html#alexa-url-parameters

但我得到范围“alexa::skills:account_linking”的无效范围错误。

0 投票
2 回答
746 浏览

azure-active-directory - 使用查询字符串重定向 Azure B2C 中的 uri。错误详情:URL 可能不包含查询字符串

我正在尝试将 Azure B2C OAuth 用于与隐式流链接的 Alexa 帐户。下面是来自 Alexa 的重定向 url

https://alexa.amazon.co.jp/spa/skill/account-linking-status.html?vendorId=XXXXXXXXXX

但是添加它会在 Azure B2C 应用程序中出现以下错误。

更新 xxx-xxxxxxapp 应用程序失败。错误详情:URL 可能不包含查询字符串

我尝试使用以下链接解决此问题,但它不起作用 https://blogs.aaddevsup.xyz/2018/04/query-string-is-not-allowed-in-redirect_uri-for-azure-ad/

我还尝试了在 B2C 中使用 SPA 的身份验证代码授权流程。这也不适用于 Alexa,因为它具有 PKCE - https://github.com/MicrosoftDocs/azure-docs/issues/64073

有人成功创造了这个吗?

0 投票
1 回答
561 浏览

javascript - Alexa 帐户链接 - “无效的帐户链接凭据”

我正在创建带有帐户链接的 Alexa 技能。我得到了链接授权码并将其换成了访问令牌。然后,我尝试将所有参数:代码、访问令牌、技能 ID 放入 Alexa 技能激活 API。我总是得到一个按摩:“无效的帐户链接凭据”。

该怎么办?

0 投票
0 回答
71 浏览

alexa - 您如何订阅与帐户相关的活动?

我正在创建一个需要帐户链接的 Alexa 技能,并且我想订阅 SKILL_ACCOUNT_LINKED 事件,以便我可以在数据库中创建一个用户。

我在 Alexa 控制台中提供了所有帐户关联信息,包括:

  • 允许帐户关联
  • 允许用户在不关联帐户的情况下启用技能
  • 禁止从应用程序或网站内链接帐户
  • 禁止用户使用手机进行身份验证

而且,我已将 SKILL_ACCOUNT_LINKED 添加到技能清单中的事件中。

我使用给定的 lambda 成功接收了大多数事件(启用技能、更改权限、禁用技能)。而且,我还收到了针对意图请求的链接用户的有效访问令牌。但是,当有人成功链接他们的帐户时,我没有收到事件。

到目前为止我尝试过的事情:

  • 多次部署清单和 lambda(s)
  • 仔细检查 oauth 配置,确保 Alexa-redirect-urls 在 allowed-callback-urls 内
  • 多次链接和取消链接,同时从 oauth 提供者中删除用户
  • 每个 Alexa 技能都有一个专用的 lambda(我正在创建一个多租户技能,所以理想情况下我会有一个带有多个 Alexa-Skill 触发器的 lambda)
  • 强制用户在技能启用期间链接他们的帐户。理想情况下不会出现这种情况,因为有一些匿名语音内容
  • 仅订阅 SKILL_ACCOUNT_LINKED 事件

这些方法都不起作用。我错过了什么?