Developerيمكن لـs استخدام واجهة برمجة التطبيقات SDM لعرض أجهزة Google Nest و إدارتها نيابةً عن users. تتحقّق واجهة برمجة التطبيقات SDM من أنّ الشخص الذي يدير الأجهزة هو نفسه الذي يحاول الوصول إليها user ، ومن أنّ الشخص user قد وافق على قراءة سمات كل جهاز أو كتابتها developer ، ومن أنّ الشخص developer قد تم إدراجه في القائمة المسموح بها للوصول إلى كل سمة.
لاستخدام واجهة برمجة التطبيقات SDM لإدارة الأجهزة، يجب أن يحصل الشخص developer أولاً على إذن من الشخص user.
للاطّلاع على شرح مفصّل لعملية التفويض، يُرجى الانتقال إلى صفحة تفويض حساب في دليل البدء السريع. Device Access
للحصول على مساعدة في تحديد المشاكل وحلّها في ما يتعلّق بأخطاء التفويض، يُرجى الاطّلاع على أخطاء التفويض.
مسار OAuth
تستخدم واجهة برمجة التطبيقات SDM مسار Google OAuth الثلاثي لـ user التفويض:
- عندما يريد الشخص تفويض شخص آخر لإدارة أجهزة Nest، يرسل الشخص رمز التفويض إلى "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية" (PCM)، حيث يسجّل الشخص الدخول إلى حسابه على Google. a user a developer developer user user
- يختار الشخص الأذونات التي سيمنحها للشخص في "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية". user developer
- يقدّم الشخص user الموافقة من خلال OAuth، ما يمنح الشخص developer رمز تفويض.
- يستخدم الشخص رمز التفويض لاسترداد رمز دخول. developer
- يستخدم الشخص رمز الدخول مع طلبات البيانات من واجهة برمجة التطبيقات SDM لإدارة الأجهزة. developer
لمزيد من المعلومات عن Google OAuth وكيفية إعداده، يُرجى الاطّلاع على مقالة استخدام OAuth 2.0 للوصول إلى Google APIs.
إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية (PCM)
توفّر واجهة برمجة التطبيقات SDM أداة "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية". وهي طريقة عرض تسرد جميع المباني والأجهزة وخيارات الوصول التي يمكن للشخص منحها للشخص.user developerيختار الشخص ما يريد منح إذن الوصول إليه أثناء عملية التفويض ويحتفظ بالتحكّم في هذا الإذن. user
ترتبط الخيارات التي يتم اختيارها في "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية" بمجموعات السمات، وهي مجموعات من السمات التي سيتم منح الشخص إذن الوصول إليها. developer ترتبط بعض مجموعات السمات ببعضها، استنادًا إلى نوع التكامل الذي يقدّمه الشخص إلى الشخص، ويجب أن يمنح الشخص أذونات لمجموعات السمات المرتبطة هذه لتفعيل هذا التكامل.developer useruser وإلا، يمكن للمستخدم منح أذونات لمجموعات السمات الفردية غير المرتبطة حسب الرغبة.
تفعيل "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية"
لتفعيل طريقة عرض "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية" لشخص user، استبدِل نقطة نهاية OAuth 2.0 العادية في Google API بنقطة نهاية OAuth الجديدة هذه لطلب التفويض:
https://nestservices.google.com/partnerconnections/project-id/authاستخدِم هذه المَعلمات في عنوان URL:
| المَعلمة | الوصف |
|---|---|
redirect_uri |
عنوان URI الذي سيتم توجيه الشخص إليه بعد إكمال التفويض بنجاح 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 |
state |
اختياري. قيمة مبهمة يستخدمها developer العميل للحفاظ على الحالة بين الطلب والردّ |
مثال على عنوان URL لأداة "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية":
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بعد أن يمنح الشخص الإذن، يتم عرض رمز تفويض
كالمَعلمة code parameter في عنوان URI لإعادة التوجيه. user استخدِم هذا الرمز للحصول على رمز دخول.
إضافة "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية" إلى تطبيقك
في تطبيقك، أضِف طريقة عرض "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية" باستخدام عنوان URL هذا:
https://nestservices.google.com/partnerconnectionsعندما يكون الشخص مُسجِّل الدخول، تعرض هذه الصفحة جميع حسابات الشخص المرتبطة، بالإضافة إلى قائمة بجميع المباني والأجهزة مع مفاتيح تبديل لمنح الأذونات وإبطالها. user Device Access developerيمكن للشخص أيضًا قطع اتصال شريك على أساس كل شريك على حدة من هذه الصفحة. user
التطبيقات التي لم يتم التحقّق منها
تستخدم واجهة برمجة التطبيقات SDM نطاقًا مقيّدًا، ما يعني أنّ أي تطبيقات تستخدم هذا النطاق أثناء التفويض ستكون "لم يتم التحقّق منها" ما لم يتم إكمال عملية التحقّق من واجهة برمجة تطبيقات OAuth. عند استخدام Device Access لـ الاستخدام الشخصي، لا يلزم إجراء عملية التحقّق من واجهة برمجة تطبيقات OAuth.
قد تظهر لك شاشة "لم تتحقّق Google من هذا التطبيق" أثناء عملية التفويض، وتظهر هذه الشاشة إذا لم يتم ضبط النطاق sdm.service على شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth في Google Cloud. يمكن تجاوز هذه الشاشة من خلال النقر على خيار خيارات متقدّمة ، ثم النقر على الانتقال إلى اسم المشروع (غير آمن).
يُرجى الاطّلاع على شاشة "تطبيق لم يتم التحقّق منه screen " لمزيد من المعلومات.
رموز الدخول
يجب أن تستخدم جميع طلبات البيانات من واجهة برمجة التطبيقات SDM لإدارة المباني و الأجهزة المفوَّضة رمز الدخول الفريد الذي منحه الشخص إلى الشخص أثناء التفويض. developer user رموز الدخول قصيرة الأجل ويجب تجديدها بانتظام لضمان استمرار إمكانية الوصول.
إذا أبطَل a user الشخص لاحقًا developer إمكانية وصول الشخص إلى مبنى أو جهاز، تنتهي صلاحية رمز الدخول على الفور ولا يمكن تجديده، ولن يتمكّن developer الشخص بعد ذلك من طلب البيانات من واجهة برمجة التطبيقات SDM نيابةً عن ذلك user.
إبطال تفويض الحساب
هناك طرق متعددة لإلغاء تفويض حساب Google. الطريقة المفضّلة هي أن يستخدم المستخدم "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية" لتعديل أذونات الحساب. يُرجى الاطّلاع على تعديل أذونات الحساب لمزيد من المعلومات. يمكن أيضًا إبطال رمز الدخول بالطرق التالية:
يمكن للمستخدم إبطال الإذن على https://myaccount.google.com/permissions.
يمكن للمطوّر إرسال رمز الدخول إلى نقطة النهاية
https://oauth2.googleapis.com/revoke. لمزيد من المعلومات عن Google OAuth وإبطال الرموز، يُرجى الاطّلاع على مقالة إبطال رمز.
مكتبات WebView المضمّنة
تحظر سياسة المتصفّحات الآمنة الجديدة طلبات Google OAuth في مكتبات المتصفّحات المضمّنة التي يُشار إليها عادةً باسم مكتبات WebView المضمّنة. سيتم حظر جميع مكتبات WebView المضمّنة. تُعدّ مكتبات WebView المضمّنة إشكالية لأنّها تسمح لمطوّر غير نزيه باعتراض المراسلات بين Google والمستخدمين وتغييرها. لا تؤثّر مكتبات WebView المضمّنة في أمان الحساب فحسب، بل قد تؤثّر أيضًا في سهولة استخدام تطبيقك.
إذا تأثّرت بهذه السياسة، يُرجى الرجوع إلى مقالة الدعم تغييرات الأمان القادمة على نقطة نهاية تفويض OAuth 2.0 من Google في مكتبات WebView المضمّنة.