文檔中心
DOCUMENT CENTER
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"
    }
}