Google Cloud ve Cihaz Erişimi projeleriniz oluşturulduğunda desteklenen bir Google Nest cihazıyla bir Google Hesabı'nı şunun için yetkilendirebilir: SDM API'si.
Hesabınızı bağlayın
Yapıları ve cihazları görüntülemek için hesabınıza bir Google Hesabı bağlamanız gerekir: Device Access projeyi düzenleyebilirsiniz. PCM, tek bir kodla user developeradlı çocuğa, yapılarına ve cihaz verilerine erişebilir.
Bu kılavuzda, user ve developerolarak hizmet veriyorsunuz.
Aşağıdaki bağlantıyı web'de aç tarayıcı, değiştirme:
- Project Kimliğinizle project-id Device Access
- OAuth2 İstemci Kimliği ile oauth2-client-id Google Cloud Kimlik bilgileri
https://nestservices.google.com/partnerconnections/project-id/auth?
redirect_uri=https://www.google.com& access_type=offline& prompt=consent& client_id=oauth2-client-id& response_type=code& scope=https://www.googleapis.com/auth/sdm.service - Yakın zamanda Google'da birden fazla hesapla oturum açtıysanız Hesap seçin ekranı görüntülenir ve Google Hesapları. Öyleyse, kullandığınız cihazlara bağlı Google hesabını seçin. Device Accessiçin yetkilendirmek istiyorsunuz.
- Google Nest izinleri ekranı PCM'dir. Buradan yapı ve cihaz izinlerini verebilirsiniz. Açma/kapatma düğmesini açık evinize (1. Adım) ve evinizde bulunan tüm cihazlarınıza ait izinleri tarafından desteklendiğini doğrulayın (2. Adım) ve ardından Next (İleri) seçeneğini tıklayın.
- Proje Adı'na devam etmek için bir hesap seçin ekranında, Proje Adı, Google Cloud projenizin adıdır. ve söz konusu uygulama için yetkilendirmek istediğiniz SDM API'si. Daha önce kullandığınız Google Hesabı'nı kullanın.
- Hesap seçtikten sonra Google bu uygulamayı doğrulamadı. Böyle bir durumda devam etmek için Advanced (Gelişmiş) seçeneğini belirleyin ve Proje Adı'na git (güvenli değil) seçeneğini tıklayın. Görüntüleyin Daha fazlası için Google bu uygulamayı doğrulamadı ekleyebilirsiniz.
- Grant Proje Adı izni ekranında İzin ver'i tıklayarak proje iznine sahip olmanız gerekir.
- Seçimlerinizi onaylayın ekranında, istediğiniz izinlerin doğru olduğundan emin olun onay kutusunu işaretleyin ve onaylamak için İzin ver'i tıklayın.
Şuraya yönlendirilirsiniz: https://www.google.com. Yetkilendirme Kodu, URL'de
code
parametresi olarak döndürülür. Hesaplarınız şu biçimde olmalıdır:https://www.google.com?code=authorization-code&
scope=https://www.googleapis.com/auth/sdm.service - Yetkilendirme kodunu kopyalayın.
Erişim jetonu alma
Kapsamlı bir erişim jetonu almak için SDM API'yi çağırmak için kullanabilirsiniz.
Bir terminal açıp aşağıdaki
curl
komutu kullanılmaktadır:- oauth2-client-id oauth2-client-secret OAuth2 İstemci Kimliği ve İstemci Sırrı ile birlikte Google Cloud Kimlik bilgileri
- Önceki adımda aldığınız kodla authorization-code
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?
client_id=oauth2-client-id& client_secret=oauth2-client-secret& code=authorization-code& grant_type=authorization_code& redirect_uri=https://www.google.com' Google OAuth, bir erişim jetonu ve bir yenileme jetonuna dokunun.
Bu değerlerin ikisini de kopyalayın. Erişim jetonu, SDM API ve yenileme jetonu, yeni bir erişim jetonu.{
Cihaz listesi araması yap
Siz ödeme yapana kadar yetkilendirme
ilk
devices.list
çağrısına yeni erişim jetonunuzu ekleyin. Bu
İlk çağrı, yetkilendirme işlemini tamamlar ve
Pub/Sub aboneliği oluşturdunuz.
devices
uç noktası için bu çağrıyı yapmak üzere curl
işlevini kullanın:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Başarılı bir arama, Device Accesscihazınıza bağlı cihazların listesini döndürür. belirler. Her cihazın kendine özgü mevcut özellikler listesi vardır:
{ "devices": [ { "name": "enterprises/project-id/devices/device-id", "type": "sdm.devices.types.device-type", "traits": { ... }, "parentRelations": [ { "parent": "enterprises/project-id/structures/structure-id/rooms/room-id", "displayName": "device-room-name" } ] } ] }
Yenileme jetonu nasıl kullanılır?
SDM API'nin erişim jetonları yalnızca
Google OAuth tarafından döndürülen expires_in
parametresinde belirtildiği gibi, 1 saat boyunca geçerlidir. Eğer
erişim jetonunuzun süresi dolduysa yeni bir jeton almak için yenileme jetonunu kullanın.
Komut, erişim jetonuna benzer, ancak farklı bir
grant_type
Bir terminal açın ve
curl
komutundan sonra şu komutu değiştirerek:- oauth2-client-id oauth2-client-secret OAuth2 İstemci Kimliği ve İstemci Sırrı ile birlikte Google Cloud Kimlik bilgileri
- İlk kez erişim elde ederken aldığınız kodla refresh-token jeton.
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?
client_id=oauth2-client-id& client_secret=oauth2-client-secret& refresh_token=refresh-token& grant_type=refresh_token' Google OAuth, yeni bir erişim jetonu döndürür.
{
Sorun giderme
Google OAuth hakkında daha fazla bilgi edinmek için Google'a Erişmek için OAuth 2.0'ı Kullanma API'ler.
Yenileme jetonunun süresi doluyor
İstemci kimliği onaylanmazsa yenileme jetonları 7 gün sonra çalışmayı durdurabilir. bir neden olabilir. 7 günlük jetonun geçerlilik süresinin Ticaret ile ilişkili değildir onaylarını içerir. Bir hizmetin veya kullanıcı hesabının OAuth'u alması gerekiyor Jeton kullanım ömrünü uzatmak için 2.0 istemci kimliği onaylandı ve üretime sunuldu. Daha fazla bilgi için Yenileme jetonun geçerlilik süresi konusuna bakın ekleyebilirsiniz.
Erişim reddedildi
Google Cloud'da OAuth izin ekranınızı ayarladıysanız ve Kullanıcı türü Harici ise "Erişim reddedildi" hatasını alırsınız şu hatayı alırsanız: test kullanıcısı olarak listelenmeyen bir Google hesabıyla hesap bağlama girişiminde bulunma en iyi yoludur. Google hesabını Test kullanıcıları bölümüne eklediğinizden emin olun OAuth izin ekranında.
İş Ortağı Bağlantıları Yöneticisi (PCM) hatası
Erişim sırasında karşılaşılan hatalarla ilgili yardım için PCM, bkz. İş Ortağı Bağlantıları Yöneticisi (PCM) Hata Referansı.
Google bu uygulamayı doğrulamadı
SDM API kısıtlı bir kapsam kullanır, yani Yetkilendirme sırasında bu kapsamı kullanan uygulamalar "doğrulanmamış" olacaktır. tabii ki OAuth API Doğrulaması tamamlandı. Şunlar için Device Access kullanırken: OAuth API Doğrulaması gerekli değildir.
"Google bu uygulamayı doğrulamadı" mesajını görebilirsiniz yetkilendirme sırasında
işlemi (sdm.service
kapsamı
Google Cloud'daki OAuth izin ekranınız. Bu ekran,
Gelişmiş seçeneğini ve ardından Projeye Git'i tıklayarak atlayabilirsiniz.
Ad (güvenli değil).
Doğrulanmamış uygulama" bölümüne bakın ekran konulu videomuzu izleyin.
Geçersiz istemci
Erişim veya yenileme jetonu almaya çalışırken "Geçersiz
müşteri" hata mesajını alırsınız. Şunlardan emin olun:
Erişim ve yenileme jetonu çağrılarında kullandığınız client_secret
değeri
(kullanılan OAuth 2.0 İstemci Kimliği için)
Google Cloud
Kimlik bilgileri
sayfasını ziyaret edin.
Geçersiz istek, gerekli kapsam eksik
PCM'de izin verdikten sonra
"Geçersiz istek" "Gerekli parametre eksik: kapsam" hatası. Şunlardan emin olun:
Yetkilendirme çağrılarında kullandığınız scope
değeri, OAuth 2.0 İstemcisi için belirlediğiniz değerle aynıdır.
Google Cloud
Kimlik bilgileri
sayfasını ziyaret edin.
URI uyuşmazlığını yeniden yönlendir
Yetkilendirmeyi uygularken "Yönlendirme URI'si uyuşmazlığı" ile karşılaşabilirsiniz.
hatası. Yetkilendirme aramalarında kullandığınız redirect_uri
değerinin şu olduğundan emin olun:
(OAuth 2.0 İstemcisi için belirlediğiniz yapılandırma)
Google Cloud
Kimlik bilgileri
sayfasını ziyaret edin.
Hesap izinlerini değiştirme
Bir projeye verilen izinleri değiştirmek için Device Access veya projenin bağlantısını kesmek bunun için PCM'ye gidin:
https://nestservices.google.com/partnerconnections
Bu sayfada tüm üçüncü taraf geliştirici hizmetleri (Device Access proje) gösterilmektedir hesabınıza bağlı. İstediğiniz projeyi Device Access seçin unutmayın. İzinleri istediğiniz gibi değiştirmek için sonraki ekranı kullanın.
Yetkili bir hizmet için yalnızca belirli izinleri iptal etmek üzere tıklayın ve kaydetmek için geri okunu tıklayın.
Yetkili bir hizmetin bağlantısını tamamen kaldırmak için Google Hesabınızın bağlantısını kaldırın Hesap'ın, projenin aldığı tüm izinleri ve erişim jetonlarını iptal etmesi hesap için verildi.
PCM istenen hizmeti göstermiyorsa önce bir cihaz listesi araması yapın.
Hızlı referans
Bir user ve Google hesabını bağla ,
Bu hızlı referansı kullanmak için kod örneklerindeki her bir yer tutucu değişkeni düzenleyin değerleri girin ve gerektiğinde kopyalayıp yapıştırın:
1 PCM
Aşağıdaki bağlantıyı web'de aç tarayıcı, değiştirme:
- Project Kimliğinizle project-id Device Access
- OAuth2 İstemci Kimliği ile oauth2-client-id Google Cloud Kimlik bilgileri
https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=https://www.google.com& access_type=offline& prompt=consent& client_id=oauth2-client-id& response_type=code& scope=https://www.googleapis.com/auth/sdm.service
2 Yetki Kodu
Şuraya yönlendirilirsiniz:
https://www.google.com. Yetkilendirme Kodu, URL'de code
parametresi olarak döndürülür.
Hesaplarınız şu biçimde olmalıdır:
https://www.google.com?code=authorization-code&scope=https://www.googleapis.com/auth/sdm.service
3 Erişim Jetonu
Kapsamlı bir erişim jetonu almak için SDM API'yi çağırmak için kullanabilirsiniz.
Bir terminal açıp
aşağıdaki curl
komutu kullanılmaktadır:
- oauth2-client-id oauth2-client-secret OAuth2 İstemci Kimliği ve İstemci Sırrı ile birlikte Google Cloud Kimlik bilgileri
- Önceki adımda aldığınız kodla authorization-code
Google OAuth, bir erişim jetonu ve bir yenileme jetonuna dokunun.
İstek
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=https://www.google.com'
Yanıt
{"access_token": "access-token",
"expires_in": 3599,
"refresh_token": "refresh-token",
"scope": "https://www.googleapis.com/auth/sdm.service",
"token_type": "Bearer" }
4 API Çağrısı
Siz ödeme yapana kadar yetkilendirme
ilk
devices.list
çağrısına yeni erişim jetonunuzu ekleyin. Bu
İlk çağrı, yetkilendirme işlemini tamamlar ve
Pub/Sub aboneliği oluşturdunuz.
Aşağıdakilerden birini kullanmanız Yetkilendirmeyi tamamlamak üzere, belirtilen kapsam için listelenen API çağrıları.
sdm.service
cihaz
Bkz.
devices.list
Daha fazla bilgi için API referansını inceleyin.
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
5 Yenileme Jetonu
SDM API'nin erişim jetonları yalnızca
Google OAuth tarafından döndürülen expires_in
parametresinde belirtildiği gibi, 1 saat boyunca geçerlidir. Eğer
erişim jetonunuzun süresi dolduysa yeni bir jeton almak için yenileme jetonunu kullanın.
Bir terminal açın ve
curl
komutundan sonra şu komutu değiştirerek:
- oauth2-client-id oauth2-client-secret OAuth2 İstemci Kimliği ve İstemci Sırrı ile birlikte Google Cloud Kimlik bilgileri
- İlk kez erişim elde ederken aldığınız kodla refresh-token jeton.
Google OAuth, yeni bir erişim jetonu döndürür.
İstek
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token'
Yanıt
{"access_token": "new-access-token",
"expires_in": 3599,
"scope": "https://www.googleapis.com/auth/sdm.service",
"token_type": "Bearer" }