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