بعد الحصول على رمز الدخول وإجراء طلب قائمة الأجهزة الأولية، ستكون جاهزًا لاستخدام واجهة برمجة التطبيقات SDM للوصول إلى جهازك والتحكّم فيه.
عرض قائمة بالمباني والأجهزة
استخدِم 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 لكل جهاز، وستحتاج إليه لإجراء طلبات أخرى من واجهة برمجة التطبيقات.
الحصول على معلومات عن جهاز
للحصول على معلومات عن جهاز معيّن، أرسِل طلب 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 ناجح، حاوِل تنفيذ أمر استنادًا إلى نوع الجهاز الذي منحت الإذن له:
THERMOSTAT
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"
}
}'
CAMERA
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" : {}
}'
في حال نجاح طلبك، ستحدث النتائج التالية:
THERMOSTAT
تتلقّى ردًا فارغًا ويغيّر الترموستات الفعلي وضعه الحالي إلى الوضع المحدّد في مَعلمات الأمر.
{}
CAMERA
تتلقّى عنوان 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 صالحة لمدة ساعة واحدة فقط. إذا تلقّيت الرد UNAUTHENTICATED، من المحتمل أن تكون صلاحية الرمز المميّز قد انتهت. استخدِم رمز التحديث للحصول على رمز دخول جديد.
أخطاء أخرى
اطّلِع على مرجع رموز الخطأ للاطّلاع على القائمة الكاملة لرموز أخطاء Device Access .