从自有应用创建 Alexa 账号关联(可选)
介绍
Alexa 账号关联 (Account Linking) 功能允许用户从自有应用中关联 Alexa 账号。启用该服务后,用户可以享受以下功能:
- 在自有应用中发现 Alexa skills。
- 在自有应用中启用 skill 和账号关联。
- 在已登录 Alexa 应用的情况下,无需输入账号密码即可链接到 Alexa 账号。在关联账号时,用户必须登录一次自有应用。
- 在未安装 Alexa 应用的情况下,使用 Login with Amazon (LWA) 功能即可从自有应用关联账号。
若想阅读开发文档,请参考从移动应用创建 App-to-App 账号关联。
前提条件
RainMaker skills 必须使用 StackSet 进行部署。详细步骤请参考语音助手集成.
如果尚未完成,请按照语音助手集成中的步骤完成 Alexa 集成。完成后,请回到此处启用 App-to-App 账号关联。
下文介绍了配置 Alexa App-to-App 账号关联的具体步骤。
为移动应用创建重定向 URL
用户同意 Alexa 应用或 LWA 中的关联请求后,就能重定向至你的自有应用。为了实现重定向,需要为 iOS 应用创建通用链接 (Universal Link),为安卓应用创建应用链接 (App Link)。
下文介绍了在 AWS S3 中托管通用链接和应用链接文件的步骤。
在进行以下操作前,请首先确保你的用户有管理权限。
创建 S3 存储桶
-
前往 AWS 控制台,点击
Services
>S3
。 -
点击
Create bucket
。 -
输入存储桶的名字。
-
选择需要创建存储桶的区域。
-
向下滚动界面,找到
Object Ownership
,启用ACLs enabled
选项。 -
向下滚动界面,找到
Block Public Access settings for this bucket
。 -
取消勾选
Block all public access
,并勾选下面所有的选项。此步骤为必须步骤。 -
滚动至页面底部,点击
Create Bucket
。 -
在存储桶列表中,点击新创建的存储桶。
-
点击
Create Folder
并创建.well-known
文件夹。 -
勾选
.well-known
文件夹前面的复选框,并点击Copy URL
。 -
从 URL 中移除在第十步中记下的
.well-known/
后缀。 该值将在后续步骤中使用,记作 redirectURL。 -
参考以下步骤,创建安卓应用链接或 iOS 通用链接:
上传文件至 S3 并设置公开读取权限
-
前往 AWS 控制台,点击
Services
>S3
。 -
在存储桶列表中,点击新创建的存储桶。
-
打开
.well-known
文件夹。 -
将文件上传至 S3 存储桶中的
.well-known
文件夹。- 创建安卓应用链接时,上传先前创建的
assetslinks.json
文件。 - 创建 iOS 通用链接时,上传先前创建的
apple-app-site-association
文件。
备注注意,若想同时为安卓和 iOS 上传文件,则需按照第 5-10 步为两个文件分别完成设置。
- 创建安卓应用链接时,上传先前创建的
-
向下滚动并点击
Permissions
。 -
选择
Grant public-read access
选项。 -
勾选下方知悉复选框。
-
点击
Permissions
标签页。这一步骤中需要更改存储桶名称,请添加以下存储桶策略并保存更改。{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
} -
点击页面底部的
Upload
按钮。
为 RainMaker 配置回调 URL
-
用管理员账号登录 RainMaker 管理面板。
-
打开
Deployment Settings
标签页。 -
点击
Cognito Configurations
。 -
找到名为 "esp-rainmaker-alexa-skill" 的 Cognito 应用客户端。
-
更新
esp-rainmaker-alexa-skill
客户端的回调 URL。将你在创建 S3 存储桶 小节第 12 步中复制的 redirectURL 值添加到现有回调 URL 中。备注请注意,需要用逗号 (,) 将两个 URL 隔开。
启用 Alexa skills App-to-App 账号关联
-
登录 Alexa 开发者控制台。
-
在列表中,选择你想要配置应用账号关联的 skill。
-
在左侧导航栏,点击
ACCOUNT LINKING
。 -
勾选复选框
Allow users to link their account to your skill from within your application or website
。 -
滚动至
Your Redirect URLs
设置部分。 -
点击
+
图标,添加重定向 URL。 -
输入你在创建 S3 存储桶小节第 12 步中复制的 redirectURL 值。
-
请参考[获取客户端 ID 和密钥](/i18n/zh-Hans/docusaurus-plugin-content-docs/current/dev/voice-assistant-integrations/configure-alexa-gva.md#为-alexa-skill-和-google -action-获取客户端-id-和密钥),在
esp-rainmaker-alexa-skill
应用客户端添加客户端密钥。 -
保存更改。
获取 Alexa 访问令牌 URL
首先请确保你的 AWS 区域为 RainMaker 的部署区域。
-
登录 AWS 控制台,打开
API Gateway Service
。 -
找到
AlexaSkillLinking AWS Api Gateway API
网关。 -
打开
Stages
标签页。 -
点击
dev
展开选项。 -
点击
POST
。 -
复制 Invoke URL。在为移动应用配置 alexaAccessTokenURL 时需要用到该 URL。
完成上述配置后,请为移动应用配置 Alexa 账号关联。
具体步骤请参考以下文档: