导读:使用机智云提供的Open API(Http / WebSocket),可以快速开发网页或微信应用等基于html的轻应用,用于管理和控制智能设备。机智云 Open API 主要帮助开发者通过 HTTP 的方式维护用户、用户与设备之间的绑定关系,以及获取设备数据、发送控制指令给设备。
 

什么是机智云 Open API ?

机智云是一个开放的物联网设备平台,它为企业和个人开发者提供设备接入、用户账号管理、用户与设备绑定管理、设备远程监控、定时任务以及设备高级数据等服务。

这些数据都是存储在机智云的数据库中的。那么作为开发者,如何去访问这些数据呢?

Open API 就是机智云对外提供这些数据的访问接口!

机智云 Open API 能完成什么功能 ?

根据机智云提供的服务,Open API 提供如下功能:

  • 用户管理,比如用户的注册、登录、密码重置等功能
  • 消息中心,比如用户读取、删除系统消息等功
  • 绑定管理,比如用户与设备的绑定、解绑等功能
  • 设备分享,比如用户把自己的绑定设备分享给其他用户,解绑其他用户对自己设备的绑定等
  • 设备远程监控,比如获取设备的当前状态、设备上报的原始数据、设备的上下线记录、设备的远程控制等功能
  • 定时任务管理,设备定时任务的增删改查等
  • 高级数据接口,比如对设备上报的数据按天取最大值、平均值等
  • 系统信息,比如查看当前 Open API 版本,获取所有可能的错误列表等

如何调用机智云 Open API ?

机智云 Open API 是 RESTful 风格的 HTTP API,您可以使用任何标准的 HTTP 客户端访问机智云 Open API。

各种编程语言一般都有现成的 HTTP 客户端可以使用。

推荐 HTTP 客户端:

机智云 Open API 所需要的头部信息

X-Gizwits-Application-Id

X-Gizwits-Application-Id 简称 AppID,是一个应用在机智云平台中的唯一标识,所有 OpenAPI 接口都需要传入这个头部参数。

在开发者中心的产品页面中,点击左边栏的”应用配置”菜单,创建一个应用即可获得一个 AppID:

X-Gizwits-User-token

X-Gizwits-User-token 简称 UserToken,它代表着接口调用中的用户上下文。

UserToken 具有有效期,默认为 7 天。

可以通过用户注册或者登录接口获取 UserToken,返回字段中的 token 就是 UserToken,expire_at 表示 UserToken 过期的时间戳:

{
"uid": "29db4f0d806e451a84264ba3da64d9de",
"token": "86a0ee91548f4971832e371811702316",
"expire_at": 13894002020
}

每次登录可以获取一个新的 UserToken,新旧 UserToken 都可以使用。

因为机智云 Open API 大多数的接口都是与用户相关的,所以一般的接口调用顺序如下:

  • 判断本地是否有 UserToken,以及 UserToken 是否过期
  • 如果不存在 UserToken 或者 UserToken 过期,调用用户登录接口,获取并保存 UserToken
  • 使用 UserToken 调用其它接口

如何在线调试机智云 Open API ?

我们提供了在线 API 调试工具,在每个接口描述中,都会给出对应的调试接口链接。

下面以用户登录为例,说明 API 调试工具的使用:

  • 点击 用户登录 进入接口调试页面
  • 接口右边有个红色叹号,点击后弹出对话框,提示需要输入的头部信息
  • 该接口需要输入 X-Gizwits-Application-Id,根据前面的说明获取 AppID 并填入,点击 “Authorize” 进行授权
  • 页面自动刷新,并且叹号变成蓝色,表示需要输入的头部信息已填写(已填写并不一定表示值是正确的,如果值错误,会反应在接口返回内容中)
  • 在参数输入框中输入参数值(点击参数右边的 Example Value 黄色框框,可以快速输入示例 JSON)
  • 点击 “试一下” 按钮,即可完成接口调用
  • 接口调用完成,会显示本地调用等效的 curl 语句,请求 URL,响应体,响应码和响应头

