使用GizwitsOpenAPI,快速开发轻应用
什么是机智云 Open API ?
机智云是一个开放的物联网设备平台,它为企业和个人开发者提供设备接入、用户账号管理、用户与设备绑定管理、设备远程监控、定时任务以及设备高级数据等服务。
这些数据都是存储在机智云的数据库中的。那么作为开发者,如何去访问这些数据呢?
Open API 就是机智云对外提供这些数据的访问接口!
机智云 Open API 能完成什么功能 ?
根据机智云提供的服务,Open API 提供如下功能:
- 用户管理,比如用户的注册、登录、密码重置等功能
- 消息中心,比如用户读取、删除系统消息等功
- 绑定管理,比如用户与设备的绑定、解绑等功能
- 设备分享,比如用户把自己的绑定设备分享给其他用户,解绑其他用户对自己设备的绑定等
- 设备远程监控,比如获取设备的当前状态、设备上报的原始数据、设备的上下线记录、设备的远程控制等功能
- 定时任务管理,设备定时任务的增删改查等
- 高级数据接口,比如对设备上报的数据按天取最大值、平均值等
- 系统信息,比如查看当前 Open API 版本,获取所有可能的错误列表等
如何调用机智云 Open API ?
机智云 Open API 是 RESTful 风格的 HTTP API,您可以使用任何标准的 HTTP 客户端访问机智云 Open API。
各种编程语言一般都有现成的 HTTP 客户端可以使用。
推荐 HTTP 客户端:
- GUI 客户端 PostMan
- 命令行客户端 curl
机智云 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
短信验证码
短信验证码的主要用途有:
- 手机号用户注册
- 手机号用户重置密码
- 其他您认为需要短信验证码的敏感操作
获取短信验证码有两种方式,一种不需要图片验证码,一种需要图片验证码,您可以根据实际的应用场景选择两种不同的方法。
不需要图片验证码
- 调用获取 App Token接口获取 App Token
- 调用获取短信验证码接口发送短信验证码
需要图片验证码
- 调用获取 App Token接口获取 App Token
- 调用获取图片验证码接口,返回的 captcha_url 就是图片验证码的 URL,将图片显示给用户
- 调用校验图片验证码并发送短信接口,发送短信验证码
校验短信验证码
手机号用户注册和重置密码时,您不需要也不能去验证短信验证码,只需要将用户输入的短信验证码传入对应接口,机智云会自动进行校验。
当您将短信验证码用于其他敏感操作校验时,才需要手动校验。调用 校验短信验证码 接口即可完成校验。
短信验证码正确校验后立即失效,默认有效期为 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,快速开发轻应用的更多相关文章
- Hexo - 快速,轻量,强大的 Node.js 博客框架
Hexo 是一个快速,轻量,强大的 Node.js 博客框架.带给你难以置信的编译速度,瞬间生成静态文件:支持 Markdown,甚至可以在 Hexo 中集合 Octopress 插件:只需要一个命令 ...
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
- Java快速开发平台,JEECG 3.7.6性能增强版本发布
JEECG 3.7.6 性能增强版本发布 导读 ⊙Vue SPA单页面应用 ⊙Datagrid标签实现不同风格切换,支持BootstrapTable.EasyUI ⊙灵活通用代码生成器工厂 ...
- 【转载】如果快速开发APP&创业
先贴原文所在个人博客: http://uikoo9.com/ 今天看了一些这个人的文章,还是有一定见解的,比如下面这篇 <如何快速开发出一个高质量的APP——创业谈> http://uik ...
- AAuto 快速开发win32小程序
AAuto编程语言 AAuto是专用于桌面软件快速开发的新一代混合型编程语言 - 具有动态语言轻便.灵活.快速开发的特性,而且又可以同时支持静态类型开发,象静态语言那样使用.AAuto可以直接支持原 ...
- QuartzCode快速开发动画代码工具
QuartzCode快速开发动画代码工具 QuartzCode一款快速,轻量,强大的动画工具,可快速得到原生的ObjC/Siwft代码 我可以用QuartzCode做什么? 应用程序演练动画 动画菜单 ...
- arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序
前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...
- 快速开发Grunt插件----压缩js模板
前言 Grunt是一款前端构建工具,帮助我们自动化搭建前端工程.它可以实现自动对js.css.html文件的合并.压缩等一些列操作.Grunt有很多插件,每一款插件实现某个功能,你可以通过npm命名去 ...
- winform快速开发平台->让有限的资源创造无限的价值!
最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确 ...
随机推荐
- 【原创】CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(5)使用放射渐变制作光影效果
阴影效果通常用来表现光线投射在物体上的感觉,如果想制作一个如图5.19所示的文字光影效果,就可以使用背景的线性渐变进行构建. 图5.19可以看到有类似光束照射文字的效果,很好地突出了文字.这实现起来很 ...
- easyUI中onLoadSuccess方法获取多个对象
后台将一个list中的对象循环放到map中,如下: @RequestMapping("/getSaleOrderDetailList") @ResponseBody public ...
- Django模型的Field Types总结
转:http://blog.csdn.net/devil_2009/article/details/41735611 Field Types 常用参数: null 如果设置为 True , Djang ...
- Set集合的使用
#include<iostream> #include<set> using namespace std; typedef struct { int i,j; char s; ...
- bootstarp
我最近在学一个前端框架叫bootstarp.我的老大给了一个bootstarp的模板给我,我看了看感觉没意思.因为那里面的样式,我也会写,所以我就没心思去看,每次只要面板上有的我就搬下来就完了,只要面 ...
- 获取Unity3D虚拟摄像机的图像
最新博客地址已转到: http://blog.csdn.net/zzlyw?viewmode=contents ------------------------------------------ ...
- CPUID指令简单调用
关于CPUID指令,可以看维基百科的相关介绍 https://en.wikipedia.org/wiki/CPUID 在windows下可以调用__cpuid和__cpuidex这两个函数,__cpu ...
- VS2015编译boost1.62
VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...
- ./configure,make,make install的作用
这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC ...
- 9. 了解 Cocoa-百度百科
Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon.POSIX.X11和Java). 苹果的面向对象开发框架,用来生成 Ma ...