[关闭]
@soszrg 2018-05-15T01:56:32.000000Z 字数 13832 阅读 849

FogCloud应用端接口文档(V3)


V3应用端


服务地址

token说明

所有标明jwt认证的接口,需要在请求header中添加Authorization头域,值为:jwt token,如下示例:

  1. Authorization: jwt eyJhbGciOiJ...

ErrorCode说明

code 说明
10100 token过期
10101 token错误

参数说明

获取用户注册验证码

POST /v3/enduser/getVerCode/

请求参数

参数名 类型 必须 说明
appid string FogCloud后台注册app时生成的id
loginname string 注册用的手机号码或者邮箱

返回值

  1. {
  2. "meta": {
  3. "message": "Send message to phone successfully.",
  4. "code": 0
  5. },
  6. "data": {}
  7. }

错误码

错误代码 错误说明
10000 参数错误:参考Response中的message字段
10250 app id无效,在服务器找不到对应app
10050 内部错误
10750 未开通阿里大于短信的组件

验证码检查

POST /v3/enduser/checkVerCode/

请求参数

参数名 类型 必须 说明
appid string FogCloud后台注册app时生成的id
loginname string 注册用的手机号码或者邮箱
vercode string 验证码

返回值

  1. {
  2. "meta": {
  3. "message": "signup ok",
  4. "code": 0
  5. },
  6. "data": {
  7. "token": "eyJhbGciOiJIUzI1N...",
  8. "clientid": "b6d21b047bed11e78d170016..."
  9. }
  10. }

字段说明

返回值字段 字段类型 字段说明
token string jwt token
clientid string 用户在服务器的唯一标识,同enduserid

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段
10250 app id无效,在服务器找不到对应app
10252 用户被禁用
10300 验证码过期
10301 验证码错误
10050 服务器内部错误:缺少或者有多个MqttClient

注意事项


登录

POST /v3/enduser/login/

请求参数

参数名 类型 必须 说明
loginname string 注册用的手机号码或者邮箱
password string 用户登录密码
appid string FogCloud后台注册app时生成的appid
extend json string 扩展字段

返回值

  1. {
  2. "meta": {
  3. "message": "ok",
  4. "code": 0
  5. },
  6. "data": {
  7. "token": "eyJhbGciOiJIUzI1N...",
  8. "clientid": "b6d21b047bed11e78d170016..."
  9. }
  10. }

返回值字段说明

字段 类型 说明
token string JWT token
clientid string 用户在服务器的唯一标识,同enduserid

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段
10250 用户不存在
10251 用户密码错误
10252 用户被禁用

登出(jwt认证)

PUT /v3/enduser/logout/

请求参数

返回值

  1. {
  2. "meta": {
  3. "message": "log out ok",
  4. "code": 0
  5. },
  6. "data": {
  7. }
  8. }

错误码


获取MQTT登录信息(jwt认证)

POST /v3/enduser/mqttInfo/

请求参数

返回值

  1. {
  2. "meta": {
  3. "message": "mqtt info",
  4. "code": 0
  5. },
  6. "data": {
  7. "endpoint": "8d69e5821..."
  8. "loginname": "8d69e58212cd11e7a...",
  9. "clientid": "d53azsf..."
  10. "mqttport": 1883,
  11. "password": "iLBZ48jfB6tUBIoS8MS...",
  12. "mqtthost": "8d69e58212cd11e7...e.com",
  13. "sslport": 1884
  14. }
  15. }

返回值字段说明

字段 类型 说明
endpoint string MqttServer实例ID
loginname string 登录名
clientid string 用户在服务器的唯一标识,同enduserid
password string 登录密码
mqtthost string MqttServer实例地址
mqttport string 数据非加密端口
sslport string 数据加密端口

错误码


刷新应用端授权

POST /v3/enduser/refreshToken/

请求参数

参数名 类型 必须 说明
token string jwt token

返回值

  1. {
  2. "meta": {
  3. "message": "ok",
  4. "code": 0
  5. },
  6. "data": {
  7. "token": "eyJhbGciOiJIUzI1N...",
  8. "clientid": "b6d21b047bed11e78d170016..."
  9. }
  10. }

返回值字段说明

字段 类型 说明
token string JWT token
clientid string 终端用户ID,同enduserid。

错误码

错误代码 错误说明
10000 参数错误:缺少参数或者参数类型错误等
10101 token错误
10102 token已过刷新有效期,无法刷新
10250 token对应的用户没找到
10252 用户被禁用

验证应用端授权

POST /v3/enduser/verifyToken/

请求参数

参数名 类型 必须 说明
token string jwt token

返回值

  1. {
  2. "meta": {
  3. "message": "ok",
  4. "code": 0
  5. },
  6. "data": {
  7. "token": "eyJhbGciOiJIU...",
  8. "clientid": "2faf79d67cb111e7b..."
  9. }
  10. }

返回值字段说明

字段 类型 说明
token string JWT token
clientid string 终端用户ID,同enduserid

错误码

错误代码 错误说明
10000 参数错误:缺少参数或者参数类型错误等
10101 token错误
10102 token已过刷新有效期,无法刷新
10250 token对应的用户没找到
10252 用户被禁用

密码重置(jwt认证)

POST /v3/enduser/resetPassword/

请求参数

参数名 类型 必须 说明
password1 string 密码,至少4个字符,最多20个字符
password2 string 确认密码,至少4个字符,最多20个字符

返回值

  1. {
  2. "meta": {
  3. "message": "Update password successfully.",
  4. "code": 0
  5. },
  6. "data": {}
  7. }

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段

绑定设备(jwt认证)

POST /v3/enduser/bindDevice/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID
extend json string 扩展字段

返回值

  1. {
  2. "meta": {
  3. "message": "Bind superuser to device successfully.",
  4. "code": 0
  5. },
  6. "data": {
  7. "deviceid": "7d0d843...",
  8. "devicename": "test"
  9. }
  10. }

或者

  1. {
  2. "meta": {
  3. "message": "Rebind device to this User",
  4. "code": 0
  5. },
  6. "data": {
  7. "deviceid": "7d0d84...",
  8. "devicename": "test"
  9. }
  10. }

返回值字段说明

字段 类型 说明
deviceid string 设备ID
devicename string 设备名字,默认为产品名字

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段
10200 设备ID错误,找不到对应设备
10300 App没有跟设备对应的产品建立绑定关系
10352 设备已经绑定超级用户

获取设备授权码(jwt认证)

POST /v3/enduser/shareCode/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID
role int 授权级别:2→管理员 3→普通用户
validtimes int 验证码是否一次有效,0为一次有效,非0为十分钟有效

返回值

  1. {
  2. "meta": {
  3. "message": "Generate captcha successfully.",
  4. "code": 0
  5. },
  6. "data": {
  7. "vercode": "ac137a1e-9cda-11e6-993c-dc536017523b"
  8. }
  9. }

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段
10200 设备ID错误,找不到对应设备
10353 权限错误:需要管理员或者超级管理员权限

设备授权(jwt认证)

POST /v3/enduser/grantDevice/

请求参数

参数名 类型 必须 说明
vercode string 授权码
deviceid string 设备ID
bindingtype string 用户分组,可选值home,guest和other
deviceid string 设备ID
extend json string 扩展字段

返回值

  1. {
  2. "meta": {
  3. "message": "Grant successfully.",
  4. "code": 0
  5. },
  6. "data": {
  7. "bindingtype": "home",
  8. "role": 2,
  9. "bindingtime": "2016-10-28T15:41:35.817000",
  10. "status": 1,
  11. "deleteflag": false,
  12. "alias": "test",
  13. "extra": {},
  14. "enduser": "afgxrty...",
  15. "app": "c57a6240-4e...",
  16. "device": "tywww..."
  17. }
  18. }

返回值字段说明

字段 类型 说明
bindingtype string 用户属组:home,sa,other,guest四种
role int 授权级别
bindingtime string 绑定时间
alias string 设备名字,默认为产品名字
extra json string 扩展属性
app string App ID

错误码

