百度语音DuerOS对接

百度语音对接

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

一 流程

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

二 编码

根据duerOS协议进行数据交互即可 https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/discovery-message_markdown
测试完毕后即可申请发布
发布上线成
/**
* 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 控制设备
试一试吧、小度小度,打开灯光

发布了10 篇原创文章 · 获赞 0 · 访问量 15

猜你喜欢

转载自blog.csdn.net/weixin_41141000/article/details/105484924