HTTP/HTTPS 接入
接入介紹
針對實時性要求不高的智能硬件, 格物云IoT平臺定義了一套 HTTP/HTTPS 接入的協議, 該協議實現了實時數據的收集,屬性的反饋,心跳包,及下行數據。
API 授權憑證
API 授權憑證為設備授權后得到的 access_token
;
eg.
curl -H 'Authorization: Bearer access_token' you-api-url
接入方案
API 授權
通過 POST /api/grant
來獲取設備授權。
curl https://iot.giveyun.com/api/grant/ \
-d key=product_key \
-d token=device_token
- product_key 為產品的 key
- device_token 為每個設備唯一的 token
授權成功返回
{
"access_token": "d5687796-2edd-4d44-a74e-88313c35f253",
"refresh_token": "ff6f4a7f-d99a-42fe-a19a-f3e85a7089c8",
"expires_in": 604800,
"created_at": 1594871510
}
刷新 API 授權信息
當授權信息快過期的時候通過 POST /api/refresh_token/
來更新授權信息
curl https://iot.giveyun.com/api/refresh_token/ \
-d refresh_token=refresh_token
刷新成功返回
{
"access_token": "4f4a80f8-3fb9-49f7-aba1-3213ffbc6a44",
"refresh_token": "5ed4e5dc-41c2-40f1-ab5d-1ad2e5ff3a27",
"expires_in": 604800,
"created_at": 1594871775
}
發布實時數據
通過 POST /api/telemetry/
來發布實時數據,數據為 JSON 格式。
curl https://iot.giveyun.com/api/telemetry/ \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access_token' \
-d '{"temperature": 20.7}'
發布實時屬性
通過 POST /api/attributes/
來發布實時屬性,數據為 JSON 格式。
curl https://iot.giveyun.com/api/attributes/ \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access_token' \
-d '{"switch_1_state": 1}'
發布心跳包
通過 POST /api/ping/
來發布心跳包。
curl https://iot.giveyun.com/api/ping/ \
-H 'Authorization: Bearer access_token' \
-XPOST
下行數據
在發送心跳包,實時屬性,實時數據的時候反饋結果為指令如下:
{
"id": 1,
"data": {
"method": "open"
}
}
當設備收到指令,并執行成功后,
通過 POST /api/downlink/
來反饋執行完成
curl https://iot.giveyun.com/api/downlink/ \
-H 'Authorization: Bearer access_token' \
-XPOST
請求結果說明
失敗結果
{
"err": "error message"
}
成功結果
{
"result": "OK"
}
指令結果
{
"id": 1,
"data": {
"method": "open"
}
}