错误代码 错误说明
10000 参数错误:参考Response中的message字段
10300 App跟产品没有建立绑定关系
10200 设备ID错误,找不到对应设备
10400 授权码过期
10401 授权码错误
10050 内部错误

更新用户信息(jwt认证)

PUT /v3/enduser/userInfo/

请求参数

参数名 类型 必须 说明
nickname string 昵称
realname string 实名
gender string 性别
city string 所在城市
avatar string 头像,只能是图片的存储链接
note string 备注
extend json string 扩展字段

返回值

  1. {
  2. "meta":{
  3. "message":"success",
  4. "code":0
  5. },
  6. "data":{
  7. "nickname":"nickname",
  8. "realname":"realname",
  9. "gender":"f",
  10. "city":"shanghai",
  11. "avatar":"https://storecloud.com/1.jpg",
  12. "note":"App User"
  13. }
  14. }

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段

用户详情(jwt认证)

GET /v3/enduser/userInfo/

请求参数

返回值

  1. {
  2. "meta":{
  3. "message":"get user info ok",
  4. "code":0
  5. },
  6. "data":{
  7. "enduserid":"b6d21b047bed11e...",
  8. "last_login":"2017-08-09T15:39:32.742454",
  9. "phone":"",
  10. "phonearea":"+86",
  11. "phoneverified":false,
  12. "email":"test1231@126.com",
  13. "emailverified":true,
  14. "nickname":"",
  15. "realname":"",
  16. "gender":"",
  17. "city":"",
  18. "avatar":"",
  19. "note":"",
  20. "is_active":true,
  21. "date_joined":"2017-08-08T11:57:36.258161",
  22. "is_virtual":false,
  23. "isonline":false,
  24. "onlinetimes":0,
  25. "open_id":"",
  26. "app":"2c357408-7730-11e7-8d17-00163e03b4d6"
  27. }
  28. }

返回值字段说明

字段 类型 说明
last_login string 最后登录时间
enduserid string 终端用户ID
phone string 注册手机号
phonearea string 手机号归属地,如“+86”:中国
phoneverified bool 手机号认证标识
email string 注册邮箱
emailverified bool 邮箱认证标识
nickname string 昵称
realname string 实名
gender string 性别
city string 城市
avatar string 头像链接
note string 备注
is_active bool 是否激活
date_joined string 注册时间
is_virtual bool 是否为虚拟用户:true为虚拟用户,false非虚拟用户
app string App ID
open_id string 微信用户ID,用于微信用户

错误码


解绑设备(jwt认证)

PUT /v3/enduser/unbindDevice/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID

返回值

  1. {
  2. "meta":{
  3. "message":"Unbind user successfully.",
  4. "code":0
  5. },
  6. "data":{
  7. }
  8. }

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段
10350 用户与设备之间没有绑定关系
10050 内部错误

管理员、超级用户解除指定人(jwt认证)

PUT /v3/enduser/removeBindRole/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID
enduserid string 用户ID

返回值

  1. {
  2. "meta":{
  3. "message":"Remove successfully.",
  4. "code":0
  5. },
  6. "data":{
  7. "enduserid":"782127..."
  8. }
  9. }

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段
10350 用户与设备之间没有绑定关系
10353 需要管理员或者超级用户权限
10050 异常错误

超级用户权限转移(jwt认证)

POST /v3/enduser/transferAdmin/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID
enduserid string 新超级用户的ID

返回值

  1. {
  2. "meta":{
  3. "message":"Transfer superuser successfully.",
  4. "code":0
  5. },
  6. "data":{
  7. "enduserid":"7821272..."
  8. }
  9. }

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段
10200 设备ID错误,找不到对应设备
10250 用户ID错误(需要同一个app的用户)
10350 用户与设备之间没有绑定关系
10353 需要管理员或者超级用户权限

更新授权级别(jwt认证)

PUT /v3/enduser/updateBindRole/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID
enduserid string 用户ID
role int 授权级别,值只能为2或者3

返回值

  1. {
  2. "meta":{
  3. "message":"update ok",
  4. "code":0
  5. },
  6. "data":{
  7. "enduserid":"78212..."
  8. }
  9. }

