بإمكانDeveloperاستخدام واجهة برمجة تطبيقات SDM لعرض أجهزة Google Nest وإدارتها نيابةً عن user. تتحقّق واجهة برمجة التطبيقات SDM API من أنّ user تدير الأجهزة التي يتم الوصول إليها، وأنّ user قد وافقت على developer قراءة سمات كل جهاز أو كتابتها، وأنّ developer قد تم إدراجها في القائمة البيضاء للوصول إلى كل سمة.
لاستخدام واجهة برمجة التطبيقات SDM لإدارة الأجهزة، يجب أن يتم تفويضdeveloper أولاً من قِبل user.
للحصول على جولة تفصيلية حول عملية التفويض، يُرجى الاطّلاع على صفحة تفويض حساب في Device Access دليل البدء السريع.
للحصول على مساعدة في تحديد أخطاء التفويض وحلّها، اطّلِع على أخطاء التفويض.
مسار OAuth
تستخدِم واجهة برمجة التطبيقات SDM API مسار Google OAuth الثلاثي من أجل user التفويض:
- عندما يريد a user تفويض a developer بإدارة أجهزة Nest، يرسل developer user إلى "مركز التحكّم في الأجهزة المنزلية" (PCM)، حيث سجّل user الدخول إلى حسابه على Google.
- user يختار الأذونات التي سيتم منحها developer في PCM.
- يقدّم user الموافقة من خلال OAuth، ما يمنح العميل developer رمز تفويض.
- يستخدم developer رمز التفويض لاسترداد رمز الوصول.
- يستخدم developer رمز الوصول مع طلبات إلى واجهة برمجة التطبيقات SDM API لإدارة الأجهزة.
لمزيد من المعلومات عن Google OAuth وكيفية الإعداد، يُرجى الاطّلاع على مقالة استخدام OAuth 2.0 للوصول إلى Google APIs.
مدير علاقات الشركاء (PCM)
توفّر واجهة برمجة التطبيقات لمجموعة أدوات Smart Device Management ميزة "إدارة الطلبات". وهي طريقة عرض تسرد جميع البنى والأجهزة وخيارات الوصول التي يمكن أن يمنحهاuser لـ developer. يختار user المستخدم ما يمكنه منحه إذن الوصول إليه أثناء عملية التفويض ويحتفظ بالتحكم في هذا الوصول.
يتم ربط الخيارات التي يتم اختيارها في "شركاء المحتوى في خرائط Google" بمجموعات السمات، وهي مجموعات من السمات التي سيتم منح developer إذن الوصول إليها. يتم ربط بعض مجموعات السمات معًا، وذلك حسب نوع الدمج الذي يوفّره developer لل user، ويجب أن يمنح user أذونات لمجموعات السمات المرتبطة هذه لتفعيل عملية الدمج هذه. بخلاف ذلك، يمكن للمستخدم منح الأذونات لمجموعات السمات الفردية غير المرتبطة حسب الرغبة.
تفعيل PCM
لتفعيل عرض "إدارة الموافقة" لتطبيق user، استبدِل نقطة نهاية OAuth 2.0 العادية لواجهة برمجة تطبيقات Google بنقطة نهاية OAuth الجديدة هذه لملف طلب التفويض:
https://nestservices.google.com/partnerconnections/project-id/auth
استخدِم هذه المَعلمات في عنوان URL:
المَعلمة | الوصف |
---|---|
redirect_uri |
عنوان URL لتوجيه user بعد اكتمال عملية التفويض بنجاح |
client_id |
معرِّف عميل OAuth 2.0 من مشروعك على Google Cloud تأكَّد من أنّ هذا هو الرقم نفسه المرتبط بمعرّفك على Project . يُرجى العلم أنّ معرّف عميل OAuth يجب أن يكون صالحًا وفريدًا لحساب project، ولا يمكن مشاركته مع projectأخرى. |
access_type |
القيمة المطلوب استخدامها: offline |
prompt |
القيمة المطلوب استخدامها: consent |
response_type |
القيمة المُستخدَمة: code من المتوقّع أن يظهر رمز التفويض في الردّ. |
scope |
القيمة المُستخدَمة: https://www.googleapis.com/auth/sdm.service
نطاق واجهة برمجة التطبيقات SDM API |
state |
اختياري يشير ذلك المصطلح إلى قيمة مبهمة يستخدمها developer العميل للحفاظ على حالتها بين الطلب ومعاودة الاتصال. |
مثال على عنوان URL لملف PCM:
https://nestservices.google.com/partnerconnections/
2f6989ca-c756-4625-8cdc-d5b1edfb2dcd/auth?
redirect_uri=https://www.example.com/api/link/M258KP8OWYZDVQ&
client_id=418235700063-sdkiav89orn5r1nvrcr5t210qqjimq8l.apps.googleusercontent.com&
access_type=offline&
prompt=consent&
response_type=code&
scope=https://www.googleapis.com/auth/sdm.service
بعد أن يمنح user الإذن، يتم عرض رمز التفويض
كمَعلمة code
في معرّف الموارد المنتظم (URI) لإعادة التوجيه. استخدِم هذا الرمز للحصول على رمز
وصول.
إضافة ميزة "الدفع مقابل الاشتراك" إلى تطبيقك
في تطبيقك، أضِف عرض PCM باستخدام عنوان URL التالي:
https://nestservices.google.com/partnerconnections
عندما يكون user مسجّلاً الدخول، تعرض هذه الصفحة جميع Device Access developerالمرتبطة به، بالإضافة إلى قائمة بجميع الهياكل والأجهزة التي تتضمّن مفاتيح تبديل لمنح الأذونات وإبطالها. يمكن user للمطوّر أيضًا إلغاء ربط حساب شريك على أساس كل شريك من هذه الصفحة.
التطبيقات التي لم يتم التحقّق منها
تستخدم واجهة برمجة التطبيقات SDM API نطاقًا محظورًا، ما يعني أنّ أي تطبيقات تستخدم هذا النطاق أثناء التفويض ستكون "غير مؤكَّدة" ما لم يتم إكمال التحقّق من واجهة برمجة التطبيقات OAuth API. عند استخدام Device Access للاستخدام الشخصي، لا يلزم التحقق من واجهة برمجة التطبيقات OAuth.
قد تظهر لك شاشة "لم تتحقّق Google من صحة هذا التطبيق" أثناء عملية التفويض، والتي تظهر في حال عدم ضبط نطاق sdm.service
على شاشة موافقة OAuth في Google Cloud. يمكن تجاوز هذه الشاشة
من خلال النقر على الخيار متقدم ثم النقر على الانتقال إلى اسم
المشروع (غير آمن).
يمكنك الاطّلاع على شاشة التطبيق الذي لم يتم التحقّق منه لمزيد من المعلومات.
رموز الدخول
يجب أن تستخدم جميع طلبات البيانات إلى واجهة برمجة التطبيقات لمجموعة أدوات Smart Device Management لإدارة الهياكل المفوَّضة والأجهزة رمز الوصول الفريد الذي منحه developer user أثناء التفويض. رموز الوصول المميّزة صالحة لفترة قصيرة ويجب إعادة تحميلها بانتظام لضمان استمرار إمكانية الوصول.
في حال إبطال a user إذن الوصول إلى بنية أو جهاز لاحقًا developer ، تنتهي صلاحية رمز الدخول على الفور ولا يمكن تحديثه ولا يمكن developer الاتصال بواجهة برمجة تطبيقات SDM بالنيابة عن ذلك user.
إبطال تفويض الحساب
هناك عدة طرق لإلغاء تفويض حساب Google. والطريقة المفضّلة هي أن يستخدم المستخدم "مدير عمليات ربط الشركاء" (PCM) لتعديل أذونات الحساب. يمكنك الاطّلاع على تعديل أذونات الحساب للحصول على مزيد من المعلومات. يمكن أيضًا إبطال رمز الدخول باستخدام الطرق التالية:
يمكن للمستخدم إلغاء الأذونات من خلال الانتقال إلى الرابط https://myaccount.google.com/permissions.
يمكن للمطوِّر تمرير رمز الدخول إلى نقطة النهاية
https://oauth2.googleapis.com/revoke
. لمزيد من المعلومات حول Google OAuth وإبطال الرمز المميز، يمكنك الاطّلاع على إبطال رمز مميز.
مشاهدات الويب المضمّنة
تحظر سياسة المتصفّحات الآمنة الجديدة طلبات Google OAuth في مكتبات المتصفّح المضمّنة التي يُشار إليها عادةً باسم WebViews المضمّنة. سيتم حظر جميع عروض الويب المضمّنة. تُمثّل مكتبات WebView المضمّنة مشكلة لأنّها تسمح للمطوّر الشرير باعتراض الاتصالات بين Google ومستخدميها وتغييرها. لا تؤثر مكوّنات WebView المضمّنة في أمان الحساب فحسب، بل يمكن أن تؤثر أيضًا في سهولة استخدام تطبيقك.
إذا كنت متأثرًا بهذه السياسة، يمكنك الرجوع إلى مقالة الدعم التي تتناول التغييرات الأمنية القادمة على نقطة نهاية التفويض في بروتوكول OAuth 2.0 من Google في مكتبات WebView المضمّنة.