第三方设备对接小度音箱 记录

小度音箱对接Dueros开放平台有相关资料,包括认证流程和协议介绍。

技能开放平台 (baidu.com)

云云对接

根据资料,直接接入需要特定硬件支持,所以选用云云对接方式。

DuerOS开放平台 | 资源中心 (baidu.com)

云云对接主要框架是:小度音箱——技能云——设备云——设备

技能云服务器是小度音箱发出请求时的服务器,技能云服务器收到请求后将请求封装成上面所说的开放协议发送给设备云服务器,我们需要实现的就是设备云服务器对开放协议的解析和封装。

OAuth2.0

设备云服务器如何实现,按照开放协议即可,主要还是介绍控制请求之前的认证授权设置。

小度音箱认证授权采用OAuth2.0,JAVA和PHP都有相关包接口,博主以C来实现OAuth2.0认证服务器。

OAuth2.0的认证分为四种授权模式,对接小度音箱主要用授权码Code模式,其他三种略过。

OAuth2.0 Code流程如下图:

在这里提醒一下,服务器需要https且合法的ssl证书,自签名无效。

博主服务器使用的花生壳免费域名,阿里云的免费ssl证书,属于白嫖。

OAuth2.0 服务器和技能

按照上面流程,肯定是搭建一个HTTPS服务器,这里博主移植了libevent来封装服务器,很好用,安利一波。

搭建好之后先不用处理url的请求,回到Dueros,创建技能,因为OAuth2.0的授权是在创建的技能中发起的:技能开放平台 (baidu.com)

按照提示填写对应的设置:

授权地址指的是OAuth2.0服务器的地址,client_id和client_Secret是授权时可用作验证的用户标识,其实可以不校验。

Token地址用来获取访问令牌和刷新令牌的服务器,博主把它也集成到OAuth2.0服务中。

WebService是资源/设备云服务器的地址,同样也集成到了OAuth2.0服务器中。 

回调地址是授权之后需要重定向的处理地址,技能自生成的,后面会讲到。

授权调试

之前说到,HTTPS服务器没有处理url,技能创建后点击授权肯定是没反应的,这时就可以调试打印授权的请求数据包进行处理的封装了。

授权:

/authorize?client_id=xiaodu&response_type=code&redirect_uri=https%3A%2F%2Fxiaodu.baidu.com%2Fsaiya%2Fauth%2Ffd6bf3b312813ff35869d264d037667b&state=faabeba62d428ed27feb8296d36a8198&dueros_uid=faabeba62d428ed27feb8296d36a8198&scope=all

从请求看出,rediret_uri是回调地址,那么我们需要返回302重定向的包,根据OAuth2.0流程,我们还需要返回code,所以http header添加Location,值为redirect_url?code=xxxxxx

令牌:

/token?client_id=xiaodu&grant_type=authorization_code&client_secret=xiaodu&redirect_uri=https%3A%2F%2Fxiaodu.baidu.com%2Fsaiya%2Fauth%2Ff331729a2d258017b270552bc7872bd3&dueros_uid=faabeba62d428ed27feb8296d36a8198&code=xiaodu


从请求看出,code是授权码,用来获取令牌,那么我们需要返回令牌,http响应200,body为json

{

            "access_token", "12345678-1234-5678-1234-1234567890ab",
            "token_type", "bearer",
            "refresh_token", "87654321-1234-5678-4321-1234567890ab",
            "scope", "all",
            "expires", :3600

}

封装处理了上面两步,再次返回技能点击授权,成功后出现以下界面:

真机调试

此时按照资料进行真机调试,发现设备,控制设备,查询设备等指令,你的资源服务器也就是设备云服务器都会受到对应的协议数据,一一对应处理即可。

本文省略业务逻辑上的流程,只求快速对接打通节点,可以按照这些步骤先调通链路,如果那个环节没通,评论告诉我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32637.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小度音箱对接之小度APP功能分析

本文,旨在分析小度APP中,关于智能控制相关的功能。 文中,以美的美居为例。 文章目录 小度APP介绍首页栏目技能栏目VIP栏目小度购栏目我的栏目 智能家居模块添加设备设备控制 小结 小度APP介绍 开屏页: 底部栏目: …

跟着Nature Communications学作图 -- 复杂热图+堆积柱状图注释

❝ 已经付费加群的小伙伴无需二次付费,等待师兄后续更新即可! ❞ 封面 从这个系列开始,师兄就带着大家从各大顶级期刊中的Figuer入手,从仿照别人的作图风格到最后实现自己游刃有余的套用在自己的分析数据上!这一系列绝…

科研论文画图技巧分享!超级实用!