错误码

错误代码 错误说明
10000 参数错误:参考Response的message字段
10200 设备ID错误
10250 要更新的用户不存在
10350 用户与设备之间没有绑定关系
10353 需要管理员或者超级用户权限

用户的设备列表(jwt认证)

GET /v3/enduser/deviceList/

请求参数

返回值

  1. {
  2. "meta":{
  3. "message":"device list by user",
  4. "code":0
  5. },
  6. "data":[
  7. {
  8. "device_pw":"123456",
  9. "product_icon":"",
  10. "gatewaytype":1,
  11. "device_name":"test",
  12. "mac":"123qwe",
  13. "role":1,
  14. "online":false,
  15. "product_name":"test",
  16. "device_id":"7d0d843..."
  17. },
  18. {
  19. "device_pw":"123456",
  20. "product_icon":"",
  21. "gatewaytype":1,
  22. "device_name":"test",
  23. "mac":"faagaaffabbb",
  24. "role":2,
  25. "online":true,
  26. "product_name":"test",
  27. "device_id":"471c670..."
  28. }
  29. ]
  30. }

返回值字段说明

字段 类型 说明
device_pw string 设备密码
product_icon string 产品图标链接
gatewaytype int 产品类别标识:0为普通设备,1为网关设备,2为子设备
device_name string 设备名字
is_sub bool 子设备标识:false为非子设备,true为子设备
mac string mac地址
role int 授权级别:1为超级用户;2为管理员;3为普通用户
online bool 在离线状态:false为离线,true为在线
product_name string 产品名字

错误码


指定设备的用户列表(jwt认证)

GET /v3/enduser/enduserList/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID

返回值

  1. {
  2. "meta":{
  3. "message":"Get user list successfully.",
  4. "code":0
  5. },
  6. "data":[
  7. {
  8. "realname":"",
  9. "enduserid":"78212721-759e-11e6-b860-f8cab81d2727",
  10. "app":"c57a6240-4e6e-11e6-96c8-dc536017523b",
  11. "is_active":true,
  12. "phone":"13026532187",
  13. "role":2,
  14. "nickname":"",
  15. "email":""
  16. },
  17. {
  18. "realname":"",
  19. "enduserid":"f2e836cf-57c4-11e6-96bb-f8cab81d2727",
  20. "app":"c57a6240-4e6e-11e6-96c8-dc536017523b",
  21. "is_active":true,
  22. "phone":"",
  23. "role":3,
  24. "nickname":"",
  25. "email":"zhangrg@mxchip.com"
  26. }
  27. ]
  28. }

返回值字段说明

字段 类型 说明
enduserid string 用户ID
app string App ID
role int 授权级别:1为超级用户;2为管理员;3为普通用户
is_active bool 用户状态:true为可用,false为禁用
phone string 用户注册手机号
email string 用户注册邮箱
nickname string 用户昵称
realname string 用户实名

错误码

错误码 说明
10000 参数错误:参考Response的message字段
10353 用户不是管理员或者超级用户

设备详情(jwt认证)

GET /v3/enduser/deviceInfo/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID

返回值

  1. {
  2. "meta":{
  3. "message":"Device info",
  4. "code":0
  5. },
  6. "data":{
  7. "productid":"f14125..."
  8. "gatewaytype":1,
  9. "alias":"test",
  10. "online":false
  11. }
  12. }

返回值字段说明

字段 类型 说明
productid string 产品ID
gatewaytype int 产品类别标识:0为普通设备,1为网关设备,2为子设备
alias string 设备别名,默认为产品名字
online bool 在离线状态:false为离线,true为在线

错误码

错误码 说明
10000 参数错误:参考Response的message字段
10200 设备ID错误
10350 用户与设备没有绑定

更新设备名称(jwt认证)

PUT /v3/enduser/updateDeviceAlias/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID
alias string 设备别名,长度限制为100个字符

返回值

  1. {
  2. "meta":{
  3. "message":"Update alias successfully.",
  4. "code":0
  5. },
  6. "data":{
  7. }
  8. }

