Developers می تواند از SDM API برای مشاهده و مدیریت دستگاه های Google Nest از طرف users استفاده کند. SDM API تأیید می کند که user دستگاه های در حال دسترسی را مدیریت می کند، user با خواندن یا نوشتن ویژگی های هر دستگاه توسطdeveloper موافقت کرده است، وdeveloper برای دسترسی به هر یک در لیست سفید قرار گرفته است.
برای استفاده از SDM API برای مدیریت دستگاه، ابتدا باید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 از Access Token با تماس با SDM API برای مدیریت دستگاه استفاده می کند.
برای کسب اطلاعات بیشتر درباره Google OAuth و نحوه راهاندازی، به استفاده از OAuth 2.0 برای دسترسی به Google API مراجعه کنید.
مدیر ارتباطات شریک (PCM)
PCM توسط SDM API ارائه می شود. این نمایی است که تمام ساختارها، دستگاهها و گزینههای دسترسی را کهuser میتواند به developerبدهد، فهرست میکند. userانتخاب می کند که در طول فرآیند مجوز به چه چیزی دسترسی داشته باشد و کنترل آن دسترسی را حفظ می کند.
گزینههای انتخاب شده در نقشه PCM به گروههای صفت، که مجموعهای از صفات هستند، به developer دسترسی خواهند داشت. برخی از گروههای صفت بسته به نوع ادغامی کهdeveloper به userارائه میکند، با هم مرتبط میشوند، و userباید مجوزهایی را برای آن گروههای صفت مرتبط اعطا کند تا آن ادغام را فعال کنند. در غیر این صورت، کاربر میتواند به صورت دلخواه به گروههای صفت فردی و بدون پیوند مجوز بدهد.
PCM را فعال کنید
برای فعال کردن نمای PCM برای یک user، نقطه پایانی استاندارد Google API OAuth 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 برای حفظ حالت بین درخواست و پاسخ به تماس استفاده می شود. |
نشانی اینترنتی 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 را با استفاده از این URL اضافه کنید:
https://nestservices.google.com/partnerconnections
وقتی user وارد سیستم می شود، این صفحه همهDevice Access developers پیوند داده شده آنها و همچنین فهرستی از تمام ساختارها و دستگاه ها را با کلیدهایی برای اعطای و لغو مجوزها نشان می دهد. user همچنین میتواند اتصال شریک را بر اساس هر شریک از این صفحه قطع کند.
برنامه های تایید نشده
SDM API از یک محدوده محدود استفاده میکند، به این معنی که هر برنامهای که در طول مجوز از این محدوده استفاده میکند، «تأیید نمیشود» مگر اینکه تأیید OAuth API تکمیل شود. هنگام استفاده از Device Access برای استفاده شخصی، تأیید OAuth API مورد نیاز نیست.
ممکن است در طول فرآیند مجوز، صفحه «Google این برنامه را تأیید نکرده است» ببینید، که اگر محدوده sdm.service
در صفحه رضایت OAuth شما در Google Cloud پیکربندی نشده باشد ظاهر می شود. این صفحه را می توان با کلیک کردن روی گزینه Advanced و سپس کلیک کردن روی Go to Project Name (ناامن) دور زد.
برای اطلاعات بیشتر به صفحه برنامه تأیید نشده مراجعه کنید.
دسترسی به توکن ها
همه تماسها با SDM API برای مدیریت ساختارها و دستگاههای مجاز باید از رمز دسترسی منحصربهفردی که توسط developer بهuser اعطا شده در طول مجوز استفاده کنند. توکن های دسترسی کوتاه مدت هستند و برای اطمینان از دسترسی مستمر باید مرتباً به روز شوند.
اگر a user بعداً دسترسی developer را به یک ساختار یا دستگاه لغو کند، نشانه دسترسی بلافاصله منقضی میشود و نمیتوان آن را تازه کرد، وdeveloper دیگر نمیتواند از طرف آن userبا SDM API تماس بگیرد.
لغو مجوز حساب
راه های مختلفی برای لغو مجوز یک حساب Google وجود دارد. روش ترجیحی این است که کاربر از Partner Connections Manager (PCM) برای تغییر مجوزهای حساب استفاده کند. برای اطلاعات بیشتر به اصلاح مجوزهای حساب مراجعه کنید. یک نشانه دسترسی نیز می تواند با روش های زیر باطل شود:
کاربر میتواند در https://myaccount.google.com/permissions لغو کند.
توسعهدهنده میتواند رمز دسترسی را به نقطه پایانی
https://oauth2.googleapis.com/revoke
ارسال کند. برای کسب اطلاعات بیشتر در مورد Google OAuth و ابطال نشانه، به لغو یک رمز مراجعه کنید.
نمایش های وب تعبیه شده
یک خطمشی جدید مرورگر ایمن، درخواستهای Google OAuth را در کتابخانههای مرورگر تعبیهشده که معمولاً بهعنوان نمایهای وب جاسازیشده شناخته میشوند، ممنوع میکند. همه نماهای وب تعبیه شده مسدود خواهند شد. کتابخانههای وبنمای تعبیهشده مشکلساز هستند، زیرا به یک توسعهدهنده بدجنس اجازه میدهند تا ارتباطات بین Google و کاربرانش را رهگیری و تغییر دهد. وبنماهای تعبیهشده نه تنها بر امنیت حساب تأثیر میگذارند، بلکه میتوانند بر قابلیت استفاده برنامه شما تأثیر بگذارند.
اگر تحت تأثیر این خطمشی قرار گرفتهاید، تغییرات امنیتی آتی را به نقطه پایانی مجوز Google OAuth 2.0 در مقاله پشتیبانی وبنماهای جاسازی شده ارجاع دهید.