氦氪云端API文档(C1)
v1.0.0 by xinjie.hou@hekr.me
关键词
S表达式(SEXP)
:准确地说是lambdaTM代码,SEXP既是代码也是数据,这对于理解指令和后续描述的一些场景非常重要请求参数(Request Params)
: 即是指常规的请求中所带参数user_token
: 用户授权识别码device_token
: 设备授权识别码三方昵称
: 用户通过第三方登录绑定hekr服务的时候的其他服务别名(例如通过qq登录,nick便是qq昵称)氦氪昵称
: 用户在hekr用户体系下定义的昵称C1
:WEB APIC2
:企业数据服务APIC3
:WEBSOCKE API & TCP APIQuartz Cron表达式(Quartz CronTrigger)
详细文档终端ID(tid)
终端分为设备终端
和用户终端
, 该id唯一标示一个终端设备终端
一般指嵌入hekr智能模块的智能设备用户终端
一般指用户会话登录操控设备的对应实体,例如APP
C1接口说明
流程说明
注:在需要登陆认证的API中目前有以下2种认证方式, 接口使用中至少需要采用以下一种认证方式:
1.需要依赖cookie, 确保cookie中存在
u
,_csrftoken_
字段, 并在HTTP请求中,需要将此处所用_csrftoken_
替换为cookie里面的_csrftoken_
数据2.使用accesskey认证,除(C1-2, C1-14, C1-28); 推荐在不方便使用cookie的场景下使用,使用时需要在请求参数中带上用户的userAccessKey
C1-1 用户登录认证
GET http://login.hekr.me/oauth.htm?type=qq
GET http://login.smartmatrix.mx/oauth.htm?type=g
- 采用国外的域名服务 smartmatrix.mx(google facebook twitter)
- 采用国内的域名服务 hekr.me(weixin weibo qq)
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
type | 必选 | 字符串 | qq / weibo / g / tw / weixin / fb | 三方登陆类型 |
返回
- 登录后跳转到成功页面,获取用户cookie
C1-2 获取ACCESSKEY
GET http://user.hekr.me/token/generate.json?_csrftoken_=value&type=DEVICE
说明
该api 提供生成或返回访问密钥;密钥分为设备密钥和用户密钥,设备密钥在设备登录时候使用,用户密钥在用户授权登录中使用,例如websocket api中需要提供用户密钥。
该API为每次用户登录(APP/WEB)后进行调用,初次使用会创建对应类型accesskey并初始化该用户档案,若不是初次调用则返回已存在的该类型accesskey.用户获取到accesskey之后才能进行后续的诸如 用户会话终端登录, 绑定设备等操作,和后续的API操作
http header 参数
cookie
登录后的cookie, 必选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
type | 可选 | 字符串 | DEVICE/USER | 不选默认为DEVICE,期望生成(返回)的ak类型 |
_csrftoken_ | 必选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
返回
{
"uid":"18fcad8f1345510603ef69238ab42b8e",
"time":1433350988993,
"type":"DEVICE",
"token":"aaa"
}
uid
用户唯一idtime
accesskey生成时间, 毫秒时间戳type
accesskey类型token
返回的accesskey
C1-3 列举设备
GET http://user.hekr.me/device/list.json?_csrftoken_=value&accesskey=value
说明
调用该api获取当前用户拥有的设备
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
[
{
"uid": "293696196962",
"tid": "RT5350_8F_ASDADSADSAD",
"online": 1,
"time": 1425892475758,
"detail": "(\"pid\" \"1\" \"mid\" \"1\" \"cid\" \"1\" \"provider\" \"LSA\" \"category\" \"yuba\" \"model\" \"\" \"phone\" \"400-826-198600000000\" )",
"state":"(\"power\" 1)",
"name":"aaa",
"fname":"bbb"
},
{....}
]
uid
用户唯一id(若uid与当前调用用户uid不相等,则表示该设备为别人授权给该用户的)tid
设备唯一idonline
设备是否在线time
设备登录联网时间,毫秒时间戳detail
设备明细快照信息;数据为s表达式state
设备状态快照数据;数据为s表达式name
设备别名fname
设备目录名字(一个目录可以包含多个设备,请参看目录操作api)fid
设备目录id(若设备不在非根目录文件夹下,则无该值的返回)
C1-4 隐藏离线设备
GET http://user.hekr.me/device/delete.json?_csrftoken_=value&tid=xxxx&accesskey=value
说明
在用户设备列表界面中,隐藏一个暂不使用的设备选项卡, 当该设备下次上线上报状态和明细后将再度显示
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 待隐藏离线设备tid |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
{
"code":200,
"message":"success"
}
C1-5 设备改名
GET http://user.hekr.me/device/rename/{tid}.json?_csrftoken_=value&name=xxxx&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 待改名设备tid |
name | 必选 | 字符串 | 长度不超过64字符的name | 设备改名的名字 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
{
"code":200,
"message":"success"
}
C1-6 获取设备名字
GET http://user.hekr.me/device/getName.json?_csrftoken_=xxx&tid=xxxx&accesskey=value
说明
若并没有调用C1-5为设备设定过名字,那么返回的name为 ""
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 期望获取名字的设备tid |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
{
"code":200,
"name":"客厅除湿机"
}
name
设备别名
C1-7 激活设备(无属主登录情况下需要主动认领设备)
GET http://user.hekr.me/device/activate.json?encryptkey=xxx&ver=1.0&time=xxx&accesskey=value
说明
对于某些设备不方便当场绑定认领的,先使设备以无属主模式登陆云端,随后调用该API进行认领
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
encryptkey | 必选 | 字符串 | 长度不超过64字符 | 其实就是设备的tid |
ver | 必选 | 字符串 | 合法的版本号 | 目前只支持1.0 |
time | 必选 | 时间戳 | 毫秒时间戳 | 用户输入设备大概上线时间时间戳,前后5min窗口 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
{
"code":200,
"message":"success"
}
C1-8 新增目录
GET http://user.hekr.me/folder/create.json?_csrftoken_=value&name=xxxx&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
name | 必选 | 字符串 | 长度不超过64字符的合法name | 新增目录名字 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
{
"code":200,
"message":"success"
}
C1-9 列举目录
GET http://user.hekr.me/folder/list.json?_csrftoken_=value&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
[
{
"fid":1,
"name":"aaa"
},{...}
]
fid
fid 目录idname
目录名字
C1-10 删除目录
GET http://user.hekr.me/folder/delete/{fid}.json?_csrftoken_=value&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
fid | 必选 | 长整型 | 非0的合法fid | 目录id |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回参数
{
"code":200,
"message":"success"
}
C1-11 重命名目录
GET http://user.hekr.me/folder/rename/{fid}.json?_csrftoken_=value&name=aaaa&accesskey=value
http header 参数
cookie
登录后的cookie,可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
fid | 必选 | 长整型 | 非0的合法fid | 目录id |
nanme | 必选 | 字符串 | 长度不超过64字符的合法name | 重命名目录名字 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
{
"code":200,
"message":"success"
}
C1-12 把设备添加到目录
GET http://user.hekr.me/folder/{fid}/add/{tid}.json?_csrftoken_=value&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
fid | 必选 | 长整形 | 非0的合法fid | 目录id |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 设备tid |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
{
"code":200,
"message":"success"
}
C1-13 把设备从子目录移到根目录
GET http://user.hekr.me/folder/{fid}/remove/{tid}.json?_csrftoken_=value&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
fid | 必选 | 长整形 | 非0的合法fid | 目录id |
tid | 必须 | 字符串 | 长度不超过64字符的合法tid | 设备tid |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回参数
{
"code":200,
"message":"success"
}
C1-14 匿名账户
GET http://user.hekr.me/user/guestAccount.json?mobileuuid=xxxx&ver=1.0&nick=aaaa
说明
用户登录时不选择其他三方登录,而是选择本地匿名登陆,通过set cookie来维持该用户的使用
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
mobileuuid | 必选 | 字符串 | android(imei+imsi)/ios(uuid) | 移动端唯一id |
nick | 可选 | 字符串 | 长度不超过10个字符 | 昵称 |
ver | 必选 | 字符串 | 合法版本号 | 目前只支持1.0 |
返回
{
"code":200,
"u":"k018RfmBjlml/tM6n4pGCSIdsfTOhGiKhbR7dNpkoTaH1JimrnRoGm26gSzSmO7snWpQUqCErOAVA=",
"isAllowGuestAccount":true,
"_csrftoken_":"XA1z"
}
- u参数和_csrftoken_设置到cookie中,该api也会同时设置cookie
C1-15 获取用户名字信息
GET http://user.hekr.me/user/getUserProfile.json?uid=xxx&_csrftoken_=xxx&accesskey=value
说明
uid若不指定则查询自己的名字信息,若指定则查询他人的名字信息, 返回的nick 以氦氪昵称为准,即有hick昵称不为空则返回氦氪昵称,否则返回用户的三方nick,若用户为匿名用户且没设定氦氪昵称,则返回 "". 调用者也可以根据自己的需求选择返回哪个昵称
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
uid | 可选 | 字符串 | 长度不超过64字符的合法uid | uid |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回参数
{
"code":200,
"uid":"xxxxx"
"nick":"kjboss",
"source_nick": "kj021",
"hekr_nick": "kjboss"
}
uid
用户唯一IDnick
用户名字source_nick
三方登陆nickhekr_nick
氦氪昵称
C1-16 获取个人配置信息
GET http://user.hekr.me/user/getPreferences.json?accesskey=xxxx&_csrftoken_=xxx
说明
请求参数(假如包含cookie信息和accesskey 优先使用accesskey) accesskey 和 cookie 认证方式二选一
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 如果使用cookie的情况下,该参数必选,与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法的accesskey | accesskey |
返回
{
"code":200,
"preferences_json":"",
"preferences_sexp":""
}
preferences_json
- 个人偏好json格式数据preferences_sexp
- 个人偏好sexp格式数据
C1-17 保存个人配置信息
POST http://user.hekr.me/user/setPreferences.json?accesskey=xxxx&_csrftoken_=xxx&preferences_json=xxx&preferences_sexp=xxx
说明
请求参数(假如包含cookie信息和accesskey 优先使用accesskey) accesskey 和 cookie 认证方式二选一
开发者可以使用该接口做简单的用户档案存储,存储的档案内容以用户作为维度可以在多设备上共享,例如设定氦氪昵称
,则可设置 preferences_json 参数内容为:
{
"account_name" : "nick", //氦氪昵称
... // 其他数据
}
注: 其他定制扩展APP也可以使用该方法逻辑设定内部账号昵称
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 如果使用cookie的情况下,该参数必选,与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法的accesskey | accesskey |
preferences_json | 可选 | 字符串 | 标准json格式字符串 | 个人偏好json格式数据 |
preferences_sexp | 可选 | 字符串 | 标准s-exp格式字符串 | 个人偏好sexp格式数据 |
返回
{
"code":200,
"message":"success"
}
C1-18 设备解除绑定
GET http://user.hekr.me/device/clearAccesskey.json?tid=xxxx&_csrftoken_=xxx&accesskey=value
说明
只有在线设备才可以使用该接口,调用该接口后目标设备与调用用户脱离关系,用户将不再拥有、不能够操作该设备
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 设备tid |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
返回
{
"code":200,
"message":"success"
}
C1-19 用户授权设备
GET http://user.hekr.me/auth/authDevice.json?tid=xxxx&_csrftoken_=xxx&grant_uid=xxx&desc=xxx&accesskey=value
说明
授权用户将某个设备授权给另外一个用户,之后,被授权用户将得到与授权用户一样的设备视图,并具备除除以下行为中的所有授权用户可操作权限集合:
删除或修改授权用户创建的 定时(预约)任务
,事件规则
不可以再将该设备授权给其他人,也就是说授权关系不能传递
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 授权设备tid |
grant_uid | 必选 | 字符串 | 合法存在的uid | 被授权者uid |
desc | 可选 | 字符串 | 长度不超过255的字符串 | 授权描述 |
expire_time | 可选 | UNIX_TIME | UNIX_TIME | 授权过期时间,设置0为不失效,默认不失效 |
返回
{
"code":200,
"message":"success"
}
C1-20 用户解除授权设备关系
GET http://user.hekr.me/auth/deauthDevice.json?from_uid=xxxx&tid=xxxx&_csrftoken_=xxx&grant_uid=xxx&accesskey=value
说明
该接口可以是设备所有者(属主)调用,也可以是被授权用户调用 其中当属主调用时,grant_uid不为空的时候,则取消该设备对该授权用户的授权关系;为空的时候则取消该设备对所有授权用户的授权关系。 当被授权者调用时,grant_uid 不得为空,这个时候是被授权用户主动取消该设备的授权关系
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 授权设备tid |
from_uid | 必选 | 字符串 | 合法存在的uid | 该授权关系中授权者uid |
grant_uid | 可选 | 字符串 | 合法存在的uid | 被授权者uid |
返回
{
"code":200,
"message":"success"
}
C1-21 授权设备列表
GET http://user.hekr.me/auth/listAuth.json?tid=xxx&_csrftoken_=xxx&accesskey=value
说明
该接口返回调用用户在该设备上授权给其他人的详细信息
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 授权设备tid |
返回
[
{
"uid":"xxxx",
"uid_nick": "xxxx",
"uid_account_name" : "xxxx",
"tid":"xxxx",
"grant_uid":"xxxx",
"grant_uid_nick":"xxxx",
"grant_account_name" : "xxxx",
"operation":"",
"expire_time":1437308032,
"desc":""
},
{
"uid":"xxxx",
"uid_nick":"xxx",
"uid_account_name": "xxx",
"tid":"xxxx",
"grant_uid":"xxbbxx",
"grant_uid_nick":"xxx",
"grant_account_name" : "xxx",
"operation":"",
"expire_time":0,
"desc":""
}
]
uid
授权用户uid_nick
授权用户三方nickuid_account_name
授权者的氦氪昵称tid
设备的唯一IDgrant_uid
被授权用户grant_uid_nick
被授权者三方nickgrant_account_name
被授权者的氦氪昵称operation
允许的操作,为空则表示任何操作(目前默认为空,即全部权限)expire_time
授权失效时间(目前默认为0,即不失效)desc
授权详细说明
C1-22 创建事件规则
POST http://user.hekr.me/rule/createEvent.json?tid=xxx&rulename=xxxx&_csrftoken_=xxx&executecode=xxx&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 授权设备tid |
rulename | 必选 | 字符串 | 长度不超过64个字符 | 规则名字 |
executecode | 必选 | 字符串 | 长度不超过255个字符的合法s-exp |
事件执行代码 |
desc | 可选 | 字符串 | 长度不超过255个字符 | 详细说明,描述 |
返回
{
"code":200,
"message":"success",
"value" :
{
"...": "..." // 创建的规则信息
}
}
C1-23 列举规则
GET http://user.hekr.me/rule/list.json?_csrftoken_=xxx&ruleid=xxx&accesskey=value
说明
若指定ruleid则返回该条规则详情,否则该用户返回所有的规则
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
ruleid | 可选 | 长整型 | 长整型 | 规则id |
返回参数
[{
"id",
"rulename":"xxxxx",
"executecode":"",
"type":"",
"tid": "",
"timezoneoffset": xx,
"cronexpr": "",
"desc" : "",
"createtime": "2015-09-10 22:00:00",
"modifytime": "2015-09-20 15:00:00",
"starttime" : 1442678400000,
"endtime": 1492678400000
},{...}
]
rulename
任务/规则名字executecode
执行程序代码id
规则管理idtid
终端唯一idtype
类型,事件规则EVENT
,调度规则SCHEDULER
createtime
规则创建时间modifytime
规则修改时间desc
规则描述cronexpr
定时规则的cron表达式(只有定时任务才有)timezoneoffset
设定任务时指定的UTC时间的时区偏移量(只有定时任务才有)starttime
毫秒时间戳,创建该规则时设定周期规则的开始时间,如果实际首次调度时时间大于该值则以调度时间为准,否则以该值为准(只有定时任务才有)endtime
毫秒时间戳,创建该规则时设定周期规则的结束时间(只有定时任务才有)
C1-24 修改事件规则
POST http://user.hekr.me/rule/updateEvent.json?_csrftoken_=xxx&ruleid=xxx&tid=xxx&executecode=xxx&desc=xxxx&accesskey=value
说明
修改用户自己创建的事件规则
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
ruleid | 必选 | 长整型 | 长整型 | 待修改规则id |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 授权设备tid |
executecode | 可选 | 字符串 | 长度不超过255个字符的合法s-exp |
事件执行代码 |
desc | 可选 | 字符串 | 长度不超过255个字符 | 详细说明,描述 |
返回
{
"code":200,
"message":"success"
}
C1-25 删除规则
GET http://user.hekr.me/rule/remove.json?_csrftoken_=xxx&ruleid=xxx&tid=xxx&accesskey=value
说明
删除用户自己创建的事件规则
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
ruleid | 必选 | 长整型 | 长整型 | 待修改规则id |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 授权设备tid |
返回
{
"code":200,
"message":"success"
}
C1-26 创建定时/计划任务规则
POST http://user.hekr.me/rule/createScheduler.json?rulename=xxxx&_csrftoken_=xxx&executecode=xxx&accesskey=value
说明
氦氪云后台会启动定时任务,时间到达后会调用E4-4 setTimer
下发对应的执行逻辑代码,时间将近到达会下发延时任务;
字段 | 允许值 | 允许的特殊字符 |
---|---|---|
分 | 0-59 | , - * / |
小时 | 0-23 | , - * / |
日期 | 1-31 | , - * ? / L W C |
月份 | 1-12 | , - * / |
星期 | 1-7 | , - * ? / L C # |
年(可选) | 留空, 1970-2099 | , - * / |
'*' 字符可以用于所有字段,在“分”字段中设为"*"表示"每一分钟"的含义。
'?' 字符可以用在“日”和“周几”字段. 它用来指定 '不明确的值'. 这在你需要指定这两个字段中的某一个值而不是另外一个的时候会被用到。在后面的例子中可以看到其含义。
'-' 字符被用来指定一个值的范围,比如在“小时”字段中设为"10-12"表示"10点到12点".
',' 字符指定数个值。比如在“周几”字段中设为"MON,WED,FRI"表示"the days Monday, Wednesday, and Friday".
'/' 字符用来指定一个值的的增加幅度. 比如在“秒”字段中设置为"0/15"表示"第0, 15, 30, 和 45秒"。而 "5/15"则表示"第5, 20, 35, 和 50". 在'/'前加"*"字符相当于指定从0秒开始. 每个字段都有一系列可以开始或结束的数值。对于“秒”和“分”字段来说,其数值范围为0到59,对于“小时”字段来说其为0到23, 对于“日”字段来说为0到31, 而对于“月”字段来说为1到12。"/"字段仅仅只是帮助你在允许的数值范围内从开始"第n"的值。 因此对于“月”字段来说"7/6"只是表示7月被开启而不是“每六个月”, 请注意其中微妙的差别。
'L'字符可用在“日”和“周几”这两个字段。它是"last"的缩写, 但是在这两个字段中有不同的含义。例如,“日”字段中的"L"表示"一个月中的最后一天" —— 对于一月就是31号对于二月来说就是28号(非闰年)。而在“周几”字段中, 它简单的表示"7" or "SAT",但是如果在“周几”字段中使用时跟在某个数字之后, 它表示"该月最后一个星期×" —— 比如"6L"表示"该月最后一个周五"。当使用'L'选项时,指定确定的列表或者范围非常重要,否则你会被结果搞糊涂的。
'W' 可用于“日”字段。用来指定历给定日期最近的工作日(周一到周五) 。比如你将“日”字段设为"15W",意为: "离该月15号最近的工作日"。因此如果15号为周六,触发器会在14号即周五调用。如果15号为周日, 触发器会在16号也就是周一触发。如果15号为周二,那么当天就会触发。然而如果你将“日”字段设为"1W", 而一号又是周六, 触发器会于下周一也就是当月的3号触发,因为它不会越过当月的值的范围边界。'W'字符只能用于“日”字段的值为单独的一天而不是一系列值的时候。
'L'和'W'可以组合用于“日”字段表示为'LW',意为"该月最后一个工作日"。
'#' 字符可用于“周几”字段。该字符表示“该月第几个周×”,比如"6#3"表示该月第三个周五( 6表示周五而"#3"该月第三个)。再比如: "2#1" = 表示该月第一个周一而 "4#5" = 该月第五个周三。注意如果你指定"#5"该月没有第五个“周×”,该月是不会触发的。
'C' 字符可用于“日”和“周几”字段,它是"calendar"的缩写。它表示为基于相关的日历所计算出的值(如果有的话)。如果没有关联的日历, 那它等同于包含全部日历。“日”字段值为"5C"表示"日历中的第一天或者5号以后",“周几”字段值为"1C"则表示"日历中的第一天或者周日以后"。
对于“月份”字段和“周几”字段来说合法的字符都不是大小写敏感的。
下面是一些完整的例子:
表达式 含义
"0 0 12 * * ?" 每天中午十二点触发
"0 15 10 ? * *" 每天早上10:15触发
"0 15 10 * * ?" 每天早上10:15触发
"0 15 10 * * ? *" 每天早上10:15触发
"0 15 10 * * ? 2005" 2005年的每天早上10:15触发
"0 * 14 * * ?" 每天从下午2点开始到2点59分每分钟一次触发
"0 0/5 14 * * ?" 每天从下午2点开始到2:55分结束每5分钟一次触发
"0 0/5 14,18 * * ?" 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
"0 0-5 14 * * ?" 每天14:00至14:05每分钟一次触发
"0 10,44 14 ? 3 WED" 三月的每周三的14:10和14:44触发
"0 15 10 ? * MON-FRI" 每个周一、周二、周三、周四、周五的10:15触发
"0 15 10 15 * ?" 每月15号的10:15触发
"0 15 10 L * ?" 每月的最后一天的10:15触发
"0 15 10 ? * 6L" 每月最后一个周五的10:15触发
"0 15 10 ? * 6L" 每月最后一个周五的10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月最后一个周五的10:15触发
"0 15 10 ? * 6#3" 每月的第三个周五的10:15触发
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
rulename | 必选 | 字符串 | 长度不超过64字符 | 期望创建规则的名字 |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 授权设备tid |
executecode | 必选 | 字符串 | 长度不超过255个字符的合法s-exp |
执行代码 |
timeZoneOffset | 必选 | 整型 | [-720,720] | UTC时间的时区偏移量,以分钟为单位,例如UTC+8则为480 |
cronexpr | 必选 | 字符串 | Quartz Cron表达式 |
任务计划执行 Quartz Cron表达式 |
starttime | 可选 | 长整型 | 长整型 | 毫秒时间戳,任务计划执行时间 |
endtime | 可选 | 长整型 | 长整型 | 毫秒时间戳,任务计划执行完毕时间 |
desc | 可选 | 字符串 | 长度不超过255个字符 | 详细说明,描述 |
注意:
timeZoneOffset
UTC时间的时区偏移量,标识该任务的时区偏移信息,以分钟为单位(例如中国时区为UTC+8,以分钟为单位,那么值为480),实际调度以服务器的UTC时间为准.参考示例
返回
{
"code":200,
"message":"success",
"value" :
{
"...": "..." // 创建的规则信息
}
}
C1-27 修改定时/计划任务规则
POST http://user.hekr.me/rule/updateScheduler.json?ruleid=xxxx&_csrftoken_=xxx&executecode=xxx&accesskey=value
说明
注:修改定时任务时若指定了disable参数那么其他参数的更改将不做生效
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
ruleid | 必选 | 长整型 | 长整型 | 规则id |
tid | 必选 | 字符串 | 长度不超过64字符的合法tid | 授权设备tid |
rulename | 可选 | 字符串 | 长度不超过64字符 | 期望修改规则的名字 |
executecode | 可选 | 字符串 | 长度不超过255个字符的合法s-exp |
事件执行代码 |
timeZoneOffset | 可选 | 整形 | [-720,720] | UTC时间的时区偏移量,以分钟为单位,例如UTC+8则为480 |
cronexpr | 可选 | 字符串 | Quartz Cron表达式 |
任务计划执行 Quartz Cron表达式 |
starttime | 可选 | 长整型 | 长整型 | 毫秒时间戳,任务计划执行时间 |
endtime | 可选 | 长整型 | 长整型 | 毫秒时间戳,任务计划执行完毕时间 |
desc | 可选 | 字符串 | 长度不超过255个字符 | 详细说明,描述 |
disable | 可选 | 整型 | 0/1 | 是否禁用此规则, 1表示禁用(disbale), 0 表示启用(enable) |
返回
{
"code":200,
"message":"success"
}
C1-28 取消用户的某个accesskey
GET http://user.hekr.me/token/disableToken.json?_csrftoken_=xxx&accesskey=xxx
说明
调用后该用户这个ak将会被清空,待下次调用c1-2后会生成新的ak 假如取消deviceAccesskey的话, 设备需要重新绑定
http header 参数
cookie
登录后的cookie
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 必选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accessKey | 必选 | 字符串 | 合法accesskey | 待取消的userAccesskey/deviceAccesskey |
返回参数
{
"code":200,
"message":"success"
}
C1-29 获取用户的告警信息详情
GET http://user.hekr.me/user/warningDetail.json?_csrftoken_=value&id=xxx&tid=xxx&count=xxx&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
msgIdList | 可选 | 字符串 | 不大于512字符 | 期待获取详细信息的警告id列表,用逗号分隔 |
tid | 可选 | 字符串 | 不大于64字符 | 设备唯一标示 |
count | 必选 | 整型 | 整型 | 一次性获取告警信息条数的最大数目(如果id参数有指定,且数目大于count,实际返回数目也以count为准) |
返回
[{
"tid":xxxx,
"msg_id" : "xxxx",
"report_time":xxxxx,
"warning_tag":"",
"warning_content":"",
},{...}
]
C1-30 获取用户设备统计数据详情
GET http://user.hekr.me/user/getStatistics.json?_csrftoken_=value&starttime=xxx&endtime=xxx&method=xx&dataTagIndex=xxx&tid=xxx&accesskey=value
说明
注: starttime 和 endtime 直接最小时间间隔应在10分钟以上,否则展现数据画图并无意义
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
starttime | 必选 | UNIX_TIME | UNIX_TIME | 统计开始时间 |
endtime | 必选 | UNIX_TIME | UNIX_TIME | 统计结束时间 |
method | 必选 | 字符串 | all/avg/sum/min/max/count | 使用统计方法,其中all代表其他五种运算都执行 |
tid | 必选 | 字符串 | 不大于64字符 | 设备唯一标示 |
datatagindex | 必选 | 整型 | 合法数据种类编号 | 统计设备数据的种类编号 |
返回
{
"scale":xxx,
"interval" : xxxx,
"value" : [
{
"max" : xxx,
"min" : xxx,
"sum" : xxx,
"avg" : xxx,
"count" : xxx,
"time" : xxxxx
}, {....},
]
}
C1-31 个推信道注册
GET http://user.hekr.me/user/registerGeXinChannel.json?_csrftoken_=value&tid=xx>appid=xx>cid=xxx&ostype=xx&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
tid | 必选 | 字符串 | 不大于64字符 | 设备唯一标示 |
gtappid | 必选 | 字符串 | 合法appid | 手机客户端在个推平台注册登记应用后,生成的AppID |
gtcid | 必选 | 字符串 | 合法gtcid | app在初始化个推客户端SDK时,从个推平台获取的cid,注意:该参数,android客户端填写从个推平台获取的cid,IOS客户端填写从苹果服务器获取的DeviceToken |
ostype | 必须 | 整型 | 1/2/3 | 设备os类型 1.安卓 2.苹果 3.WinPhone |
返回
{
"code":200,
"message":"success"
}
C1-32 个推信道注销
GET http://user.hekr.me/user/unRegisterGeXinChannel.json?_csrftoken_=value&tid=xx>appid=xx>cid=xxx&ostype=xx&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
tid | 必选 | 字符串 | 不大于64字符 | 设备唯一标示 |
gtappid | 必选 | 字符串 | 合法appid | 手机客户端在个推平台注册登记应用后,生成的AppID |
返回
{
"code":200,
"message":"success"
}
C1-33 触发型规则运行快照
GET http://user.hekr.me/athena/ruleInExecuteInfo.json?_csrftoken_=value&tid=xx&ruleid=xx&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
tid | 必选 | 字符串 | 不大于64字符 | 设备唯一标示 |
ruleid | 必选 | 长整形 | 存在的规则id | 查看的事件性规则id |
返回
{
"code":200,
"message":"success",
"errorDesc": "succeed",
"isDeliverd":1,
"lastTriggerTime":1446534790736,"
"executeRet":1,
}
errorDesc
事件型规则执行错误信息isDelivered
事件执行代码动作是否下发到设备lastTriggerTime
最后一次该规则触发的时间,时间戳(毫秒)executeRet
事件型规则执行结果 1 成功 0 失败
C1-34 触发型规则执行历史记录
GET http://user.hekr.me/athena/triggerRecord.json?_csrftoken_=value&tid=xx&ruleid=xx&startTime=value&endTime=value&count=value&accesskey=value
http header 参数
cookie
登录后的cookie, 可选
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
_csrftoken_ | 可选 | 字符串 | 随机四位数 | 与cookie中该值保持一致 |
accesskey | 可选 | 字符串 | 合法accesskey | 用户的userAccessKey |
tid | 必选 | 字符串 | 不大于64字符 | 设备唯一标示 |
ruleid | 必选 | 长整形 | 存在的规则id | 查看的事件性规则id |
startTime | 可选 | 长整形 | 合法毫秒时间戳 | 时间范围,起始 |
endTime | 可选 | 长整形 | 合法毫秒时间戳 | 时间范围,结束 |
count | 可选 | 整数 | [0,50] | 查询数量,最大支持50(超过默认使用50) |
返回
[{
"code":"(if (> power 1) (quote (turn-on)))",
"currentQuota":498,
"errorDesc":"succeed",
"id":1675,
"isDelivered":1,
"reportTime":"2015-11-03 15:13:10",
"reportTimestamp":1446534790736,
"ret":1,
"ruleid":823,
"tid":"faketid1",
"uid":"2dc623a83dfb1884ad7374afdd76f3e9"},
...]
code
规则代码,s表达式currentQuota
当前所剩quota, quota每日自动重置errorDesc
事件型规则执行错误信息id
记录idreportTime
上报时间reportTimestamp
上报时间戳(毫秒)ret
事件型规则执行结果 1 成功 0 失败ruleid
规则idtid
设备唯一iduid
用户id
C1-35 Mobile Login API interface
GET http://login.hekr.me/m_login.htm?oauthid=C4CA4238A0B923820DCC509A6F75849B&type=weibo&context=2JVo%2F6DeuKdjmkhlmHJ58kzW%2F0MrK0F75L8OKup5qgFkO02nwhoExGa%2FwIU9zkm1719OmHu%2B96Ma%0D%0AjN5AJYkDhWNWKx54fAczIAUay2C4ddkkEnoSQ%2BVKykJhFJBWB6ZpYPt6cJbmKHNyJbJDG7bKqRW4%0D%0AXeBfRcL5YM2prLPgtHtJ76qakexUBq46VXLCXGkzFjxLjGsBwoKkpyIQ4d2NmMRON36PHjEBA2Tv%0D%0AExT8yPBd4MYUtJe%2FDND17WcDAl7J0eGylZxqf8k%3D
- 采用国外的域名服务 smartmatrix.mx (google facebook twitter)
- 采用国内的域名服务 hekr.me (weixin weibo qq)
请求参数
参数名称 | 是否可选 | 参数类型 | 取值范围 | 说明 |
---|---|---|---|---|
oauthid | 可选 | 字符串 | oauth项目ID | |
type | 必选 | 字符串 | qq/weibo/google/twitter/weixin/facebook | oauth接口类型 |
context | 必选 | 字符串 | oauth接口callback后加密内容 |
oauthid
oauth项目ID,可在poseidon中创建获得,每个oauth项目ID都具有唯一性。如果值为空或没有使用该参数则使用Hekr默认的oauth接口。
type
目前仅支持qq/weibo/google/twitter/weixin/facebook的oauth2.0接口,有其他接口需求请联系HEKR售前、后人员。
context
oauth接口callback后将返回参数内容 (raw) 和oauth接口类型 (type) 还有oauth项目id (oauthid) 组合成为json格式。
{"type": "weibo","oauthid": "C4CA4238A0B923820DCC509A6F75849B", "raw":"{\"access_token\":\"2.00iIGD4CXiJCvCc5432bc7a6ugDjeB\",\"remind_in\":\"616692\",\"expires_in\":616692,\"uid\":\"2172859980\"}"}
type为请求参数中的type
oauthid为请求参数中的oauthid,如果打算使用hekr默认的oauth接口,则值留空(注意,不是null,只留双引号即可"")
例如:
{"type": "weibo","oauthid": "", "raw":"{\"access_token\":\"2.00iIGD4CXiJCvCc5432bc7a6ugDjeB\",\"remind_in\":\"616692\",\"expires_in\":616692,\"uid\":\"2172859980\"}"}
raw参数内容是将oauth接口callback返回回来的内容转换成为json格式数据
通过DES加密算法使用OAUTH项目创建时提供的apikey加密后得到的值,再通过base64编码并且再进行一次URLEncoder.encode后即可提交。
需要注意的是,如果只使用hekr默认的oauth接口,是不需要对context的值进行DES加密的,直接进行base64编码后再进行一次URLEncoder.encode后即可提交。
说明
参数进行提交由hekr的mobile login api接口验证通过后会有一次302跳转至http://login.hekr.me/success.htm进行跨域cookie同步。 cookie中会包含有当前用户在hekr服务器中的uid与登陆验证信息u,可用于登陆HEKR云端服务器。