机智云 Open API 指南

机智云所有接口定义可以在调试接口页面中查看。

下面对各分类接口的典型调用场景进行说明。

用户管理

用户注册

调试接口

有以下几种方式可以注册用户:

  • 匿名注册,通过唯一的 phone_id 创建用户
  • 普通用户,通过 username 和 passowrd 创建用户
  • 手机用户,通过 phone, password 和 code(短信验证码)创建用户,短信验证码的获取参考下面章节
  • 邮箱用户,通过 email 和 password 创建用户
  • 第三方登录用户,目前支持 QQ、百度、新浪微博,如使用 QQ 第三方登录,请查阅下面章节

使用 QQ 登录

TODO

短信验证码

短信验证码的主要用途有:

  • 手机号用户注册
  • 手机号用户重置密码
  • 其他您认为需要短信验证码的敏感操作

获取短信验证码有两种方式,一种不需要图片验证码,一种需要图片验证码,您可以根据实际的应用场景选择两种不同的方法。

不需要图片验证码

需要图片验证码

校验短信验证码

手机号用户注册和重置密码时,您不需要也不能去验证短信验证码,只需要将用户输入的短信验证码传入对应接口,机智云会自动进行校验。

当您将短信验证码用于其他敏感操作校验时,才需要手动校验。调用 校验短信验证码 接口即可完成校验。

短信验证码正确校验后立即失效,默认有效期为 24 小时。

用户登录

调试接口

注意:匿名用户和第三方登录用户调用用户注册接口进行登录。

修改用户信息

调试接口

您可以修改以下用户信息:

  • 匿名用户转普通/手机/邮箱用户
  • 修改密码
  • 修改手机号
  • 设置用户昵称、性别、生日、地址、备注等信息

获取用户信息

调试接口

该接口可以获取用户详细信息。

重置密码

调试接口

手机号用户重置密码需要先获取短信验证码。

消息中心

获取消息列表

调试接口

标记已读和删除

调试接口

绑定管理

绑定设备

可以通过一下两种方式绑定设备:

  • 通过 product_key 和 MAC 地址绑定设备
  • 通过二维码绑定设备,二维码内容为 product_key 和 MAC 加密后的内容,所以本质上和上面一种方式一样

通过 product_key 和 MAC 地址绑定设备

调试接口

通过二维码绑定设备

二维码生成

TODO

绑定设备

调试接口

把扫描到的二维码内容作为 qr_content 的值入。

获取绑定列表

调试接口

修改绑定信息

调试接口

用户可以对绑定的设备修改别名和备注。

同一个设备被多个用户绑定,每个用户都可以对该设备设置别名和备注,互不冲突。

解除绑定

调试接口

Owner 查询与设备绑定的所有 Guest 用户

调试接口

Owner 解除 Guest 用户对设备的绑定

调试接口

设备分享

第一个绑定设备的用户对设备具有控制权,称为设备 Owner,Owner 可以将设备分享给其他设备。被分享的用户称为 Guest。

Owner 分享设备之后,可以随时取消分享,或者解绑 Guest 对设备的绑定。

Guest 也可以主动解绑设备。

设备分享的主要有两种方式:

  • 普通设备分享
  • 通过二维码分享设备

普通设备分享

  • Owner 选择一个要分享的设备,调用创建分享邀请接口创建分享邀请
  • Guest 将会收到一条设备分享消息
  • Guest 调用查询分享邀请接口,查询分享给自己的邀请
  • Guest 调用接受分享邀请接口接受邀请
  • Owner 和 Guest 都将收到一条设备分享消息

通过二维码分享设备

