百度语音DuerOS对接

百度语音对接

百度语音对接是基于云云对接的方式实现,主要有四个重点
1 账号授权
2 webService-发现设备
3 webService-控制设备
4 webService-属性上报
本篇值描述1和大致的流程、实际的文档可以参考官网 https://dueros.baidu.com/didp/doc/dueros-bot-platform/Introduction_markdown
5 发布上线

一 流程

1 注册duerOS账号.
主界面
2 创建一个技能-智能家居
输入名称
在这里插入图片描述
3 填写账户授权信息-根据Auth2.0协议
在这里插入图片描述
授权地址: 登录H5页面
Client_Id: 技能id
Scope: 可选填
Token地址: Auth2.0协议code换取token的接口地址
ClientSecret: 技能密匙 (用于代码验证)
WebService: 与duerOS交互的接口地址( webService-发现设备、webService-控制设备、webService-属性上报)

二 编码

根据 duerOS协议. 进行数据交互即可
测试完毕后即可申请发布
发布上线成

/**
     * webService方法解析数据
     * 文档: https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/discovery-message_markdown
     *
     * @param parse
     * @return
     */
    private String webServiceExecute(JSONObject parse) throws BusinessException {

        String out = null;
        // 1 获取参数 header & payload
        JSONObject headerIn = parse.getJSONObject(header);
        JSONObject payloadIn = parse.getJSONObject(payload);
        if (JsonUtils.isEmpty(headerIn) || JsonUtils.isEmpty(payloadIn)) {
            log.error("非法入参parse:{},header或者payload为空", parse);
            return out;
        }
        // 2 获取执行参数 header.name 和 header.namespace
        String headerNameIn = headerIn.getString(name);
        String headerNamespaceIn = headerIn.getString(namespace);
        if (JavaStringUtils.isEmpty(headerNameIn) || JavaStringUtils.isEmpty(headerNamespaceIn)) {
            log.error("非法入参parse:{},name或者namespace为空", parse);
            return out;
        }
        // 3 分发动作 - vip
        WebServiceExecuteRequest webServiceExecuteRequest = WebServiceExecuteRequest.builder()
                .parse(parse)
                .header(headerIn)
                .headerName(headerNameIn)
                .headerNamespace(headerNamespaceIn)
                .payload(payloadIn)
                .build();
        switch (Constant.DuerOSProtocol.value(headerNamespaceIn)) {
            case DISCOVERY: // 3.1 发现设备
                out = webServiceExecuteDiscovery(webServiceExecuteRequest);
                break;
            case CONTROL:   // 3.2 控制消息
                out = webServiceExecuteControl(webServiceExecuteRequest);
                break;
            case QUERY: // 3.3 查询消息
                out = webServiceExecuteQuery(webServiceExecuteRequest);
                break;
            case UNBINDBOT: // 3.4 解除绑定
                out = webServiceExecuteUnbindBot(webServiceExecuteRequest);
                break;
            case ERROR:
                break;
        }
        return out;
    }

三 使用规则

1 小度音响绑定小度app
2 小度app找相应的skill,进行账户授权
3 发现设备
4 控制设备
试一试吧、小度小度,打开灯光


版权声明:本文为weixin_41141000原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。