Gizwits Open API

简介

机智云 Open API 主要帮助开发者通过 HTTP 的方式维护用户、用户与设备之间的绑定关系,以及获取设备数据、发送控制指令给设备。

访问地址

http://api.gizwits.com

SDK

  • python sdk: https://github.com/gizwits/gservice_sdk_py

用户信息 [/app/users]

创建匿名用户 [POST]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      
    • Body

      {
          "phone_id": "apiary"
      }
      
  • Response 201 (application/json)

    • Body
      { 
          "uid": "akkdlfeiow", 
          "token": "akdlfkad",
          "expire_at": 13894002020
      }
      

使用用户名和密码创建用户 [POST]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      
    • Body

      {
          "username": "bob",
          "password": "123456"
      }
      
  • Response 201 (application/json)

    • Body
      { 
          "uid": "akkdlfeiow", 
          "token": "akdlfkad",
          "expire_at": 13894002020
      }
      

使用手机号创建用户 [POST]

需要先调用获取验证码接口获取 code

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      
    • Body

      {
          "phone": "123456",
          "password": "123456",
          "code": "abc"
      }
      
  • Response 201 (application/json)

    • Body
      { 
          "uid": "akkdlfeiow", 
          "token": "akdlfkad",
          "expire_at": 13894002020
      }
      

使用第三方账号(百度/新浪)创建用户 [POST]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      
    • Body

      {   
          "authData": {
              "src": "baidu|sina",
              "uid": "2346677",
              "token":"pnktnjyb996sj4p156gjtp4im"
          }
      }
      
  • Response 201 (application/json)

    • Body
      { 
          "uid": "akkdlfeiow", 
          "token": "akdlfkad",
          "expire_at": 13894002020
      }
      

匿名用户设置用户名和密码 [PUT]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
    • Body

      {
          "username": "bob",
          "password": "abda2"
      }
      
  • Response 200 (application/json)

    • Body
      {
          "updatedAt": "2011-11-07T21:25:10.623Z"
      }
      

匿名用户设置手机号和密码 [PUT]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
    • Body

      {
          "phone": "1328830223",
          "password": "123456",
          "code": "123"
      }
      
  • Response 200 (application/json)

    • Body
      {
          "updatedAt": "2011-11-07T21:25:10.623Z"
      }
      

修改密码 [PUT]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
    • Body

      {
          "old_pwd": "123456",
          "new_pwd": "123456"
      }
      
  • Response 200 (application/json)

    • Body
      { 
          "updatedAt": "2011-11-07T21:25:10.623Z"
      }
      

修改 email [PUT]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
    • Body

      {
          "email": "bob@bob.com",
      }
      
  • Response 200 (application/json)

    • Body
      {
          "updatedAt": "2011-11-07T21:25:10.623Z"
      }
      

修改手机号 [PUT]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
    • Body

      {
          "phone": "1328830223",
          "code": "abc"
      }
      
  • Response 200 (application/json)

    • Body
      {
          "updatedAt": "2011-11-07T21:25:10.623Z"
      }
      

用户登录 [/app/login]

可以使用用户名/邮箱/手机号登录

用户登录 [POST]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      
    • Body

      {
          "username": "bob",
          "password": "123456"
      }
      
  • Response 200 (application/json)

    • Body
      { 
          "uid": "akkdlfeiow", 
          "token": "akdlfkad",
          "expire_at": 13894002020
      }
      

验证码 [/app/codes]

获取验证码 [POST]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      
    • Body

      {
          "phone": "13223233"
      }
      
  • Response 200 (application/json)

校验验证码 [POST]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      
    • Body

      {
          "phone": "13223233",
          "code": "123456"
      }
      
  • Response 200 (application/json)

重置密码 [/app/reset_password]

使用邮箱重置密码 [POST]

请求成功后用户会收到一封重置密码的邮件, 用户根据邮件的链接进行密码重置

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      
    • Body

      {
          "email": "bob@bob.com"
      }
      
  • Response 200 (application/json)

使用手机号重置密码 [POST]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      
    • Body

      {
          "phone": "13232433",
          "code": "13232',
          "new_pwd": "1323200"
      }
      
  • Response 200 (application/json)

获取设备历史数据 [/app/devdata]

