Developers می تواند از SDM API برای مشاهده و مدیریت دستگاه های Google Nest از طرف آن استفاده کند userس 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وارد حساب گوگل خود می شود.
- این user مجوزهایی را برای اعطا برای developerدر PCM
- این user رضایت را از طریق OAuth، اعطا می کندdeveloper یک کد مجوز
- این developer از کد مجوز برای بازیابی رمز دسترسی استفاده می کند.
- این developer از رمز دسترسی با تماس با 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 دیگر نمیتواند از طرف آن با SDM API تماس بگیرد user.
لغو مجوز حساب
راه های مختلفی برای لغو مجوز یک حساب Google وجود دارد. روش ترجیحی این است که کاربر از Partner Connections Manager (PCM) برای تغییر مجوزهای حساب استفاده کند. برای اطلاعات بیشتر به اصلاح مجوزهای حساب مراجعه کنید. یک نشانه دسترسی نیز می تواند با روش های زیر باطل شود:
کاربر میتواند در https://myaccount.google.com/permissions لغو کند.
توسعهدهنده میتواند رمز دسترسی را به نقطه پایانی
https://oauth2.googleapis.com/revoke
ارسال کند. برای کسب اطلاعات بیشتر در مورد Google OAuth و ابطال نشانه، به لغو یک رمز مراجعه کنید.
نمایش های وب تعبیه شده
یک خطمشی جدید مرورگر ایمن، درخواستهای Google OAuth را در کتابخانههای مرورگر تعبیهشده که معمولاً بهعنوان نمایهای وب جاسازیشده شناخته میشوند، ممنوع میکند. همه نماهای وب تعبیه شده مسدود خواهند شد. کتابخانههای وبنمای تعبیهشده مشکلساز هستند، زیرا به یک توسعهدهنده بدجنس اجازه میدهند تا ارتباطات بین Google و کاربرانش را رهگیری و تغییر دهد. وبنماهای تعبیهشده نه تنها بر امنیت حساب تأثیر میگذارند، بلکه میتوانند بر قابلیت استفاده برنامه شما تأثیر بگذارند.
اگر تحت تأثیر این خطمشی قرار گرفتهاید، تغییرات امنیتی آتی را به نقطه پایانی مجوز Google OAuth 2.0 در مقاله پشتیبانی وبنماهای جاسازی شده ارجاع دهید.