错误码

错误码 说明
10000 参数错误:参考Response的message字段
10350 用户与设备间没有绑定关系

彩云天气接口(jwt认证)

GET /v3/enduser/weather/caiyun/

请求参数

参数名 类型 必须 说明
begin int 查询时间(整型时间戳)
lon float 经度
lat float 纬度

错误码

错误码 说明
10000 参数错误:参考Response的message字段
10050 未知问题
10750 App未配置彩云天气组件

创建定时任务(jwt认证)

POST /v3/schedule/task/

请求参数

参数名 类型 必须 说明
device_id string 设备ID
task_type int 任务类型: 0→定时任务;1→延时任务
commands json string 需要推送的指令
enable bool 是否开启任务
group_id string 任务组ID
day_of_week string 星期(取值参考下面内容)
hour string 小时(定时任务必填参数)
minute string 分钟(定时任务必填参数)
second int 秒(延时任务必填参数,定时任务只精确到分钟)

说明

  1. [
  2. [
  3. {
  4. "groupid":"abc",
  5. "task_id":"001",
  6. "command":"start",
  7. "day_of_week":"0, 1"
  8. "hour":"7",
  9. "minute":"30"
  10. },
  11. {
  12. "groupid":"abc",
  13. "task_id":"002",
  14. "command":"stop",
  15. "day_of_week":"0, 1"
  16. "hour":"18",
  17. "minute":"30"
  18. }
  19. ],
  20. [
  21. {
  22. "groupid":"def",
  23. "task_id":"003",
  24. "command":"start",
  25. "day_of_week":"2"
  26. "hour":"9",
  27. "minute":"30"
  28. },
  29. {
  30. "groupid":"def",
  31. "task_id":"004",
  32. "command":"stop",
  33. "day_of_week":"2"
  34. "hour":"17",
  35. "minute":"30"
  36. }
  37. ]
  38. ]

day_of_week取值

星期
0 周日
1 周一
2 周二
3 周三
4 周四
5 周五
6 周六
* 每天

说明:如果day_of_week为空字符串[""],或者调用接口时没有传入该参数,则认为该任务是单次任务,执行完就变为disable状态

定时任务示例

  1. {
  2. "device_id":"acdeb64e137811...",
  3. "task_type":1,
  4. "commands":"{\"open_light\": true}",
  5. "enable":true,
  6. "day_of_week":"1,3,5",
  7. "hour":"19",
  8. "minute":"0"
  9. }

延时任务示例

  1. {
  2. "device_id":"acdeb64e137811...",
  3. "task_type":1,
  4. "commands":"{\"close_light\": true}",
  5. "enable":true,
  6. "second":60
  7. }

返回值

  1. {
  2. "meta":{
  3. "message":"create task ok.",
  4. "code":0
  5. },
  6. "data":{
  7. "name":"a1b40530-91...",
  8. "createtime":"2017-09-04T15:49:51.385"
  9. }
  10. }

字段说明

字段 类型 说明
name string 任务名称(唯一ID)
createtime string 创建时间

错误码

错误码 说明
10000 参数错误:参考Response的message字段
10350 用户与设备间没有绑定关系

获取定时任务(jwt认证)

GET /v3/schedule/task/

请求参数

参数名 类型 必须 说明
device_id string 设备ID
request_type int 请求类型:1→用户所有任务;2→用户指定任务
task_type int 任务类型: 0→定时任务;1→延时任务
need_group int 是否需要分组显示任务:0→不分组;1→分组
task_name string 任务名(当request_type为2时,该参数必填)

返回值

  1. {
  2. "meta":{
  3. "message":"task list",
  4. "code":0
  5. },
  6. "data":[
  7. {
  8. "commands":"{\"open_light\":true}",
  9. "enable":true,
  10. "name":"a1b40530-914...",
  11. "hour":"19",
  12. "day_of_week":"*",
  13. "createtime":"2017-09-04T16:28:30.170",
  14. "minute":"0"
  15. }
  16. ]
  17. }

错误码