获取设备历史数据 [GET]

  • 参数列表

    • product_key (required, string, pk)
    • did (optional, string, gdGn7PzAYf4VrhnVag5x8D)
    • start_ts (optional, number, 1349032093)
    • end_ts (optional, number, 1349032093)
    • attr (optional, string, temp)
    • limit (optional, number, 20)
    • skip (optional, number, 0)
  • Request (application/json)

    • Header
      X-Gizwits-Application-Id: {appid}
      
  • Response 200 (application/json)

    • Body
      {
          "data": [{
              "did": "gdGn7PzAYf4VrhnVag5x8D",
              "ts": 148293984328,
              "entity": 1,
              "attr": "temp",
              "val": 10
          },{
              "did": "gdGn7PzAYf4VrhnVag5x8D",
              "ts": 148293984328,
              "entity": 1,
              "attr": "temp",
              "val": 10
          }]
      }
      

绑定关系 [/app/bindings]

获取绑定列表 [GET]

  • 参数列表

    • limit (optional, number, 20)
    • skip (optional, number, 0)
  • Request (application/json)

    • Header
      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
  • Response 200 (application/json)

    • Body
      {
          "devices": [{
              "product_key": "akdlfkad",
              "did": "abcada",
              "mac": "1122334455667788",
              "is_online": false,
              "passcode": "123456",
              "host": "m2m.gizwits.com",
              "port": 3128,
              "remark": "",
              "is_disabled": false
          },{
              "product_key": "akdlfkad",
              "did": "abcada",
              "mac": "1122334455667788",
              "is_online": false,
              "passcode": "123456",
              "host": "m2m.gizwits.com",
              "port": 3128,
              "remark": "",
              "is_disabled": false
          }]
      }
      

绑定设备 [POST]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
    • Body

      {
          "devices": [{
              "did": "gdGn7PzAYf4VrhnVag5x8D",
              "passcode": "gokit",
              "remark": ""
          }]
      }
      
  • Response 200 (application/json)

       {
            "success": ['abc', 'add'],
            "failed": ['adad', 'ee']
       }
    

解除绑定 [DELETE]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
    • Body

      {
          "devices": [{
              "did": "gdGn7PzAYf4VrhnVag5x8D"
          }]
      }
      
  • Response 200 (application/json)

       {
            "success": ['abc', 'add'],
            "failed": ['adad', 'ee']
       }
    

设备信息 [/app/devices/{did}]

获取设备详细信息 [GET]

  • 参数列表

    • did (required, string, abcada)
  • Request (application/json)

    • Header
      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
  • Response 200 (application/json)

    • Body
      {
          "product_key": "akdlfkad",
          "did": "abcada",
          "mac": "1122334455667788",
          "is_online": false,
          "passcode": "123456",
          "host": "m2m.gizwits.com",
          "port": "3128"
      }
      

查询设备 [/app/devices]

根据 product_key 和 mac 查询设备 [GET]

  • 参数列表

    • product_key (required, string, product_key)
    • mac (required, string, 112233445566)
  • Request (application/json)

    • Header
      X-Gizwits-Application-Id: {appid}
      
  • Response 200 (application/json)

    • Body
      {
          "did": "abcada",
          "passcode": "123456",
      }
      

远程控制设备 [/app/control/{did}]

远程控制设备可以通过两种方式,一种是设置数据点,一种是发送原始控制指令。 推荐使用设置数据点的方式,通过这种方式控制设备,系统内部自动会生成原始控制指令发送给设备,使用起来更简单。

  • 参数列表
    • did (required, string, did)

设置数据点 [POST]

  • 只能设置可写类型的数据点
  • bool 类型的数据点设置为 true/false
  • enum 类型的数据点设置为枚举的字符串
  • uint8/uint16/uint32 类型的数据点设置为数字
  • binary 类型的数据设置为 hex 类型字符串,如发送一串二进制数据 0x01, 0x02, 0x03, 就写成 "010203"

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
    • Body

      {
          "attr": "temp",
          "val": 10
      }
      
  • Response 200 (application/json)

    • Body
      {}
      

发送原始控制指令 [POST]

  • Request (application/json)

    • Header

      X-Gizwits-Application-Id: {appid}
      X-Gizwits-User-token: {token}
      
    • Body

      {
          "raw": [<byte>, <byte>, ...]
      }
      
  • Response 200 (application/json)

    • Body
      {}