Konfigurowanie Google Cloud i OAuth

Dostęp do interfejsu Google Health API jest zapewniany przez Google Cloud. Aby włączyć interfejs API i autoryzować konto Google, musisz mieć projekt w chmurze Google.

Niezależnie od tego, czy jesteś obecnym programistą interfejsu Fitbit API, czy dopiero zaczynasz korzystać z interfejsu Google Health API, musisz wykonać ten krok, aby wywoływać interfejs API.

Tworzenie projektu i klienta OAuth

Kliknij przycisk Włącz interfejs API i uzyskaj identyfikator klienta OAuth 2.0, aby włączyć interfejs Google Health API i uzyskać identyfikator klienta OAuth 2.0:

  1. Jeśli masz istniejący projekt w chmurze Google Cloud, którego chcesz używać w interfejsie Google Health API, najpierw zaloguj się na konto administratora tego projektu. Następnie wybierz istniejący projekt z listy dostępnych projektów po kliknięciu przycisku. W przeciwnym razie utwórz nowy projekt.
  2. Gdy pojawi się pytanie „Skąd dzwonisz?”, wybierz Serwer internetowy.
  3. Wpisz https://www.google.com jako wartość pola Autoryzowane identyfikatory URI przekierowania. Aby uzyskać kod autoryzacji za pomocą protokołu OAuth 2.0, wymagany jest identyfikator URI przekierowania.
  4. Po zakończeniu konfiguracji skopiuj wartości identyfikatora klienta OAuth 2.0 i tajnego klucza klienta oraz pobierz na komputer lokalny plik JSON z danymi logowania.
Włącz interfejs API i uzyskaj identyfikator klienta OAuth 2.0

Jeśli chcesz ręcznie skonfigurować projekt w chmurze Google Cloud lub sprawdzić konfigurację i ponownie pobrać dane logowania:

  1. Włącz Google Health API na stronie Włączanie interfejsów API.
  2. Uzyskaj identyfikator klienta OAuth 2.0 na stronie Dane logowania.

Więcej informacji o konfigurowaniu OAuth 2.0 za pomocą konsoli Google znajdziesz w artykule Używanie protokołu OAuth 2.0 na potrzeby dostępu do interfejsów API Google.

Dodawanie użytkowników testowych

Domyślnie nowo utworzeni klienci OAuth są w stanie niezweryfikowanym i mają limit 100 użytkowników zarówno na potrzeby testów, jak i środowiska produkcyjnego. Aby w tym okresie włączyć autoryzację, musisz ręcznie dodać adres e-mail każdego użytkownika do listy użytkowników testowych w konfiguracji projektu.

Zaktualizuj listę użytkowników testowych na stronie Odbiorcy:

  1. Na tej stronie powinny być widoczne te ustawienia: „Stan publikowania” ustawiony na Testowanie i „Typ użytkownika” ustawiony na Zewnętrzny.
  2. W sekcji „Użytkownicy testowi” kliknij + Dodaj użytkowników. Wpisz adres e-mail użytkowników testowych, którzy powinni mieć możliwość przyznania aplikacji uprawnień dostępu do danych dotyczących zdrowia.
  3. Kliknij Zapisz.

Obsługa ponad 100 użytkowników za pomocą interfejsu Google Health API wymaga przejścia weryfikacji bezpieczeństwa przez firmę zewnętrzną. Więcej informacji znajdziesz w Centrum pomocy dotyczącym weryfikacji aplikacji OAuth.

Dodawanie zakresów

Na stronie Dostęp do danych musisz określić zakresy, do których klient ma dostęp:

  1. Na tej stronie kliknij Dodaj lub usuń zakresy.
  2. W kolumnie API wyszukaj „Google Health API”. Wybierz zakresy, których potrzebujesz w swojej aplikacji.
  3. Po wybraniu wszystkich potrzebnych zakresów kliknij Aktualizuj, aby wrócić na stronę Dostęp do danych.
  4. Kliknij Zapisz.

Konfigurowanie identyfikatora klienta zostało zakończone. Teraz możesz wywoływać interfejs Google Health API.

Zaktualizuj zakresy

Możesz poprosić użytkownika o ponowne autoryzowanie aplikacji, ustawiając w żądaniu uwierzytelniania parametr prompt na wartość consent. Jeśli parametr prompt=consent jest uwzględniony, ekran zgody wyświetla się za każdym razem, gdy aplikacja zgłasza żądanie autoryzacji zakresów dostępu, nawet jeśli wszystkie zakresy zostały wcześniej przyznane projektowi interfejsów API Google.