前言:很多小伙伴在做科研的过程中,对论文结果的呈现问题大费周章,很多时候经过程序跑出的图不那么好看(美学角度上)。今天,小编在这里分享一些个人在做科研时画图的一些经验和心得(走过很多的坑…

SCI科研论文配图插图绘制推荐-博图汇科研绘图

科研论文期刊封面图、摘要图、图文摘要(Graphical Abstract)、TOC图(Table of Contents)、插图、配图、原理图、示意图、机制图、数据图等的设计和绘制,将科研学者的idea、概念、原理等以图表的形式展现出来&#xff0…

使用Tortoisegit,修改账户名密码

使用Tortoisegit,修改账户名密码 今天在使用Tortoisegit克隆项目时,输错了账户名和密码,那么该如何修改输入错误的账户名和密码呢? 首先打开控制面板,然后依次进行如下操作即可: 在这个页面就能看到保…

个人信息界面+修改密码界面

下班没啥事&#xff0c;花费三个小时做了一个“个人设置”界面&#xff0c;所使用的框架是vue&#xff0c;技术是element UI组件。 拿去不谢&#xff01;&#xff01;&#xff01;有帮助的话&#xff0c;点个赞再走 <template><div style"background-color:#FCFC…

rasa开发多轮对话机器人进阶

使用rasa开发多轮对话机器的时候&#xff0c;发现配置很麻烦&#xff0c;且配置很容易出错&#xff0c;配置之间还存在关联关系&#xff0c;即便是使用界面也很繁琐。本文有一个新的思路&#xff0c;即通过一个引导生成对话机器人的机器人来创建对话机器人。这里以工单类客服机…

如何利用手机进行英语学习?

手机的作用在现在已经不仅仅是打电话这么简单了.尤其是现在的智能手机,如果说他是掌上电脑已经不为过了. 手机的一大特点是非常的便利,并且可以随时的带在身上.如何在手机的身上进行发掘的话,你将会发现一部智能手机将会成为你的学习利器. 英语的重要性已经不需要在强调了.如何…

​每天十分钟| Get实用在线英语启蒙教育APP—叽里呱啦

作为家有幼儿宝宝的老母亲&#xff0c;曾经也被“陪娃上课&#xff0c;陪娃写作业”的恐惧深深地支配过。尤其是在给宝宝辅导英语启蒙的过程中&#xff0c;为娘切身地感受到&#xff1a; 兴趣是英语启蒙的原动力&#xff0c;所以在启蒙过程中&#xff0c;家长为孩子选择一款专…

测试英语小软件,儿童学英语软件哪个好,亲测这四款很不错

很多家长都在不断寻求儿童学英语的好方法&#xff0c;比如利用绘本拼读、上少儿英语培训班、做英语小游戏等等&#xff0c;但还有一种儿童学英语的途径常常被大家忽略&#xff0c;就是儿童学英语软件。儿童学英语软件哪个好&#xff0c;现在也有许多家长尝试利用一些学习软件来…

43 岁知名技术大佬当街遇刺身亡,马斯克都怒了!

整理 | 郑丽媛、出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 美国当地时间周二傍晚&#xff0c;旧金山警察局发布了一则案件通告&#xff1a; 周二凌晨&#xff0c;旧金山警察局南区分局接到了一个报警电话&#xff0c;称在 Main Street 的第 300 街区发生了一…

真正的AGI,既然是高度仿真人类的,是否可能也要经历过恐惧的体验?

&#xff08;本文纯属一本正经扯淡&#xff0c;但讨论的命题是深刻古老的...&#xff09; 一年多前&#xff0c;OpenAI的缔造者Sam Altman在一档Podcast《成就的艺术》&#xff08;The Art of Accomplishment&#xff09;中被问到&#xff0c;如果有一个让人工智能感受到恐惧的…

一文快速了解 GPT-4

从文本到图像&#xff0c;GPT-4将彻底改变我们与AI互动的方式 近年来&#xff0c;语言模型的发展已成为人工智能领域的一个关键研究领域。由OpenAI开发的GPT&#xff08;生成预训练变换器&#xff09;模型一直处于这一研究的前沿。GPT-4是该系列的最新版本&#xff0c;建立在其…

论文分享丨Holistic Evaluation of Language Models

摘要&#xff1a;该文为大模型评估方向的综述论文。 本文分享自华为云社区《【论文分享】《Holistic Evaluation of Language Models》》&#xff0c;作者&#xff1a;DevAI。 大模型&#xff08;LLM&#xff09;已经成为了大多数语言相关的技术的基石&#xff0c;然而大模型的…

大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型应用以及各个版本之间的区别详解

大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型应用以及各个版本之间的区别详解 1.GPT 模型 1.1 GPT 模型简介 在自然语言处理问题中&#xff0c;可从互联网上下载大量无标注数据&#xff0c;而针对具体问题的有标注数据却非常少&#x…

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍 1.大语言模型的预训练 1.LLM预训练的基本概念 预训练属于迁移学习的范畴。现有的神经网络在进行训练时&#xff0c;一般基于反向传播&#xff08;Back Propagation&…

【成为架构师课程系列】预备架构 Pre-Architecture 的故事

目录 前言 Pre-architecture的故事 Pre-architecture 核心“四步法” 需求结构化 架构约束

金融领域FinBERT、BloombergGPT以及法律领域微调模型LawGPT_zh

来自&#xff1a;老刘说NLP 进NLP群—>加入NLP交流群 本文继续介绍金融领域大模型FinBERT、金融领域大模型BloombergGPT以及法律领域微调模型LawGPT_zh三个垂域模型。 一、金融领域大模型FinBERT 熵简FinBERT在网络结构上采用与 Google 发布的原生BERT 相同的架构&#xff0…

LaWGPT基于中文法律知识的大语言模型

向AI转型的程序员都关注了这个号&#x1f447;&#x1f447;&#x1f447; LaWGPT 是一系列基于中文法律知识的开源大语言模型。 该系列模型在通用中文基座模型&#xff08;如 Chinese-LLaMA、ChatGLM 等&#xff09;的基础上扩充法律领域专有词表、大规模中文法律语料预训练&a…

必不可少的Firefox插件(一)

1. FireBug 在众多插件中Firebug无疑是大家最熟悉用的最多的了。Firebug集成在Firefox中&#xff0c;提供了一套开发辅助工具&#xff0c;诸如页面HTML、CSS、Javascript的浏览、编辑、调试、网络监控等等…… 2. FireShot FireShot是一款具有完备功能的屏幕截图插件。除了传统…