错误码 说明
10000 参数错误:参考Response的message字段
10350 用户与设备间没有绑定关系

更新定时任务(jwt认证)

PUT /v3/schedule/task/

请求参数

参数名 类型 必须 说明
name string 任务名
commands json string 需要推送的指令
enable bool 是否开启任务
month string
day_of_month string
day_of_week string 星期(取值参加下面内容)
hour string 小时(定时任务必填参数)
minute string 分钟(定时任务必填参数)
second int 秒(延时任务必填参数,定时任务只精确到分钟)

说明

day_of_week取值

星期
0 周日
1 周一
2 周二
3 周三
4 周四
5 周五
6 周六

定时任务示例

  1. {
  2. "name":"5de0dbde-afb...",
  3. "commands":"{\"open_light\": true}",
  4. "enable":true,
  5. "month":"*",
  6. "day_of_month":"*",
  7. "day_of_week":"2,4,6",
  8. "hour":"18",
  9. "minute":"0"
  10. }

延时任务示例

  1. {
  2. "device_id":"acdeb64e137811...",
  3. "task_type":1,
  4. "commands":"{\"close_light\": true}",
  5. "enable":true,
  6. "second":100
  7. }

返回值

  1. {
  2. "meta":{
  3. "message":"update task ok.",
  4. "code":0
  5. },
  6. "data":{
  7. "name":"a1b40530-91..."
  8. }
  9. }

字段说明

字段 类型 说明
name string 任务名称(唯一ID)
createtime string 创建时间

错误码

错误码 说明
10000 参数错误:参考Response的message字段
10350 用户与设备间没有绑定关系
11600 任务不存在

删除定时任务(jwt认证)

DELETE /v3/schedule/task/

请求参数

参数名 类型 必须 说明
name string 任务名

返回值

  1. {
  2. "meta":{
  3. "message":"delete task: a1b40530-9... ok.",
  4. "code":0
  5. },
  6. "data":{}
  7. }

错误码

错误码 说明
10000 参数错误:参考Response的message字段
10350 用户与设备间没有绑定关系
11600 任务不存在

获取设备的时间序列数据(jwt认证)

POST /v3/enduser/device/tsd/

请求参数

参数名 类型 必须 说明
deviceid string 设备ID
start string 查询起始时间
aggregator json string 聚合查询条件,目前仅支持取平均值
fill json string 取样为空值时的填充值

aggregator说明
aggregator为json string,且需要对应start使用,以下是对应的key和value取值。

条件 start key value 说明
6h 6 hours ago Avg 1 hour 最近6小时内,每小时的平均值
12h 12 hours ago Avg 1 hour 最近12小时内,每小时的平均值
1天 1 day ago Avg 1 hour 最近1天内,每小时的平均值
1周 1 week ago Avg 1 day 最近一周内,每天的平均值

aggregator示例

  1. {
  2. "name":"Avg"
  3. "sampling":"1 hour"
  4. }

fill说明
fill是当取值为空值时,将该样本的聚合结果填充的值;比如fill设置为:

  1. {
  2. "type": "Fixed",
  3. "interval": "1 hour",
  4. "value": -1
  5. }

三点的数据为空,则三点的数据被填充为-1。

请求的data示例

  1. {
  2. "deviceid": "3rfxz...",
  3. "start":"3 hour ago"
  4. "aggregator": '{"name":"Avg","sampling":"1 hour"}',
  5. "fill":'{"type": "Fixed","interval": "1 hour","value": -1}'
  6. }

返回值

  1. {
  2. "meta":{
  3. "message":"tsd data",
  4. "code":0
  5. },
  6. "data":{
  7. "count":2,
  8. "next":null,
  9. "previous":null,
  10. "results":[
  11. [
  12. 1526346000,
  13. -1
  14. ],
  15. [
  16. 1526350200,
  17. 14.666666666666666
  18. ],
  19. [
  20. 1526353200,
  21. 5.578418230563003
  22. ]
  23. ]
  24. }
  25. }

错误码

错误码 说明
10000 参数错误:参考Response的message字段
10050 未知错误

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注