跳到主要内容

从自有应用创建 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 存储桶

  1. 前往 AWS 控制台,点击 Services > S3

  2. 点击 Create bucket

  3. 输入存储桶的名字。

  4. 选择需要创建存储桶的区域。

  5. 向下滚动界面,找到 Object Ownership,启用 ACLs enabled 选项。

    Change Object Ownership settings

  6. 向下滚动界面,找到 Block Public Access settings for this bucket

  7. 取消勾选 Block all public access,并勾选下面所有的选项。此步骤为必须步骤。

    Disable Block Public Access setting

  8. 滚动至页面底部,点击 Create Bucket

  9. 在存储桶列表中,点击新创建的存储桶。

  10. 点击 Create Folder 并创建 .well-known 文件夹。

    Creating folder on S3

  11. 勾选 .well-known 文件夹前面的复选框,并点击 Copy URL

    Copy folder URL

  12. 从 URL 中移除在第十步中记下的 .well-known/ 后缀。 该值将在后续步骤中使用,记作 redirectURL

  13. 参考以下步骤,创建安卓应用链接或 iOS 通用链接:

上传文件至 S3 并设置公开读取权限

  1. 前往 AWS 控制台,点击 Services > S3

  2. 在存储桶列表中,点击新创建的存储桶。

  3. 打开 .well-known 文件夹。

  4. 将文件上传至 S3 存储桶中的 .well-known 文件夹。

    • 创建安卓应用链接时,上传先前创建的 assetslinks.json 文件。
    • 创建 iOS 通用链接时,上传先前创建的 apple-app-site-association 文件。
    备注

    注意,若想同时为安卓和 iOS 上传文件,则需按照第 5-10 步为两个文件分别完成设置。

  5. 向下滚动并点击 Permissions

    Object Permissions

  6. 选择 Grant public-read access 选项。

    S3 ACLs

  7. 勾选下方知悉复选框。

    S3 object public Acknowledgement

  8. 点击 Permissions 标签页。这一步骤中需要更改存储桶名称,请添加以下存储桶策略并保存更改。

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::my-bucket-name/*"
    }
    ]
    }

    S3 bucket permissions

  9. 点击页面底部的 Upload 按钮。

为 RainMaker 配置回调 URL

  1. 用管理员账号登录 RainMaker 管理面板。

  2. 打开 Deployment Settings 标签页。

  3. 点击 Cognito Configurations

  4. 找到名为 "esp-rainmaker-alexa-skill" 的 Cognito 应用客户端。

  5. 更新 esp-rainmaker-alexa-skill 客户端的回调 URL。将你在创建 S3 存储桶 小节第 12 步中复制的 redirectURL 值添加到现有回调 URL 中。

    Alexa callback URLs

    备注

    请注意,需要用逗号 (,) 将两个 URL 隔开。

启用 Alexa skills App-to-App 账号关联

  1. 登录 Alexa 开发者控制台

  2. 在列表中,选择你想要配置应用账号关联的 skill。

  3. 在左侧导航栏,点击 ACCOUNT LINKING

    Account Linking tab

  4. 勾选复选框 Allow users to link their account to your skill from within your application or website

    Enable App Linking

  5. 滚动至 Your Redirect URLs 设置部分。

  6. 点击 + 图标,添加重定向 URL。

  7. 输入你在创建 S3 存储桶小节第 12 步中复制的 redirectURL 值。

    Redirect URL configuration

  8. 请参考[获取客户端 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 应用客户端添加客户端密钥。

    RM Client Secret

  9. 保存更改。

获取 Alexa 访问令牌 URL

首先请确保你的 AWS 区域为 RainMaker 的部署区域。

  1. 登录 AWS 控制台,打开 API Gateway Service

  2. 找到 AlexaSkillLinking AWS Api Gateway API 网关。

    API gateway

  3. 打开 Stages 标签页。

    Stages

  4. 点击 dev 展开选项。

  5. 点击 POST

  6. 复制 Invoke URL。在为移动应用配置 alexaAccessTokenURL 时需要用到该 URL。

    Fetch Token URL

完成上述配置后,请为移动应用配置 Alexa 账号关联。

具体步骤请参考以下文档:

On this page