التفويض

يمكن لـDeveloperاستخدام واجهة برمجة تطبيقات SDM لعرض أجهزة Google Nest وإدارتها نيابةً عن user. تحدّد SDM API أنّ user تدير الأجهزة التي يتم الوصول إليها، وأنّ user وافقت على developer قراءة سمات كل جهاز أو كتابتها، وأنّ developer تمت إضافتها إلى القائمة البيضاء للوصول إلى كل سمة.

لاستخدام واجهة برمجة التطبيقات SDM API لإدارة الأجهزة، يجب أولاً الحصول على تفويض منdeveloper user.

للحصول على جولة تفصيلية حول عملية التفويض، يُرجى الاطّلاع على صفحة تفويض حساب من Device Access دليل البدء السريع.

للحصول على مساعدة بشأن تحديد مشاكل أخطاء التفويض وحلّها، يُرجى الاطِّلاع على أخطاء التفويض.

مسار OAuth

تستخدم واجهة برمجة التطبيقات SDM مسارًا لبروتوكول Google OAuth الثلاثي لتفويضuser :

  • عندما تريد a user السماح a developer بإدارة أجهزة Nest، ترسل developer user إلى PCM، حيث يتم user تسجيل الدخول إلى حساب Google.
  • يختار user الأذونات المراد منحها developer في PCM.
  • توفّر user الموافقة عبر OAuth، ما يمنحdeveloper رمز التفويض.
  • يستخدم developer رمز التفويض لاسترداد رمز الدخول.
  • يستخدم developer الرمز المميّز للوصول مع طلبات البيانات من واجهة برمجة التطبيقات لإدارة الأجهزة (SDM).

لمعرفة المزيد من المعلومات عن Google OAuth وكيفية الإعداد، يمكنك الاطّلاع على استخدام OAuth 2.0 للوصول إلى Google APIs.

إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية (PCM)

يتم توفير PCM من خلال SDM API. إنها طريقة عرض تسرد جميع البُنى والأجهزة وخيارات الوصول التي يمكن user منحها لـ developer. ويختار user ما تريد منحه إذن الوصول أثناء عملية التفويض ويحتفظ بالتحكم في الوصول.

يتم ربط الخيارات المحدّدة في PCM بمجموعات السمات، وهي مجموعات من السمات developer التي سيتم منحها إذن الوصول. يتم ربط بعض مجموعات السمات معًا، بناءً على نوع عملية الدمج developer التي يقدّمها user، ويجب أن يمنح user الأذونات أذونات مجموعات السمات المرتبطة لتفعيل هذا الدمج. بخلاف ذلك، يمكن للمستخدم منح أذونات لمجموعات سمات فردية غير مرتبطة حسب الحاجة.

تفعيل PCM

لتفعيل عرض PCM الخاص بـ user، استبدِل نقطة نهاية OAuth API 2.0 العادية بنقطة نهاية 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 API
state اختياري: قيمة مبهمة يستخدمها developer العميل للحفاظ على الحالة بين الطلب ومعاودة الاتصال.
linking_token الرمز المميّز للربط الذي تم الحصول عليه من الأمر GetToken

مثال على عنوان 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، يمكنك الاطّلاع على مرجع اتصالات الشركاء (PCM) خطأ الخطأ.

إضافة PCM إلى تطبيقك

في تطبيقك، أضِف عرض PCM باستخدام عنوان URL التالي:

https://nestservices.google.com/partnerconnections

عند user تسجيل الدخول، تعرض هذه الصفحة جميع Device Access developers المرتبطة، بالإضافة إلى قائمة بجميع البنى والأجهزة مع مفاتيح التبديل لمنح الأذونات وإلغاؤها. يمكن user أيضًا إلغاء اتصال أحد الشركاء على أساس كل شريك من هذه الصفحة.

التطبيقات التي لم يتم التحقّق منها

تستخدم واجهة برمجة التطبيقات SDM نطاقًا محدودًا، ما يعني أنّه سيتم إلغاء حالة إثبات ملكية أي تطبيقات تستخدم هذا النطاق أثناء التفويض ما لم يتم إكمال عملية إثبات ملكية واجهة برمجة التطبيقات عبر بروتوكول OAuth. عند استخدام Device Access الاستخدام الشخصي، لا يلزم إثبات الملكية عبر واجهة برمجة تطبيقات OAuth.

قد تظهر لك شاشة "لم تتحقّق Google من ملكية هذا التطبيق" أثناء عملية التفويض، التي تظهر إذا لم يتم ضبط نطاق sdm.service على شاشة موافقة OAuth في Google Cloud. يمكن تجاوز هذه الشاشة عن طريق النقر على الخيار إعدادات متقدّمة ثم النقر على الانتقال إلى اسم المشروع (غير آمن).

اطّلِع على شاشة التطبيق الذي لم يتم التحقّق منه للحصول على مزيد من المعلومات.

رموز الدخول

يجب أن تستخدم جميع الطلبات الموجّهة إلى واجهة برمجة تطبيقات SDM لإدارة البُنى والأجهزة المُعتمَدة رمز الدخول الفريد الذي تم منحه إلى developer أثناء التفويض.user تكون رموز الدخول قصيرة الأجل ويجب إعادة تحميلها بانتظام لضمان استمرار الوصول.

إذا a user أبطَل لاحقًا developer الوصول إلى بنية أو جهاز، تنتهي صلاحية رمز الدخول على الفور ولا يمكن إعادة تحميله، وdeveloper لن يعود بإمكانه الاتصال بواجهة برمجة تطبيقات SDM بالنيابة عن ذلك user.

إبطال تفويض الحساب

تتوفر عدة طرق لإلغاء مصادقة حساب Google. والطريقة المفضّلة هي استخدام المستخدم "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية" (PCM) لتعديل أذونات الحساب. اطّلِع على تعديل أذونات الحساب للحصول على المزيد من المعلومات. يمكن أيضًا إبطال رمز الدخول بالطرق التالية:

  1. يمكن للمستخدم إبطال الإجراء على https://myaccount.google.com/permissions.

  2. يمكن لمطوّر البرامج تمرير رمز الدخول إلى نقطة النهاية https://oauth2.googleapis.com/revoke. لمزيد من المعلومات حول Google OAuth وإبطال الرمز المميّز، يمكنك الاطّلاع على إبطال رمز مميّز.

مرات مشاهدة الويب المضمّنة

تحظر سياسة المتصفِّح الآمنة الجديدة طلبات Google OAuth في مكتبات المتصفّح المضمَّنة التي يُشار إليها عادةً باسم مشاهدات الويب المضمَّنة. سيتم حظر كل مشاهدات الويب المضمّنة. تُعدّ مكتبات WebView المضمّنة مشكلة لأنّها تسمح لمطوّر البرامج الشائع باعتراض الاتصالات وتغييرها بين Google ومستخدميها. إنّ مشاهدات الويب المضمّنة لا تؤثر في أمان الحساب فحسب، بل قد تؤثر في سهولة استخدام تطبيقك.

إذا كنت قد تأثّرت بهذه السياسة، يمكنك الرجوع إلى مقالة الدعم تغييرات الأمان القادمة على نقطة نهاية تفويض OAuth 2.0 من Google في مشاهدات الويب المضمَّنة.