使用GizwitsOpenAPI,快速开发轻应用的更多相关文章

  1. Hexo - 快速,轻量,强大的 Node.js 博客框架

    Hexo 是一个快速,轻量,强大的 Node.js 博客框架.带给你难以置信的编译速度,瞬间生成静态文件:支持 Markdown,甚至可以在 Hexo 中集合 Octopress 插件:只需要一个命令 ...

  2. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

  3. Java快速开发平台,JEECG 3.7.6性能增强版本发布

    JEECG 3.7.6 性能增强版本发布 导读       ⊙Vue SPA单页面应用 ⊙Datagrid标签实现不同风格切换,支持BootstrapTable.EasyUI ⊙灵活通用代码生成器工厂 ...

  4. 【转载】如果快速开发APP&创业

    先贴原文所在个人博客: http://uikoo9.com/ 今天看了一些这个人的文章,还是有一定见解的,比如下面这篇 <如何快速开发出一个高质量的APP——创业谈> http://uik ...

  5. AAuto 快速开发win32小程序

    AAuto编程语言 AAuto是专用于桌面软件快速开发的新一代混合型编程语言 -  具有动态语言轻便.灵活.快速开发的特性,而且又可以同时支持静态类型开发,象静态语言那样使用.AAuto可以直接支持原 ...

  6. QuartzCode快速开发动画代码工具

    QuartzCode快速开发动画代码工具 QuartzCode一款快速,轻量,强大的动画工具,可快速得到原生的ObjC/Siwft代码 我可以用QuartzCode做什么? 应用程序演练动画 动画菜单 ...

  7. arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序

    前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...

  8. 快速开发Grunt插件----压缩js模板

    前言 Grunt是一款前端构建工具,帮助我们自动化搭建前端工程.它可以实现自动对js.css.html文件的合并.压缩等一些列操作.Grunt有很多插件,每一款插件实现某个功能,你可以通过npm命名去 ...

  9. winform快速开发平台->让有限的资源创造无限的价值!

    最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确 ...

随机推荐

  1. 纯JS实现俄罗斯方块,打造属于你的游戏帝国

    纯JS俄罗斯方块,打造属于你的游戏帝国. 本文原始作者博客 http://www.cnblogs.com/toutou 俄罗斯方块(Tetris, 俄文:Тетрис)是一款电视游戏机和掌上游戏机游戏 ...

  2. vtkBoxWidget2Example

    This example uses a vtkBoxWidget2 to manipulate an actor. The widget only contains the interaction l ...

  3. HTTPS 双向认证构建移动设备安全体系

    HTTPS 双向认证构建移动设备安全体系 对于一些高安全性要求的企业内项目,我们有时希望能够对客户端进行验证.这个时候我们可以使用Https的双向认证机制来实现这个功能. 单向认证:保证server是 ...

  4. easyui textbox 添加 onblur 失去焦点事件

    由于textbox不能触发onblur事件,需要换种方式解决问题,方案如下: <input type="text" class="easyui-textbox&qu ...

  5. Thinkphp 3.2.2 验证码check_verify方法,只能验证一次

    问题: Thinkphp 3.2.2 验证码check_verify方法,只能验证一次. function check_verify($code, $id = ''){ $verify = \Thin ...

  6. Android实现双击事件的两种方式

    Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...

  7. DataReader

    Datareader对象不能关使用new关键字创建.但可以使用ExecuteReader()方法创建. DataReader是一行一行的读取记录的.当记录中有数据时Read()返回TRUE,当到记录集 ...

  8. ffmpeg+x264 Windows MSVC 静态编译

    尝试ubuntu和win下mingw编译版本,但都在Vistual Studio链接时因为依赖 libgcc.a, libmingw.a, libmingwex.a 会与mscrt 有符号冲突. 最后 ...

  9. asp.net4.5尚未在web服务器上注册 解决方案

    以前都是直接用aspnet_regiis.exe -i 现在用这个不好使了,解决办法打微软补丁. https://blogs.msdn.microsoft.com/webdev/2014/11/11/ ...

  10. Spark on YARN的部署

    Spark on YARN的原理就是依靠yarn来调度Spark,比默认的Spark运行模式性能要好的多,前提是首先部署好hadoop HDFS并且运行在yarn上,然后就可以开始部署spark on ...