از API استفاده کنید

با در دست داشتن توکن دسترسی و فراخوانی اولیه لیست دستگاه‌ها، اکنون آماده استفاده از SDM API برای دسترسی و کنترل دستگاه خود هستید.

ساختارها و دستگاه‌ها را فهرست کنید

curl برای ایجاد یک فراخوانی ساده GET به نقطه پایانی structures استفاده کنید:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

یک فراخوانی موفق، فهرستی از ساختارها را برای حساب‌های کاربری مرتبط با شما برمی‌گرداند.Device Access پروژه:

{
  "structures": [
    {
      "name": "enterprises/project-id/structures/structure-id",
      "traits": {
        "sdm.structures.traits.Info": {
          "customName": "structure-name"
        }
      }
    }
  ]
}

اگر قبلاً این کار را نکرده‌اید، برای دریافت لیستی از دستگاه‌ها، یک فراخوانی GET به نقطه پایانی devices انجام دهید:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

یک تماس موفق، فهرستی از دستگاه‌های متصل به دستگاه شما را برمی‌گرداند. Device Accessپروژه. هر دستگاه لیست منحصر به فرد خود از ویژگی‌های موجود را دارد:

{
  "devices": [
    {
      "name": "enterprises/project-id/devices/device-id",
      "type": "sdm.devices.types.device-type",
      "traits": { ... },
      "parentRelations": [
        {
          "parent": "enterprises/project-id/structures/structure-id/rooms/room-id",
          "displayName": "device-room-name"
        }
      ]
    }
  ]
}

device-id را برای هر دستگاه کپی کنید، برای سایر فراخوانی‌های API به آن نیاز خواهید داشت.

دریافت اطلاعات یک دستگاه

برای دریافت اطلاعات یک دستگاه خاص، یک فراخوانی GET به نقطه پایانی device-id انجام دهید:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

پاسخ باید مشابه قبل باشد، اما فقط برای دستگاه خاص:

{
  "name": "enterprises/project-id/devices/device-id",
  "type": "sdm.devices.types.device-type",
  "traits": { ... },
  "parentRelations": [
    {
      "parent": "enterprises/project-id/structures/structure-id/rooms/room-id",
      "displayName": "device-room-name"
    }
  ]
}

اجرای یک دستور

پس از تأیید دسترسی خود با یک فراخوانی موفق GET، بسته به نوع دستگاهی که مجاز کرده‌اید، سعی کنید دستوری را اجرا کنید:

ترموستات

curl -X POST \
  'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id:executeCommand' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer access-token' \
  --data-raw '{
    "command" : "sdm.devices.commands.ThermostatMode.SetMode",
    "params" : {
      "mode" : "HEAT"
    }
  }'

دوربین

curl -X POST \
  'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices/device-id:executeCommand' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer access-token' \
  --data-raw '{
    "command" : "sdm.devices.commands.CameraLiveStream.GenerateRtspStream",
    "params" : {}
  }'

اگر تماس شما موفقیت‌آمیز باشد، نتایج زیر رخ می‌دهد:

ترموستات

شما یک پاسخ خالی دریافت می‌کنید و ترموستات فیزیکی حالت فعلی خود را به حالت مشخص شده در پارامترهای دستور تغییر می‌دهد.

{}

دوربین

شما یک URL پخش زنده و توکن‌های مرتبط دریافت می‌کنید.

{
  "results" : {
    "streamUrls" : {
      "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken"
    },
    "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
    "streamToken" : "g.0.streamingToken",
    "expiresAt" : "2018-01-04T18:30:00.000Z"
  }
}

عیب‌یابی

احراز هویت نشده

توکن‌های دسترسی برای SDM API فقط به مدت ۱ ساعت معتبر هستند. اگر پاسخی با عنوان «نامعتبر» دریافت کردید، احتمالاً توکن منقضی شده است. از توکن به‌روزرسانی خود برای دریافت توکن دسترسی جدید استفاده کنید .

خطاهای دیگر

برای مشاهده لیست کامل خطاها به مرجع کد خطا مراجعه کنید. Device Access کدهای خطا.