gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:31:22 25 4
gpt4 key购买 nike

背景

我正在实现 Alexa 的 App-to-App Account Linking顺其自然,我卡在了第 6 步 - 使用 Alexa 的 Skill Activation API 启用该技能.

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

The redirect_uri parameter that was included in the authorization request to your OAuth 2.0 server to obtain the user's authorization code. This enables Amazon to retrieve access tokens from your token server. This URL must be opaque to Amazon.

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

错误信息

[status]  400
[response] {"message":"Could not contact provider of account linking credentials"}

注意事项

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

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

NB: I have a endpoint for exchanging an auth_code for an access_token. The token is returned in the body; there's no redirect with the access_token appended to the redirect_url.

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

async enableSkill() {
try {
let response = await fetch(`https://api.amazonalexa.com/v1/users/~current/skills/${this.skillId}/enablement`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${this.alexaAccessToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
stage: 'development', // or live
accountLinkRequest: {
redirectUri: Linking.makeUrl(), // <--- unsure
authCode: this.myAppAuthCode, // <-- auth code from my system, not Alexa's
type: "AUTH_CODE"
}
})
});

return response.json();
} catch (err) {
throw new Error(err);
}
}

最佳答案

我认为像 Google 和 Facebook 这样的不同 OAuth 服务器是不可能一起使用的。我不确定是否可以将 firebase 用作 OAuth 服务器。

在技能的帐户链接选项卡中,您必须输入要使用的 OAuth 服务器的详细信息,并且在 accountLinkRequest 中您必须输入 redirectUri您用于此服务器的 OAuth 登录。

当您拥有自己的 OAuth 服务器时,请确保它在端口 443 上运行。我花了几个小时才发现它无法使用我的 Node.js 后端使用的端口 3000。

关于oauth-2.0 - Alexa Skill Activation API 中的 redirect_uri 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59348610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com