1. MixIOT V8接口说明
MixIOT V8 API由apiproxy服务提供。
MixIOT V8 API支持HTTP、Websocket两种方式调用
- HTTP为短连接, 常用来查询历史数据。
- Websocket为长连接,常用来订阅实时数据、事件消息等。
术语说明
术语 | 说明 |
---|---|
app_id | 授权编号:可在授权应用中获取,每个授权应用的编号都唯一 |
app_secret | 授权密钥: 每个授权应用对应唯一的密钥,为了保证数据的安全,密钥务必不能泄漏 |
access_token | access_token 是第三方访问apiproxy接口信息的重要凭据,由app_id 和app_secret 产生。 |
1.1. 接口地址
如,你的物联网平台为 test.mixyun.com
, 以下用{你的物联网平台地址}
替代:
- HTTP接口地址:
http://{你的物联网平台地址}/apiproxy/api
https://{你的物联网平台地址}/apiproxy/api
(HTTP的加密版本)
- Websocket接口地址:
ws://{你的物联网平台地址}/apiproxy/ws/api
wss://{你的物联网平台地址}/apiproxy/ws/api
(WebSocket的加密版本)
1.2. 接口使用步骤
1.2.1. Step1 配置API授权
打开应用”API管理”
添加API授权
输入授权名称,ip白名单,点击“点击生成密钥”,确定保存
获取
app_id
和app_secret
app_id
即 授权编号 SGN3221654000001app_secret
即 密钥 13c09a6d-522e-c78f-1fb3-f7c3f7f626d7
1.2.2. Step2 获取 access_token
请求参数说明:
参数名称 | 是否必选 | 数据类型 | 描述 |
---|---|---|---|
action | 是 | string | 指令:get_access_token |
actionid | 否 | string | 指令编号 |
app_id | 是 | string | 授权编号 |
app_secret | 是 | string | 授权密钥 |
Request Body:RAW
{
"action": "get_access_token",
"actionid": "",
"app_id": "SGN3221654000001",
"app_secret": "13c09a6d-522e-c78f-1fb3-f7c3f7f626d7"
}
响应参数说明:
参数名称 | 是否必选 | 数据类型 | 描述 |
---|---|---|---|
resp | 是 | string | 请求指令 |
code | 是 | int | code码,参见下文code码说明 |
msg | 是 | string | 错误提示语 |
access_token | 是 | string | 获取到的凭证 |
expires_in | 是 | int | 凭证的有效时间(秒) |
Response:
{
"resp": "get_access_token",
"actionid": "",
"code": 200,
"msg": "成功",
"result": {
"access_token": "U0dONDEyNTc3NDkwMDAwNSNhM2I5ZTg5MS1hYzI5LWYwM2EtNTk2YS1iZWFmYjg1ZGQ1M2QjMjAyNC0wMS0xNyAxNjo0MToxOS4zNDE0Mjk4MjEgKzA4MDAgQ1NUIG09KzQ3NTI1MjguODgwNTE4ODQx",
"expires_in": 7200
}
}
获取access_token
,下文用{access_token}
替代
注意事项
- 开发者需要缓存
access_token
,用于后续接口的调用(注意:不能频繁调用get_access_token
接口,否则会受到频率拦截) 。当access_token
失效或过期时,需要重新获取。 - access_token的有效期通过返回的
expires_in
来传达, 正常情况下为7200秒(2小时),有效期内重复获取返回相同结果,过期后获取会返回新的access_token
。 - 某些情况下,服务可能会使
access_token
提前失效,所以为了保证第三方服务的稳定性,开发者应该实现access_token
失效时重新获取的逻辑
code码说明
错误码 | 描述 |
---|---|
200 | 请求成功 |
40001 | 授权编号或密钥不正确 |
40002 | 调用太频繁,已限制调用 |
40003 | 调用接口的IP地址不在白名单中 |
40004 | token不合法 |
40005 | token已失效,请重新获取 |
Postman示例如下:
1.2.3. Step3 调用接口
1.2.3.1. HTTP方式
请求接口时,在Header请求头中发送: Authorization:Bearer ${access_token}
Postman示例如下:
1.2.3.2. Websocket方式
请求接口时,客户端连接上服务器后,请求ping接口发送access_token校验
示例:{"action": "ping", "Authorization": "Bearer {access_token}"}
1.3. 接口使用示例
1.3.1. HTTP方式
如,我们需获取设备OBJ3271849805135
最新一条设备数据,参见接口 获取最新一条马赛克
Postman示例如下:
1.3.2. Websocket方式
如,我们需订阅 设备OBJ3271849805135
最新实时数据
{"action": "sub_agent_event","event": {"event": "recv_fv", "object_id":"OBJ3565414500036"}}