Aby dodać lub zmienić zakresy za pomocą parametru prompt=consent, wykonaj te czynności:

  1. Określ pełną listę zakresów, których potrzebuje Twoja aplikacja. Powinny one obejmować zarówno dotychczasowe zakresy, jak i wszystkie nowe, które chcesz dodać.

  2. Zmodyfikuj parametr scope w adresie URL autoryzacji, aby zawierał zaktualizowaną listę wartości zakresu rozdzielonych spacjami.

  3. Do parametrów identyfikatora URI uwierzytelniania dodaj znak prompt=consent. Wymusza to wyświetlenie przez serwer autoryzacji prośby o zgodę użytkownika przed zwróceniem informacji do klienta.

    Poniższy przykład pokazuje żądanie HTTPS GET do punktu końcowego autoryzacji OAuth 2.0 Google, które zawiera prośbę o wiele zakresów z dodanym parametrem prompt=consent:

    https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=redirect-uri&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly%20https://www.googleapis.com/auth/googlehealth.sleep.readonly&prompt=consent
  4. Gdy użytkownik kliknie zaktualizowany link, wyświetli się strona zgody z listą wszystkich żądanych zakresów. Gdy użytkownik kliknie „Dalej” lub „Zezwól”, otrzymasz nowy kod autoryzacji, który można wymienić na tokeny obejmujące pełny zestaw zakresów.

    Parametr prompt=consent uwzględniaj tylko w razie potrzeby, np. gdy chcesz uzyskać nowy token odświeżania lub gdy zmieniły się zakresy, o które prosisz.

Biblioteki klienta OAuth2

Listę dostępnych bibliotek klienta OAuth2 używanych do integracji z popularnymi platformami znajdziesz w artykule Używanie OAuth 2.0 na potrzeby dostępu do interfejsów API Google.

Tokeny odświeżania

Aby zachować długoterminowy dostęp do interfejsów API Google bez konieczności ciągłego ponownego uwierzytelniania użytkownika, aplikacja musi używać tokena odświeżania. Szczegółowe informacje o wdrażaniu, w tym konkretne żądania HTTP i wymagane parametry, znajdziesz w dokumentacji platformy tożsamości Google.

Aby wymienić token odświeżania na token dostępu, wyślij wywołanie HTTPS POST do punktu końcowego tokena OAuth 2.0 Google. Poniższy fragment kodu pokazuje przykładowe żądanie i odpowiedź:

Żądanie

curl -L -X POST 'https://oauth2.googleapis.com/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=client-id&client_secret=client-secret&refresh_token=refresh-token&grant_type=refresh_token'

Odpowiedź

{
  "access_token": "access-token",
  "expires_in": 3599,
  "scope": "scope-list",
  "token_type": "Bearer",
  "refresh_token": "refresh-token",
  "refresh_token_expires_in": 112154
}

Działanie tokena podczas testowania

Pamiętaj, jak działają tokeny odświeżania w zależności od stanu publikacji projektu Google Cloud:

  • Tryb testowania: jeśli ekran akceptacji OAuth jest skonfigurowany ze stanem publikacji „Testowanie”, wydane tokeny odświeżania są oparte na czasie i wygasają po 7 dniach. W tym okresie otrzymasz jeden token odświeżania, który pozostanie ważny i będzie można go używać do uzyskiwania nowych tokenów dostępu do momentu wygaśnięcia.
  • Tryb opublikowany: gdy aplikacja zostanie przeniesiona do stanu „W produkcji”, tokeny odświeżania zwykle nie wygasają, chyba że zostaną unieważnione lub pozostaną nieużywane przez dłuższy czas (zwykle 6 miesięcy).

Aby zapewnić użytkownikom wygodę, opublikuj aplikację, zanim zostanie ona przeniesiona do środowiska produkcyjnego. Pozwoli to uniknąć wygaśnięcia tokena po 7 dniach.

Ochrona wszystkich kont (interfejs RISC API)

Włącz udostępnianie i koordynowanie informacji o ryzyku i incydentach (RISC), jeśli chcesz otrzymywać powiadomienia o zmianach w tokenach zdarzeń lub łączeniu kont, np. o odłączonych kontach lub unieważnionych tokenach, aby zwalniać miejsce zajmowane przez zapisane tokeny i aktualizować stan połączenia w interfejsie. Włączenie interfejsu RISC API jest opcjonalne.

Aby włączyć interfejs RISC API w projekcie Google Cloud:

  1. Otwórz stronę RISC API w konsoli Google Cloud. Upewnij się, że wybrany jest projekt, którego używasz w przypadku interfejsu Google Health API.
  2. Przeczytaj Warunki RISC i upewnij się, że rozumiesz wymagania.
  3. Jeśli akceptujesz warunki, kliknij Włącz.

Po włączeniu interfejsu API musisz utworzyć i zarejestrować punkt końcowy HTTPS, aby odbierać i weryfikować tokeny zdarzeń wysyłane przez Google.

Więcej informacji o ochronie obejmującej wiele kont i RISC znajdziesz w artykule Ochrona kont użytkowników za pomocą ochrony obejmującej wiele kont.