من خلال إنشاء مشاريع Google Cloud وDevice Access، يمكنك تفويض حساب Google باستخدام جهاز Google Nest متوافق من أجل واجهة برمجة تطبيقات SDM.
ربط حسابك
لعرض البِنى والأجهزة، يجب ربط حساب Google Device Access باستخدام PCM. تسمح خدمة "إدارة العملاء" user بمنح الإذن لخدمات السماح developerبالوصول إلى بيانات الهياكل والأجهزة.
في هذا الدليل، أنت تؤدي دور user و developerعلى حد سواء.
افتح الرابط التالي في متصفّح ويب، مع استبدال:
- project-id باستخدام Device Access Project المعرّف
- oauth2-client-id باستخدام معرّف عميل OAuth2 من بيانات اعتماد كيان Google Cloud
https://nestservices.google.com/partnerconnections/project-id/auth?
redirect_uri=https://www.google.com& access_type=offline& prompt=consent& client_id=oauth2-client-id& response_type=code& scope=https://www.googleapis.com/auth/sdm.service - إذا سجّلت الدخول إلى Google باستخدام حسابات متعدّدة مؤخرًا، قد تظهر أمامك شاشة اختيار حساب أولية تتضمّن قائمة بحساباتك على Google. إذا كان الأمر كذلك، اختَر حساب Google المرتبط بالأجهزة التي تريد تفويضها Device Access.
- إنّ شاشة أذونات Google Nest هي نفسها شاشة PCM. يمكنك هنا منح أذونات الهيكل والجهاز. تفعيل الأذونات الممنوحة لمنزلك (الخطوة 1) وأي أجهزة في ذلك المنزل متوافقة مع واجهة برمجة تطبيقات SDM (الخطوة 2)، ثم انقر على التالي.
- في شاشة اختيار حساب للمتابعة إلى اسم المشروع، حيث يمثّل اسم المشروع اسم مشروعك على Google Cloud، اختَر حساب Google الذي تريد تفويضه باستخدام واجهة برمجة التطبيقات SDM API. استخدام حساب Google نفسه كالسابق.
- بعد اختيار حساب، قد تظهر لك شاشة تحذير تشير إلى أنّه لم تُثبِت Google صحة هذا التطبيق. في هذه الحالة، للمتابعة، انقر على الخيار متقدّم ثمّ انقر على الانتقال إلى اسم المشروع (غير آمن). عرض لم تتحقّق Google من ملكية هذا التطبيق للمزيد من المعلومات المعلومات.
- في شاشة منح إذن اسم المشروع، انقر على السماح لمنح إذن المشروع للوصول إلى حسابك على Google.
- على شاشة تأكيد خياراتك، تأكّد من الأذونات التي تريدها. لمنحها بعلامة، وانقر على السماح للتأكيد.
من المفترض أن تتم إعادة توجيهك إلى https://www.google.com. يتم عرض رمز التفويض كمَعلمة
code
في عنوان URL، والذي ينبغي أن يكون بهذا التنسيق:https://www.google.com?code=authorization-code&
scope=https://www.googleapis.com/auth/sdm.service - انسخ رمز التفويض.
الحصول على رمز الدخول
استخدم رمز التفويض لاسترداد رمز الدخول، الذي يمكنك استخدامها لاستدعاء واجهة برمجة تطبيقات SDM.
افتح نافذة طرفية وابدأ طلب
curl
التالي، مع استبدال:- oauth2-client-id وoauth2-client-secret باستخدام معرّف عميل OAuth2 وسرّ العميل من بيانات اعتماد Google Cloud
- authorization-code باستخدام الرمز الذي تلقّيته في الخطوة السابقة
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?
client_id=oauth2-client-id& client_secret=oauth2-client-secret& code=authorization-code& grant_type=authorization_code& redirect_uri=https://www.google.com' يعرض Google OAuth رمزين مميزين، ورمز دخول الرمز المميز لإعادة التحميل.
{
انسخ هاتَين القيمتَين. يُستخدم رمز الدخول لاستدعاء تُستخدم واجهة برمجة تطبيقات SDM والرمز المميز للتحديث للحصول على واجهة .
إجراء مكالمة بقائمة الأجهزة
لا يكتمل التفويض حتى تُجري
أول
devices.list
باستخدام رمز الدخول الجديد. تُنهي هذه
المكالمة الأولية عملية منح الإذن وتفعِّل الأحداث إذا
سبق لك إعداد اشتراك في Pub/Sub.
استخدام curl
لإجراء هذا الطلب لنقطة النهاية 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" } ] } ] }
كيفية استخدام الرمز المميز للتحديث
تكون رموز الوصول إلى واجهة برمجة التطبيقات لمجموعة أدوات SDM válida
لمدة ساعة واحدة فقط، كما هو موضّح في المَعلمة expires_in
التي تعرضها Google OAuth. إذا
انتهت صلاحية رمز الوصول، استخدِم الرمز المميّز للتحديث للحصول على رمز جديد.
يكون الأمر مشابهًا لرمز الدخول الأول، باستثناء أنك تستخدم رمز دخول
grant_type
افتح نافذة طرفية وشغِّل اتّباع الأمر
curl
، مع استبدال:- oauth2-client-id وoauth2-client-secret باستخدام معرّف عميل OAuth2 وسرّ العميل من بيانات اعتماد Google Cloud
- refresh-token باستخدام الرمز الذي تلقّيته عند الحصول على رمز الوصول في البداية.
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?
client_id=oauth2-client-id& client_secret=oauth2-client-secret& refresh_token=refresh-token& grant_type=refresh_token' يعرض Google OAuth رمز دخول جديدًا.
{
تحديد المشاكل وحلّها
لمزيد من المعلومات عن Google OAuth، يُرجى الاطّلاع على مقالة استخدام بروتوكول OAuth 2.0 للوصول إلى Google APIs.
انتهاء صلاحية الرمز المميّز لإعادة التحميل باستمرار
يمكن أن يتوقف عمل رموز إعادة التنشيط بعد 7 أيام إذا لم تتم الموافقة على معرّف العميل. انتهاء صلاحية الرمز المميّز خلال 7 أيام غير مرتبط بالسلعة التجارية أو الموافقات على وضع الحماية. ضرورة حصول خدمة أو حساب مستخدم على بروتوكول OAuth تمت الموافقة على معرّف العميل 2.0 ويتم وضعه في مرحلة الإنتاج للحصول على فترة أطول للرموز المميّزة. الاطّلاع على انتهاء صلاحية الرمز المميّز لإعادة التحميل لمزيد من المعلومات المعلومات.
تم رفض الوصول
إذا أعددت شاشة موافقة OAuth في Google Cloud وكان نوع المستخدم هو خارجي، ستظهر لك رسالة الخطأ "تم رفض الإذن بالوصول" إذا حاولت ربط الحساب بحساب Google غير مدرَج كمستخدم اختباري لتطبيقك. احرص على إضافة حساب Google إلى قسم المستخدِمون الاختبِرون في شاشة موافقة OAuth.
خطأ في "إدارة إمكانية وصول الشركاء إلى الأجهزة الذكية"
للحصول على مساعدة بشأن أي أخطاء قد تحدث عند الوصول إلى تضمين نبضي مشفر (PCM)، في هذه الحالة مدير اتصالات الشركاء (PCM) مرجع الخطأ
لم تُثبت شركة Google ملكية هذا التطبيق.
تستخدم واجهة برمجة التطبيقات SDM نطاقًا مقيّدًا، مما يعني أن أي سيتم "عدم التحقق" من التطبيقات التي تستخدم هذا النطاق خلال عملية منح الإذن إلا اكتمل التحقّق من واجهة برمجة تطبيقات OAuth. عند استخدام Device Access للاستخدام الشخصي، لا يلزم التحقق من واجهة برمجة تطبيقات OAuth.
قد تظهر لك شاشة "لم تُثبِت Google صحة هذا التطبيق" أثناء عملية التفويض، والتي تظهر إذا لم يتم ضبط نطاق sdm.service
في شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth في Google Cloud. يمكن أن تكون هذه الشاشة
تم تجاوزها بالنقر على الخيار Advanced (إعدادات متقدمة) ثم النقر على Go to Project (الانتقال إلى مشروع)
الاسم (غير آمن):
يمكنك الاطّلاع على شاشة التطبيق الذي لم يتم التحقّق منه لمزيد من المعلومات.
عميل غير صالح
عند محاولة الحصول على رمز دخول أو رمز إعادة تحميل، ستظهر لك رسالة الخطأ "غير صالح
العميل" إذا قدمت سر عميل OAuth 2.0 غير صحيح. تأكد من أن
القيمة client_secret
التي تستخدمها في طلبات الرمز المميّز للوصول وإعادة التحميل هي القيمة
لمعرِّف عميل OAuth 2.0 المُستخدَم، كما هو موضَّح في
Google Cloud
بيانات الاعتماد
.
طلب غير صالح، لا يتضمّن النطاق المطلوب
بعد منح الأذونات في PCM، قد تواجه خطأ "طلب غير صالح" من النوع "عدم توفّر المَعلمة المطلوبة: النطاق". تأكَّد من أنّ قيمة
scope
التي تستخدمها في طلبات التفويض هي نفسها القيمة التي ضبطتها لبرنامج OAuth 2.0 العميل،
كما هو موضّح في صفحة سماحات Google Cloud
.
عدم تطابق معرّف الموارد المنتظم (URI) لإعادة التوجيه
عند إجراء عملية التفويض، قد تواجه خطأ "عدم تطابق عنوان URL لإعادة التوجيه".
يُرجى التأكّد من أنّ قيمة redirect_uri
التي تستخدمها في طلبات التفويض هي:
نفسه الذي أعددته لعميل OAuth 2.0، كما هو موضح في
Google Cloud
بيانات الاعتماد
.
تعديل أذونات الحساب
لتعديل الأذونات الممنوحة Device Access لمشروع أو إلغاء ربطه تمامًا، انتقِل إلى "مركز عملائي":
https://nestservices.google.com/partnerconnections
تعرض هذه الصفحة جميع خدمات المطوّرين التابعة لجهات خارجية (Device Access المشاريع) المرتبطة بحسابك. اختيار Device Access المشروع المطلوب التغيير. استخدِم الشاشة التالية لتعديل الأذونات على النحو المطلوب.
لإبطال أذونات محدَّدة فقط لخدمة مُصرَّح بها، يمكنك تفعيل/إيقاف الأذونات التي تريد إبطالها وانقر على سهم الرجوع للحفظ.
لإلغاء ربط خدمة معتمَدة تمامًا، انقر على إلغاء ربط حسابك على Google. الحساب لإبطال جميع الأذونات ورموز الدخول التي تم منحها للمشروع المحددة للحساب.
إذا لم يعرض PCM الخدمة المطلوبة، قد تحتاج إلى عليك إجراء مكالمة قائمة الأجهزة أولاً.
مرجع سريع
استخدِم هذا المرجع لتنفيذ الخطوات اللازمة لمنح الإذن user وربط حساب Google .
لاستخدام هذا المرجع السريع، عدِّل كل متغيّر عنصر نائب في عيّنات التعليمات البرمجية. مع القيم الخاصة بعملية الدمج المحددة، وانسخها والصقها حسب الحاجة:
منفذ PCM واحد
فتح الرابط التالي على موقع إلكتروني المتصفّح، مع استبدال:
- project-id باستخدام Device Access Project المعرّف
- oauth2-client-id باستخدام معرّف عميل OAuth2 من بيانات اعتماد كيان Google Cloud
https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=https://www.google.com& access_type=offline& prompt=consent& client_id=oauth2-client-id& response_type=code& scope=https://www.googleapis.com/auth/sdm.service
رمز المصادقة 2
من المفترض أن تتم إعادة توجيهك إلى
https://www.google.com. يتم عرض رمز التفويض كمَعلمة code
في عنوان URL،
والذي يجب أن يكون بالتنسيق التالي:
https://www.google.com?code=authorization-code&scope=https://www.googleapis.com/auth/sdm.service
3 رمز دخول
استخدم رمز التفويض لاسترداد رمز الدخول، الذي يمكنك استخدامها لاستدعاء واجهة برمجة تطبيقات SDM.
افتح نافذة طرفية وابدأ
طلب curl
التالي، مع استبدال:
- oauth2-client-id وoauth2-client-secret بمعرّف عميل OAuth2 وسر العميل من Google Cloud المؤهلات
- authorization-code باستخدام الرمز الذي تلقّيته في الخطوة السابقة
يعرض Google OAuth رمزَين مميزَين، هما رمز الدخول ورمز إعادة التحميل.
الطلب
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=https://www.google.com'
الرد
{"access_token": "access-token",
"expires_in": 3599,
"refresh_token": "refresh-token",
"scope": "https://www.googleapis.com/auth/sdm.service",
"token_type": "Bearer" }
4 طلب بيانات من واجهة برمجة التطبيقات
لا يكتمل التفويض حتى تُجري
أول
devices.list
باستخدام رمز الدخول الجديد. تُنهي هذه
المكالمة الأولية عملية منح الإذن وتفعِّل الأحداث إذا
سبق لك إعداد اشتراك في Pub/Sub.
يجب استخدام إحدى طلبات البيانات من واجهة برمجة التطبيقات المُدرجة للنطاق المحدَّد لإكمال التفويض
sdm.service
الأجهزة
اطّلِع على مرجع واجهة برمجة التطبيقات
devices.list
للحصول على مزيد من المعلومات.
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
5 رمز مميّز لإعادة التحميل
تكون رموز الدخول لواجهة برمجة تطبيقات SDM فقط
صالحًا لمدة ساعة واحدة، كما هو موضح في معلَمة expires_in
التي يعرضها Google OAuth. إذا
انتهت صلاحية رمز الوصول، استخدِم الرمز المميّز للتحديث للحصول على رمز جديد.
افتح وحدة طرفية ونفِّذ
الأمر curl
التالي، مع استبدال:
- oauth2-client-id وoauth2-client-secret بمعرّف عميل OAuth2 وسر العميل من Google Cloud المؤهلات
- refresh-token باستخدام الرمز الذي تلقّيته عند الحصول على رمز الوصول في البداية.
يعرض Google OAuth رمز دخول جديدًا.
الطلب
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token'
الرد
{"access_token": "new-access-token",
"expires_in": 3599,
"scope": "https://www.googleapis.com/auth/sdm.service",
"token_type": "Bearer" }