مجوز

Developerمی‌توانند از API SDM برای مشاهده و مدیریت دستگاه‌های Google Nest به نمایندگی از ... استفاده کنند. userرابط برنامه‌نویسی کاربردی SDM تأیید می‌کند که user دستگاه‌های مورد دسترسی را مدیریت می‌کند، که user رضایت داده استdeveloper خواندن یا نوشتن ویژگی‌های هر دستگاه، و اینکهdeveloper برای دسترسی به هر ویژگی در لیست سفید قرار گرفته است.

برای استفاده از API SDM برای مدیریت دستگاه،developer ابتدا باید توسط آن مجوز داده شود user.

برای آشنایی با فرآیند مجوزدهی، به صفحه «مجاز کردن حساب کاربری » مراجعه کنید. Device Access راهنمای شروع سریع.

برای کمک به عیب‌یابی خطاهای مجوز، به خطاهای مجوز مراجعه کنید.

جریان OAuth

رابط برنامه‌نویسی کاربردی SDM از یک جریان سه‌مرحله‌ای Google OAuth برای موارد زیر استفاده می‌کند:user مجوز:

  • چه زمانی a user می‌خواهد مجوز بدهد a developer برای مدیریت دستگاه‌های Nest، developer ارسال می‌کندuser به PCM، جایی که userوارد حساب گوگل خود می‌شود.
  • user مجوزهایی را برای اعطای انتخاب می‌کند developerدر پی سی ام.
  • user از طریق OAuth رضایت می‌دهد و اعطا می‌کندdeveloper یک کد مجوز.
  • developer از کد مجوز برای بازیابی توکن دسترسی استفاده می‌کند.
  • developer از Access Token با فراخوانی‌های SDM API برای مدیریت دستگاه استفاده می‌کند.

برای کسب اطلاعات بیشتر در مورد Google OAuth و نحوه راه‌اندازی آن، به بخش «استفاده از OAuth 2.0 برای دسترسی به APIهای گوگل» مراجعه کنید.

مدیر ارتباطات شرکا (PCM)

PCM توسط رابط برنامه‌نویسی کاربردی SDM ارائه می‌شود. این نمایی است که تمام ساختارها، دستگاه‌ها و گزینه‌های دسترسی را فهرست می‌کند.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 از پروژه گوگل کلود شما. مطمئن شوید که این همان شناسه مرتبط با شماست. Project شناسه. توجه داشته باشید که شناسه کلاینت OAuth باید معتبر و منحصر به فرد باشد. projectو قابل اشتراک گذاری با دیگران نیست projectس.
access_type ارزش استفاده: offline
prompt ارزش استفاده: consent
response_type مقدار مورد استفاده: code
در عوض، یک کد مجوز انتظار می‌رود.
scope مقدار مورد استفاده: https://www.googleapis.com/auth/sdm.service
دامنه API SDM.
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) مراجعه کنید.

PCM را به برنامه خود اضافه کنید

در برنامه خود، نمای PCM را با استفاده از این URL اضافه کنید:

https://nestservices.google.com/partnerconnections

وقتی که user وارد سیستم شده است، این صفحه تمام لینک‌های او را نشان می‌دهدDevice Access developerو همچنین فهرستی از تمام ساختارها و دستگاه‌هایی که دارای کلیدهایی برای اعطای مجوز و لغو مجوزها هستند. user همچنین می‌تواند اتصال یک شریک را به ازای هر شریک از این صفحه قطع کند.

برنامه‌های تأیید نشده

رابط برنامه‌نویسی کاربردی SDM از یک دامنه محدود استفاده می‌کند، به این معنی که هر برنامه‌ای که در طول فرآیند احراز هویت از این دامنه استفاده کند، «تأیید نشده» خواهد بود، مگر اینکه تأیید رابط برنامه‌نویسی کاربردی OAuth تکمیل شود. هنگام استفاده Device Access برای استفاده شخصی، تأیید API OAuth لازم نیست.

ممکن است در طول فرآیند مجوزدهی، صفحه‌ای با عنوان «Google has not verified this app» مشاهده کنید که اگر محدوده sdm.service در صفحه رضایت OAuth شما در Google Cloud پیکربندی نشده باشد، ظاهر می‌شود. این صفحه را می‌توان با کلیک روی گزینه Advanced و سپس کلیک روی Go to Project Name (unsafe) دور زد.

برای اطلاعات بیشتر به صفحه برنامه تأیید نشده مراجعه کنید.

توکن‌های دسترسی

تمام فراخوانی‌های API مربوط به SDM برای مدیریت ساختارها و دستگاه‌های مجاز باید از توکن دسترسی منحصر به فردی که به آن اعطا شده است، استفاده کنند. developer توسطuser در طول مجوزدهی. توکن‌های دسترسی کوتاه‌مدت هستند و برای اطمینان از دسترسی مداوم، باید مرتباً به‌روزرسانی شوند.

اگر a user بعداً لغو می‌کند developer در صورت دسترسی به یک ساختار یا دستگاه، توکن دسترسی بلافاصله منقضی شده و قابل به‌روزرسانی نیست، وdeveloper دیگر قادر به فراخوانی API مربوط به SDM از طرف آن نخواهد بود. user.

لغو مجوز حساب کاربری

روش‌های مختلفی برای لغو مجوز یک حساب گوگل وجود دارد. روش ترجیحی این است که کاربر از Partner Connections Manager (PCM) برای تغییر مجوزهای حساب استفاده کند. برای اطلاعات بیشتر به بخش «اصلاح مجوزهای حساب» مراجعه کنید. همچنین می‌توان یک توکن دسترسی را با روش‌های زیر لغو کرد:

  1. کاربر می‌تواند از طریق آدرس https://myaccount.google.com/permissions این مجوز را لغو کند.

  2. توسعه‌دهنده می‌تواند توکن دسترسی را به نقطه پایانی https://oauth2.googleapis.com/revoke ارسال کند. برای کسب اطلاعات بیشتر در مورد Google OAuth و ابطال توکن، به بخش ابطال توکن مراجعه کنید.

وب ویوهای جاسازی‌شده

یک سیاست جدید مرورگر امن، درخواست‌های OAuth گوگل را در کتابخانه‌های مرورگر تعبیه‌شده که معمولاً به عنوان وب‌ویوهای تعبیه‌شده شناخته می‌شوند، ممنوع می‌کند. همه وب‌ویوهای تعبیه‌شده مسدود خواهند شد. کتابخانه‌های وب‌ویو تعبیه‌شده مشکل‌ساز هستند زیرا به یک توسعه‌دهنده شرور اجازه می‌دهند ارتباطات بین گوگل و کاربران آن را رهگیری و تغییر دهد. وب‌ویوهای تعبیه‌شده نه تنها بر امنیت حساب تأثیر می‌گذارند، بلکه می‌توانند بر قابلیت استفاده برنامه شما نیز تأثیر بگذارند.

اگر تحت تأثیر این خط‌مشی قرار گرفته‌اید، به تغییرات امنیتی آتی در نقطه پایانی مجوز OAuth 2.0 گوگل در مقاله پشتیبانی از webviews تعبیه‌شده مراجعه کنید.