导读:使用机智云提供的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. 【原创】CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(5)使用放射渐变制作光影效果

    阴影效果通常用来表现光线投射在物体上的感觉,如果想制作一个如图5.19所示的文字光影效果,就可以使用背景的线性渐变进行构建. 图5.19可以看到有类似光束照射文字的效果,很好地突出了文字.这实现起来很 ...

  2. easyUI中onLoadSuccess方法获取多个对象

    后台将一个list中的对象循环放到map中,如下: @RequestMapping("/getSaleOrderDetailList") @ResponseBody public ...

  3. Django模型的Field Types总结

    转:http://blog.csdn.net/devil_2009/article/details/41735611 Field Types 常用参数: null 如果设置为 True , Djang ...

  4. Set集合的使用

    #include<iostream> #include<set> using namespace std; typedef struct { int i,j; char s; ...

  5. bootstarp

    我最近在学一个前端框架叫bootstarp.我的老大给了一个bootstarp的模板给我,我看了看感觉没意思.因为那里面的样式,我也会写,所以我就没心思去看,每次只要面板上有的我就搬下来就完了,只要面 ...

  6. 获取Unity3D虚拟摄像机的图像

    最新博客地址已转到: http://blog.csdn.net/zzlyw?viewmode=contents   ------------------------------------------ ...

  7. CPUID指令简单调用

    关于CPUID指令,可以看维基百科的相关介绍 https://en.wikipedia.org/wiki/CPUID 在windows下可以调用__cpuid和__cpuidex这两个函数,__cpu ...

  8. VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  9. ./configure,make,make install的作用

    这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC ...

  10. 9. 了解 Cocoa-百度百科

    Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon.POSIX.X11和Java). 苹果的面向对象开发框架,用来生成 Ma ...