Notice: We're retiring Works with Nest. See the home page for more information.
Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Odniesienie do autoryzacji

Żądanie kodu autoryzacji

W zależności od typu żądania implementujemy różne długości kodu i wartości TTL (Time-to-Live):

Pływ TTL Długość kodu
Sieć 10 minut 16 znaków
KOŁEK 48 godzin 8 znaków

Parametry

Parametry autoryzacji obsługiwane w Nest API to:

Imię Rodzaj wymagany Opis
client_id strunowy tak Dostępne na stronie Klienci OAuth.
redirect_uri strunowy Nie Użyj tego, aby określić żądany identyfikator URI przekierowania, jeśli dla klienta skonfigurowano wiele identyfikatorów URI przekierowania. Pomiń go, aby użyć domyślnego identyfikatora URI przekierowania.

Nie umieszczaj żadnych innych parametrów w samym parametrze redirect_uri , powinien on dokładnie pasować do identyfikatora URI przekierowania skonfigurowanego dla Twojego klienta.
state strunowy tak Użyj tego, aby określić niemożliwą do odgadnięcia wartość do zwalczania ataków CSRF . W przeciwnym razie użyj domyślnej wartości STATE .

Komunikaty o błędach autoryzacji na podstawie kodu PIN

Następujące komunikaty o błędach mogą być wyświetlane użytkownikom podczas żądania kodu autoryzacji opartego na PIN:

Komunikat o błędzie użytkownika Wyjaśnienie
Brak identyfikatora klienta lub parametrów stanu. W adresie URL autoryzacji brakuje parametru client_id lub state albo obu. Upewnij się, że przekazany adres URL autoryzacji jest kompletny i dokładny.
Ups! Wystąpił błąd. Proszę spróbuj ponownie. Ten błąd występuje z następujących powodów:
  • Usługa Nest nie działa. Poczekaj, aż usługa Nest zostanie przywrócona.
  • Klient nie istnieje dla podanego client_id . Upewnij się, że przekazany adres URL autoryzacji używa poprawnego client_id .
Łączenie się z nazwą firmy jest obecnie niedostępne. Aby uzyskać więcej informacji, skontaktuj się z Nest. Klient przekroczył limit użytkowników. Prześlij klienta do sprawdzenia, aby dodać więcej użytkowników.

Odpowiedzi na błędy autoryzacji oparte na identyfikatorze URI przekierowania

W przypadku wszystkich odpowiedzi typ zawartości: application/json .

Brak wymaganych parametrów

Detale
Kod stanu HTTP 400 złych żądań
Ciało {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Wyjaśnienie W żądaniu kodu autoryzacji brakuje wymaganego parametru PARAM_NAME .

redirect_uri nie jest wstępnie zarejestrowany

Detale
Kod stanu HTTP 400 złych żądań
Ciało {
"error":"input_data_error",
"error_description":"redirect_uri not pre-registered"
}
Wyjaśnienie Parametr redirect_uri użyty w żądaniu tokenu dostępu nie pasuje do żadnego z identyfikatorów URI przekierowania skonfigurowanych dla klienta.

Żądanie dostępu do tokena

Zalecamy przestrzeganie tego standardu OAuth , który zapewnia większe bezpieczeństwo dzięki umieszczeniu danych logowania klienta w treści żądania. Połączenia z poświadczeniami klienta w nagłówku będą nadal działać, ale nie są zalecane.

Żądanie tokenu dostępu ma postać żądania HTTP POST.

Parametry

Imię Rodzaj wymagany Opis
code strunowy tak Kod autoryzacyjny, który jest przekazywany po wyrażeniu przez klienta zgody na udzielenie aplikacji dostępu do danych Nest. Ta wartość jest dostarczana przez pomyślne żądanie kodu autoryzacji.

Dowiedz się, jak skonfigurować autoryzację
client_id strunowy tak Dostępne na stronie Klienci OAuth.
client_secret strunowy tak Dostępne na stronie Klienci OAuth; może być również nazywany kluczem aplikacji.
grant_type strunowy tak Musi to być ten ciąg: authorization_code

Odpowiedź

W przypadku wszystkich odpowiedzi typ zawartości: application/json

Kod stanu HTTP Opis Ciało
200 OK Zwracany jest token dostępu. Użyj tokenu dostępu w wywołaniach usługi Nest. LONG to liczba sekund do wygaśnięcia tokena. {
"access_token":"STRING",
"expires_in":LONG
}

Okres istnienia tokenu dostępu

Nie obsługujemy tokenów odświeżania , ponieważ tokeny dostępu faktycznie nie wygasają. Zobacz Przegląd autoryzacji, aby uzyskać więcej informacji na temat przepływu autoryzacji za pośrednictwem sieci i kodu PIN.

Odpowiedzi na błędy tokenu dostępu

W przypadku wszystkich odpowiedzi typ zawartości: application/json .

Kod autoryzacyjny wygasł

Detale
Kod stanu HTTP 400 złych żądań
Ciało {
"error":"oauth2_error",
"error_description":"authorization code expired"
}
Wyjaśnienie Kod autoryzacyjny stracił ważność. Aby zażądać tokena dostępu, potrzebny jest nowy kod autoryzacyjny.

Nie znaleziono kodu autoryzacji

Detale
Kod stanu HTTP 400 złych żądań
Ciało {
"error":"oauth2_error",
"error_description":"authorization code not found"
}
Wyjaśnienie Parametr code jest nieprawidłowy. Sprawdź, czy używasz prawidłowego kodu autoryzacji.

Klient nieaktywny

Detale
Kod stanu HTTP 403 Zabronione
Ciało {
"error":"client_not_active",
"error_description":"client is not active"
}
Wyjaśnienie Sprawdź, czy używasz poprawnych parametrów . Jeśli parametry są poprawne, a błąd występuje tylko w przypadku niektórych metod autoryzacji (na przykład autoryzacja przy użyciu programu Postman, ale nie za pomocą Curl), może być błędna w składni.

Ten błąd występuje również wtedy, gdy klient jest dezaktywowany.

Nie znaleziono klucza klienta

Detale
Kod stanu HTTP 400 złych żądań
Ciało {
"error":"oauth2_error",
"error_description":"client secret not found"
}
Wyjaśnienie Parametr client_secret jest nieprawidłowy. Sprawdź, czy używasz poprawnej wartości client_secret .

Brak wymaganych parametrów

Detale
Kod stanu HTTP 400 złych żądań
Ciało {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Wyjaśnienie W żądaniu tokenu dostępu brakuje wymaganego parametru PARAM_NAME .

redirect_uri niedozwolone

Detale
Kod stanu HTTP 400 złych żądań
Ciało {
"error":"input_error",
"error_description":"redirect_uri not allowed"
}
Wyjaśnienie W żądaniu tokenu dostępu użyto parametru redirect_uri .