Yetkilendirme

Developer, SDM API'yi kullanarak useradına Google Nest cihazlarını görüntüleyip yönetebilir. SDM API, user öğesinin erişilen cihazları yönettiğini, user öğesinin her cihazın özelliklerini okumaya veya yazmayadeveloper izin verdiğini vedeveloper öğesinin her özelliğe erişim için beyaz listeye alındığını doğrular. user

Cihaz yönetimi için SDM API'yi kullanmak üzeredeveloper , önce usertarafından yetkilendirilmelidir.

Yetkilendirme sürecinin adım adım açıklaması için Device Access Hızlı Başlangıç Kılavuzu'nun Hesap Yetkilendirme sayfasını inceleyin.

Yetkilendirme hatalarıyla ilgili sorun giderme konusunda yardım için Yetkilendirme Hataları başlıklı makaleyi inceleyin.

OAuth akışı

SDM API,user yetkilendirme için üç aşamalı bir Google OAuth akışı kullanır:

  • a user , Nest cihazlarının yönetimi için a developer yetkisi vermek istediğinde developer , PCM'yeuser gönderir. Burada user, Google Hesabı'na giriş yapar.
  • PCM'de user için verilecek izinleri seçer. developer
  • user , OAuth üzerinden izin vererekdeveloper için yetkilendirme kodu sağlar.
  • developer , erişim jetonunu almak için yetkilendirme kodunu kullanır.
  • developer , cihaz yönetimi için SDM API'ye yapılan çağrılarda erişim jetonunu kullanır.

Google OAuth ve kurulum hakkında daha fazla bilgi edinmek için Google API'lerine Erişmek İçin OAuth 2.0'ı Kullanma başlıklı makaleyi inceleyin.

İş Ortağı Bağlantıları Yöneticisi (PCM)

PCM, SDM API tarafından sağlanır.user 'nın developer'a verebileceği tüm yapıları, cihazları ve erişim seçeneklerini listeleyen bir görünümdür. user yetkilendirme işlemi sırasında hangi verilere erişileceğini seçer ve bu erişimin kontrolünü elinde tutar.

PCM'de seçilen seçenekler, developer erişim izni verilecek özellik koleksiyonları olan özellik gruplarıyla eşlenir. Bazı özellik grupları,developer 'nın user'ye sunduğu entegrasyon türüne bağlı olarak birbirine bağlanır ve user, bu entegrasyonu etkinleştirmek için bağlı özellik gruplarına izin vermelidir. Aksi takdirde, kullanıcı istediği gibi tek tek, bağlantısız özellik grupları için izin verebilir.

PCM'yi etkinleştirme

useriçin PCM görünümünü etkinleştirmek üzere, standart Google API OAuth 2.0 uç noktasını yetkilendirme isteği için bu yeni OAuth uç noktasıyla değiştirin:

https://nestservices.google.com/partnerconnections/project-id/auth

URL'de şu parametreleri kullanın:

Parametre Açıklama
redirect_uri Başarılı yetkilendirme işleminden sonra user yönlendirilecek URI.
client_id Google Cloud projenizdeki OAuth 2.0 istemci kimliği. Bu e-posta adresinin Project kimliğinizle ilişkili olduğundan emin olun. OAuth istemci kimliğinin geçerli olması ve bir projectiçin benzersiz olması gerektiğini, diğer projectile paylaşılamayacağını unutmayın.
access_type Kullanılacak değer: offline
prompt Kullanılacak değer: consent
response_type Kullanılacak değer: code
Karşılığında yetkilendirme kodu bekleniyor.
scope Kullanılacak değer: https://www.googleapis.com/auth/sdm.service
SDM API kapsamı.
state İsteğe bağlıdır. İstemci tarafından developer istek ile geri çağırma arasındaki durumu korumak için kullanılan opak bir değer.

Örnek PCM URL'si:

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 izin verdikten sonra, yönlendirme URI'sinde code parametresi olarak bir yetkilendirme kodu döndürülür. Erişim jetonu almak için bu kodu kullanın.

PCM'ye erişirken karşılaşılan hatalarla ilgili yardım için İş Ortağı Bağlantıları Yöneticisi (PCM) Hata Referansı başlıklı makaleyi inceleyin.

Uygulamanıza PCM ekleme

Uygulamanızda, şu URL'yi kullanarak PCM görünümünü ekleyin:

https://nestservices.google.com/partnerconnections

user oturum açtığında bu sayfada, kullanıcının tüm bağlıDevice Access developer'leri ve izin verme/iptal etme açma/kapatma düğmelerinin bulunduğu tüm yapılar ve cihazların listesi gösterilir. user ayrıca bu sayfadan iş ortağı bağlantısını iş ortağı bazında kesebilir.

Doğrulanmamış uygulamalar

SDM API'si, kısıtlanmış bir kapsam kullanır. Bu nedenle, yetkilendirme sırasında bu kapsamı kullanan tüm uygulamalar, OAuth API Doğrulaması tamamlanmadığı sürece "doğrulanmamış" olarak işaretlenir. Device Access kişisel kullanım için kullanıldığında OAuth API doğrulaması gerekli değildir.

Yetkilendirme işlemi sırasında, Google Cloud'daki OAuth kullanıcı rızası ekranınızda sdm.service kapsamı yapılandırılmamışsa "Google bu uygulamayı doğrulamadı" ekranı görebilirsiniz. Bu ekranı atlamak için Gelişmiş seçeneğini ve ardından Proje Adı'na git (güvenli değil) seçeneğini tıklayın.

Daha fazla bilgi için Doğrulanmamış uygulama ekranı başlıklı makaleyi inceleyin.

Erişim jetonları

Yetkilendirilmiş yapıları ve cihazları yönetmek için SDM API'ye yapılan tüm çağrılarda, yetkilendirme sırasında developer tarafındanuser 'ye verilen benzersiz erişim jetonu kullanılmalıdır. Erişim jetonlarının ömrü kısadır ve erişimin devamlılığını sağlamak için düzenli olarak yenilenmeleri gerekir.

a user Daha sonra developer bir yapıya veya cihaza erişimi iptal ederse erişim jetonunun geçerliliği hemen sona erer ve yenilenemez. Ayrıcadeveloper artık SDM API'yi useradına çağıramaz.

Hesap yetkilendirmesini iptal etme

Google hesabının yetkisini kaldırmanın birden fazla yolu vardır. Tercih edilen yöntem, kullanıcının hesap izinlerini değiştirmek için İş Ortağı Bağlantıları Yöneticisi'ni (PCM) kullanmasıdır. Daha fazla bilgi için Hesap izinlerini değiştirme başlıklı makaleyi inceleyin. Erişim jetonu aşağıdaki yöntemlerle de iptal edilebilir:

  1. Kullanıcı, izni https://myaccount.google.com/permissions adresinden iptal edebilir.

  2. Geliştirici, erişim jetonunu uç noktaya iletebilir https://oauth2.googleapis.com/revoke. Google OAuth ve jeton iptali hakkında daha fazla bilgi edinmek için Jetonu iptal etme başlıklı makaleyi inceleyin.

Yerleştirilmiş web görünümleri

Yeni bir güvenli tarayıcı politikası, genellikle yerleştirilmiş web görünümleri olarak adlandırılan yerleştirilmiş tarayıcı kitaplıklarında Google OAuth isteklerini yasaklıyor. Tüm yerleştirilmiş web görünümleri engellenir. Yerleşik WebView kitaplıkları, kötü niyetli bir geliştiricinin Google ile kullanıcıları arasındaki iletişimi engellemesine ve değiştirmesine izin verdiği için sorunludur. Yerleştirilmiş WebView'lar yalnızca hesap güvenliğini etkilemekle kalmaz, uygulamanızın kullanılabilirliğini de etkileyebilir.

Bu politikadan etkileniyorsanız Yerleştirilmiş web görünümlerinde Google'ın OAuth 2.0 yetkilendirme uç noktasında yapılacak güvenlik değişiklikleri başlıklı destek makalesini inceleyin.