亚马逊语音开发笔记(一)

1. 前言

本系列将向开发者介绍如何从零开始,开发一款完整的 Alexa 技能,并详细介绍对接亚马逊开放平台语音服务的设计和编码过程。通过本文,您将学习如何在 Alexa Developer Console 中创建一个新的技能,并设计技能的交互模型、配置后端服务和实现前端逻辑。

2. 开发流程

2.1. 开发前准备

2.1.1. 创建亚马逊开发者账号

前往亚马逊开发者门户网站(https://developer.amazon.com/zh/), 创建一个免费的开发者账号。


2.1.2. 创建 Alexa 技能

登录亚马逊开发者账号后,转到alexa控制台(https://developer.amazon.com/alexa/console/ask),控制台没有中文界面,点击 Create Skill(创建技能)按钮开始创建一个新的 Alexa 技能。
该页面主要由以下步骤:



2.1.3. 配置 Alexa 技能(上)

上一步操作保存后,会直接跳转到技能配置页面。当然你也可以稍后再配置,因为亚马逊的语音控制需要配合 Lamdba 使用,而且每一个区域使用不同的端点, 所以首先得先配置Lamdba。

需要注意的是,为了最大限度地减少地区客户延迟问题,Alexa建议选择离目标客户最近的地理区域,并设置特定于地理位置的端点。比如 美国东部 选择 北弗吉尼亚州 托管Lambda函数。至写稿前,Alexa共提供3个地理区域用来单独配置North AmericaEurope, IndiaFar East


这步只介绍概念,等下配置。

2.1.4. 配置Lamdba

浏览器新打开一个窗口(https://us-east-1.console.aws.amazon.com/console),如果没登陆,登陆一下。
进入后台后,在左上角的服务搜索栏里面输入:Lambda,弹出来的菜单列表,选择进入Lambda模块。
点击 创建函数




2.1.4.1. 编写Java函数代码


    4.0.0
    com.demo
    demo-alexa-func2
    jar
    2.0.1
    demo-alexa-func2
    
        1.8
        UTF-8
        1.8
        1.8
    

    
        
            cn.hutool
            hutool-all
            5.8.14
        
        
            org.projectlombok
            lombok
            1.18.16
        
        
            com.amazonaws
            aws-lambda-java-core
            1.2.1
        
    

    
        
            
                org.apache.maven.plugins
                maven-shade-plugin
                3.2.4
                
                    false
                
                
                    
                        package
                        
                            shade
                        
                    

                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.1
                
                    1.8
                    1.8
                
            
        
    




package com.demo.alexa.handler;

import cn.hutool.json.JSONObject;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import cn.hutool.core.util.BooleanUtil;

/**
 * @author CaiCai
 */
public class AlexaSmartHomeHandler implements RequestHandler {

    @Override
    public Object handleRequest(JSONObject input, Context context) {
        LambdaLogger logger = context.getLogger();
        //获取环境参数
        Boolean isTrace = BooleanUtil.toBoolean(System.getenv("trace"));
        if(this.isTrace) {
            logger.log("需要log");
        }
        else{
            logger.log("不需要log");
        }
        //业务代码略
    }

}

业务逻辑实现不属于本篇幅内容,故只写了个简单的几行代码。

2.1.4.2. Lambda函数详细设置




修改处理程序的文本框,改为jar包中 处理函数的全类名 + 方法名,如下:

com.demo.alexa.handler.AlexaSmartHomeHandler::handleRequest



保存。

2.1.4.3. 添加触发器




这个在2.1.2那一步完成后,在技能详情页面可以找到Your Skill ID


2.1.5. 配置 Alexa 技能(下)

2.1.5.1. 复制端点

2.1.4中完成的Lambda的函数ARN 复制到 2.1.3中的alexa技能的默认端点,这里我暂时只配置一个区域。


2.1.5.2. 配置关联账号

点击ACCOUNT LINKING,进入该配置界面。


这里注意Your Authentication Scheme这个配置部分,如果想让client_secret通过request body传输,而不是通过header,则选择第二个Credentials in request body选项。

2.1.5.3. 配置权限

*Permissions
开启它,启用向alexa端点发送消息,这样技能将被授权异步响应Alexa指令并发送状态更改事件。


2.1.5.4. 其他配置






2.1.6. 小结

现在准备部分的配置完成了,后面进行具体的业务开发。

未完待续...

展开阅读全文

页面更新:2024-03-06

标签:亚马逊   开发者   函数   账号   语音   界面   技能   区域   代码   页面   业务   笔记

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top