从自有应用创建 Alexa 账号关联(可选)
介绍
Alexa 账号关联 (Account Linking) 功能允许用户从自有应用中关联 Alexa 账号。启用该服务后,用户可以享受以下功能:
- 在自有应用中发现 Alexa Skill。
- 在自有应用中启用 Skill 和账号关联。
- 在已登录 Alexa 应用的情况下,无需输入账号密码即可链接到 Alexa 账号。在关联账号时,用户必须登录一次自有应用。
- 在未安装 Alexa 应用的情况下,使用 Login with Amazon (LWA) 即可从自有应用关联账号。
注意:如果您想要阅读开发文档,请参考 从移动应用创建 App to App 账号关联。
前提条件
已完成 Alexa 与 ESP RainMaker 的集成。详细步骤请参考 语音助手集成。
如果尚未完成,请按照 语音助手集成 中的步骤完成 Alexa 集成。完成后,请回到此处启用 App to App 账号关联。
已部署 ESP-RainMaker-3P-Integration-AddOns 仓库。
如果尚未部署,请参考 部署 ESP_RainMaker-3P-Integrations-Addons SAR 仓库。
以下为配置 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 Skill 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 值。
- 在
esp-rainmaker-alexa-skill
应用客户端添加客户端 Secret。请参考 为 Alexa Skill 和 Google Actions 获取客户端 ID 和 Secret。
- 保存更改。
获取 Alexa 访问令牌 URL
首先请确保您的 AWS 区域为 RainMaker 的部署区域。
登录 AWS 控制台,打开
API Gateway Service
。找到
AlexaSkillLinking AWS Api Gateway
API 网关。
- 打开
Stages
标签页。
点击
dev
展开选项。点击
POST
。复制 Invoke URL。在为移动应用配置 alexaAccessTokenURL 时需要用到这一 URL。
完成上述配置后,请为移动应用配置 Alexa 账号关联。
具体步骤请参考以下文档: