Developerkullanıcıları, useradına Google Nest cihazlarını görüntülemek ve yönetmek için SDM API'yi kullanabilir. SDM API, user 'in erişilen cihazları yönettiğini, user 'in her cihazın özelliklerinin okunmasına veya yazılmasına izin verdiğini vedeveloper 'in her özelliğe erişim için beyaz listeye eklendiğini doğrular.developer
Cihaz yönetimi için SDM API'yi kullanmak isteyendeveloper , önce usertarafından yetkilendirilmelidir.
Yetkilendirme sürecinin adım adım açıklaması için Device Access Hızlı Başlangıç Kılavuzu'nun Hesabı Yetkilendirme sayfasına göz atın.
Yetkilendirme hatalarını gidermeyle ilgili yardım için Yetkilendirme Hataları başlıklı makaleyi inceleyin.
OAuth akışı
SDM API, yetkilendirme içinuser üç aşamalı bir Google OAuth akışı kullanır:
- a user Nest cihazlarının yönetimi için a developer developer user userGoogle Hesabı'na giriş yaptığı PCM'ye gönderir.
- user PCM'de developeriçin verilecek izinleri seçer.
- user , OAuth üzerinden izin verir vedeveloper bir yetkilendirme kodu verir.
- developer , Erişim Jetonu 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 iç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 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 neyin erişime açılacağını seçer ve bu erişimin kontrolünü elinde tutar.
PCM'de seçilen seçenekler, developer kullanıcıya erişim izni verilecek özellik gruplarıyla eşlenir. Bazı özellik grupları,developer 'nin user'ye sunduğu entegrasyon türüne bağlı olarak birbirine bağlıdır ve bu entegrasyonu etkinleştirmek için user'nin bu bağlı özellik gruplarına izin vermesi gerekir. Aksi takdirde, kullanıcı bağlantısı olmayan tekil özellik gruplarına istediği şekilde izin verebilir.
PCM'yi etkinleştir
Bir 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ı yetkilendirmeden sonra user öğesini yönlendirecek URI. |
client_id |
Google Cloud projenizdeki OAuth 2.0 istemci kimliği. Bu kimliğin, Project kimliğinizle ilişkilendirilen kimlikle aynı olduğundan emin olun. OAuth istemci kimliğinin geçerli ve bir projectiçin benzersiz olması, diğer projectile paylaşılamaması gerektiğini unutmayın. |
access_type |
Kullanılacak değer: offline |
prompt |
Kullanılacak değer: consent |
response_type |
Kullanılacak değer: code Dönüş olarak bir yetkilendirme kodu beklenir. |
scope |
Kullanılacak değer: https://www.googleapis.com/auth/sdm.service
SDM API kapsamı. |
state |
İsteğe bağlıdır. İstem ile geri çağırma işlevi arasındaki durumu korumak için istemci tarafından kullanılan opak bir değerdir. developer |
Ö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 verildikten 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.
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, bağlı tümDevice Access developer'lerin yanı sıra izin verme ve iptal etme düğmelerinin bulunduğu tüm yapıların ve cihazların listesi gösterilir. Ayrıca, bu sayfadan iş ortağı bağlantılarını iş ortağı bazında da kaldırabilirsiniz. user
Doğrulanmamış uygulamalar
SDM API'si kısıtlanmış bir kapsam kullanır. Yani, OAuth API Doğrulaması tamamlanmadığı takdirde yetkilendirme sırasında bu kapsamı kullanan tüm uygulamalar "doğrulanmaz". 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 bu uygulamayı doğrulamadı" ekranını görebilirsiniz. Bu ekran, Google Cloud'daki OAuth izin ekranınızda sdm.service
kapsamı yapılandırılmamışsa gösterilir. Bu ekran, Advanced (Gelişmiş) seçeneği ve ardından Project Name (Proje Adı) sayfasına (güvenli değil) git seçeneği tıklanarak atlanabilir.
Daha fazla bilgi için Doğrulanmamış uygulama ekranı başlıklı makaleyi inceleyin.
Erişim jetonları
Yetkili yapıları ve cihazları yönetmek için SDM API'ye yapılan tüm çağrılarda, yetkilendirme sırasında developer user tarafından developer verilen benzersiz erişim jetonu kullanılmalıdır. Erişim jetonları kısa ömürlüdür ve erişimin devamı için düzenli olarak yenilenmelidir.
Daha sonra bir yapıya veya cihaza developer erişimi a user iptal ederse developer erişim jetonunun süresi hemen dolar ve yenilenemez.developer Artık bu işlem adına SDM API'yi çağıramaz user.
Hesap yetkilendirmesini iptal et
Bir 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 jetonları aşağıdaki yöntemlerle de iptal edilebilir:
Kullanıcı https://myaccount.google.com/permissions adresinden iptal edebilir.
Geliştirici, erişim jetonunu uç noktaya (
https://oauth2.googleapis.com/revoke
) iletebilir. Google OAuth ve jeton iptali hakkında daha fazla bilgi edinmek için Jetonu iptal etme bölümüne bakın.
Yerleştirilmiş web görünümleri
Yeni güvenli tarayıcı politikası, genellikle yerleştirilmiş web görünümü 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. Kötü niyetli bir geliştiricinin Google ile kullanıcıları arasındaki iletişimi engellemesine ve değiştirmesine izin verdikleri için yerleşik web görünümü kitaplıkları sorunludur. Yerleşik web görünümleri yalnızca hesap güvenliğini değil, 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 makalesine bakın.