Developerмогут использовать SDM API для просмотра устройств Google Nest и управления ими от имени userс. API SDM подтверждает, что user управляет устройствами, к которым осуществляется доступ, что user дал согласие наdeveloper чтение или запись характеристик каждого устройства, и чтоdeveloper был внесен в белый список для доступа к каждому признаку.
Чтобы использовать SDM API для управления устройствами,developer сначала должно быть разрешено user.
Подробное описание процесса авторизации см. на странице «Авторизация учетной записи » Device Access Краткое руководство.
Справку по устранению ошибок авторизации см. в разделе Ошибки авторизации .
Поток OAuth
API SDM использует трехсторонний поток Google OAuth дляuser авторизация:
- Когда a user желает авторизовать a developer для управления устройствами Nest developer отправляетuser в PCM, где userвходит в свою учетную запись Google.
- user выбирает разрешения для предоставления developerв ПКМ.
- user предоставляет согласие через OAuth, предоставляяdeveloper код авторизации.
- developer использует код авторизации для получения токена доступа.
- developer использует токен доступа с вызовами API SDM для управления устройствами.
Чтобы узнать больше о Google OAuth и о том, как его настроить, см. Использование OAuth 2.0 для доступа к API Google .
Менеджер по связям с партнерами (PCM)
PCM предоставляется API SDM. Это представление, в котором перечислены все структуры, устройства и параметры доступа, которыеuser может предоставить developer. userвыбирает, к чему предоставить доступ во время процесса авторизации, и сохраняет контроль над этим доступом.
Параметры, выбранные в PCM, соответствуют группам признаков, которые представляют собой наборы признаков, которые developer будет предоставлен доступ. Некоторые группы черт связаны между собой в зависимости от типа интеграции.developer предлагает userи userдолжен предоставить разрешения для этих связанных групп признаков, чтобы обеспечить такую интеграцию. В противном случае пользователь имеет возможность по своему желанию предоставлять разрешения для отдельных несвязанных групп признаков.
Включить ПКМ
Чтобы включить представление 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 . https://www.googleapis.com/auth/sdm.service Область действия API SDM. |
state | Необязательный. Непрозрачное значение, используемое developer client для поддержания состояния между запросом и обратным вызовом. |
Пример 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, используя этот URL-адрес:
https://nestservices.google.com/partnerconnections
Когда user вошел в систему, на этой странице отображаются все связанные с нимиDevice Access developers, а также список всех структур и устройств с переключателями для предоставления и отзыва разрешений. user также можно отключить партнерское соединение для каждого партнера на этой странице.
Непроверенные приложения
API SDM использует ограниченную область. Это означает, что любые приложения, использующие эту область во время авторизации, будут «непроверенными», пока проверка API OAuth не будет завершена. При использовании Device Access для личного использования проверка OAuth API не требуется.
Во время процесса авторизации вы можете увидеть экран «Google не проверил это приложение», который появляется, если область действия sdm.service
не настроена на экране согласия OAuth в Google Cloud. Этот экран можно обойти, щелкнув параметр «Дополнительно» , а затем нажав «Перейти к имени проекта (небезопасно)» .
Дополнительную информацию см. в разделе «Экран непроверенного приложения» .
Токены доступа
Все вызовы API SDM для управления авторизованными структурами и устройствами должны использовать уникальный токен доступа, предоставленный developer поuser во время авторизации. Токены доступа недолговечны и должны регулярно обновляться, чтобы обеспечить постоянный доступ.
Если a user позже отзывает developer доступ к структуре или устройству, токен доступа немедленно истекает и не может быть обновлен, аdeveloper больше не сможет вызывать API SDM от имени этого user.
Отменить авторизацию аккаунта
Существует несколько способов деавторизации учетной записи Google. Предпочтительным методом является использование пользователем диспетчера подключений партнеров (PCM) для изменения разрешений учетной записи. Дополнительную информацию см. в разделе Изменение разрешений учетной записи . Токен доступа также можно отозвать следующими способами:
Пользователь может отозвать его на странице https://myaccount.google.com/permissions .
Разработчик может передать токен доступа конечной точке
https://oauth2.googleapis.com/revoke
. Дополнительную информацию о Google OAuth и отзыве токена см. в разделе Отзыв токена .
Встроенные веб-просмотры
Новая политика безопасности браузера запрещает запросы Google OAuth во встроенных библиотеках браузера, обычно называемых встроенными веб-просмотрами. Все встроенные веб-просмотры будут заблокированы. Встроенные библиотеки веб-просмотра создают проблемы, поскольку позволяют злоумышленникам-разработчикам перехватывать и изменять коммуникации между Google и его пользователями. Встроенные веб-просмотры не только влияют на безопасность учетной записи, но и могут повлиять на удобство использования вашего приложения.
Если на вас влияет эта политика, ознакомьтесь со статьей «Предстоящие изменения безопасности конечной точки авторизации Google OAuth 2.0» в статье поддержки встроенных веб-просмотров .