Wykonywanie pierwszego wywołania interfejsu Google Health API za pomocą OAuth2 Playground

1. Wprowadzenie

OAuth 2.0 Playground to narzędzie internetowe, które umożliwia testowanie przepływów Google OAuth 2.0 bez pisania kodu. W tym ćwiczeniu dowiesz się, jak skonfigurować projekt w chmurze Google, uzyskać dane logowania, zainicjować przepływ autoryzacji za pomocą OAuth 2.0 Playground i wykonać pierwsze wywołanie jednego z punktów końcowych Google Health API.

Czego się nauczysz

  • Jak skonfigurować identyfikator klienta w konsoli Google Cloud.
  • Jak przejść przez przepływ autoryzacji Google OAuth 2.0, aby uzyskać token dostępu i token odświeżania za pomocą OAuth 2.0 Playground.
  • Jak wywoływać punkty końcowe Google Health API za pomocą OAuth 2.0 Playground.

Czego potrzebujesz

Aby skonfigurować aplikację mobilną Fitbit:

  1. W Apple App Store lub Sklepie Google Play wyszukaj aplikację mobilną Fitbit i pobierz ją.
  2. Kliknij ikonę aplikacji.
  3. Kliknij Zaloguj się przez Google.
  4. Wybierz swoje konto Google i kliknij przycisk Dalej.

2. Konfigurowanie projektu w chmurze Google

Aby utworzyć identyfikator klienta i włączyć korzystanie z Google Health API, użyj konsoli Google Cloud.

  1. Zaloguj się w konsoli Google Cloud.
  2. Aby utworzyć nowy projekt:
    1. W selektorze projektów kliknij Wybierz projekt.
    2. W prawym górnym rogu kliknij Nowy projekt.
    3. Wpisz Nazwę projektu.
    4. Wpisz Lokalizację (np. „Brak organizacji”).
    5. Kliknij przycisk Utwórz.
    6. Wybierz projekt.

Włączanie Google Health API

  1. W lewym górnym rogu kliknij ikonę menu:menu
  2. Kliknij Interfejsy API i usługi > Biblioteka.
  3. Wyszukaj „Google Health API” i włącz je.

Konfigurowanie danych logowania OAuth

Jeśli nie jesteś w konsoli Google Cloud, otwórz konsolę Google Cloud.

  1. W lewym górnym rogu kliknij ikonę menu:menu
  2. Kliknij Interfejsy API i usługi > Dane logowania.
  3. U góry pośrodku kliknij + Utwórz dane logowania > Identyfikator klienta OAuth.
  4. Kliknij przycisk Skonfiguruj ekran zgody. Jeśli pojawi się komunikat „Platforma uwierzytelniania Google nie została jeszcze skonfigurowana”, kliknij przycisk Rozpocznij.
  5. W sekcji 1:
    1. Wpisz Nazwę aplikacji.
    2. Wpisz Adres e-mail pomocy dla użytkowników.
    3. Kliknij przycisk Dalej.
  6. W sekcji 2:
    1. Kliknij Zewnętrzne.
    2. Kliknij przycisk Dalej.
  7. W sekcji 3:
    1. Wpisz swój adres e-mail w polu Informacje kontaktowe.
    2. Kliknij przycisk Dalej.
  8. W sekcji 4:
    1. Zaznacz pole wyboru, aby zaakceptować Zasady dotyczące danych użytkowników w usługach API Google.
    2. Kliknij przycisk Utwórz.
  9. Otwórz Interfejsy API i usługi > Dane logowania i kliknij + Utwórz dane logowania > Identyfikator klienta OAuth.
  10. Jako typ aplikacji wybierz Aplikacja internetowa.
  11. Wpisz nazwę identyfikatora klienta.
  12. Pozostaw puste pole Autoryzowane źródła JavaScriptu.
  13. W sekcji Autoryzowane identyfikatory URI przekierowania kliknij + Dodaj URI i dodaj te identyfikatory URI:
    • https://www.google.com
    • https://developers.google.com/oauthplayground
  14. Kliknij przycisk Utwórz.
  15. W konsoli Google pojawi się komunikat o utworzeniu identyfikatora klienta. Aby pobrać identyfikator klienta i tajny klucz klienta, kliknij link Pobierz plik JSON lub zapisz te wartości. Nie będzie można później odzyskać tajnego klucza klienta.
  16. Kliknij OK. Wrócisz na stronę „Identyfikatory klientów OAuth 2.0”.
  17. Identyfikator klienta zostanie dodany do projektu. Aby zobaczyć szczegóły, kliknij adres URL identyfikatora klienta.

Dodawanie użytkowników testowych

  1. W panelu po lewej stronie kliknij Odbiorcy. Powinien się wyświetlić "Stan publikowania" ustawiony na Testowanie oraz "Typ użytkownika" ustawiony na Zewnętrzny.
  2. W sekcji „Użytkownicy testowi” kliknij przycisk + Dodaj użytkowników. Wpisz adres e-mail dowolnego użytkownika, którego dane chcesz pobrać.
  3. Kliknij przycisk Zapisz.

Dodawanie zakresów do identyfikatora klienta

  1. W panelu po lewej stronie kliknij Dostęp do danych.
  2. Kliknij przycisk Dodaj lub usuń zakresy.
  3. W kolumnie API wyszukaj „Google Health API”. W tym samouczku używamy zakresu .../auth/googlehealth.activity_and_fitness.readonly.
  4. Po wybraniu zakresu kliknij przycisk Zaktualizuj, aby wrócić na stronę Dostęp do danych.
  5. Kliknij przycisk Zapisz.

Identyfikator klienta został skonfigurowany.

3. Dodawanie danych do aplikacji mobilnej Fitbit

Nowi użytkownicy Fitbita mogą nie mieć na swoim koncie Fitbit danych, o które można by zapytać. Ręcznie dodamy dziennik ćwiczeń, o który możemy zapytać za pomocą jednego z punktów końcowych. Aby ręcznie zarejestrować ćwiczenie:

  1. Otwórz na urządzeniu aplikację mobilną Fitbit. W razie potrzeby zaloguj się na swoje konto Fitbit.
  2. W prawym dolnym rogu ekranu kliknij przycisk +.
  3. W sekcji „Ręczne rejestrowanie” kliknij Aktywność.
  4. Wyszukaj rodzaj ćwiczenia Spacer i wybierz go.
  5. Wpisz czas rozpoczęcia na dziś.
  6. Zmień czas trwania na 15 minut.
  7. Pozostaw dystans 1,6 km.
  8. Kliknij Dodaj.
  9. Zsynchronizuj aplikację mobilną z serwerami Fitbit, naciskając i przytrzymując ekran, a następnie przesuwając palcem w dół. Gdy zwolnisz palec, powinna się rozpocząć synchronizacja aplikacji mobilnej.
  10. W sekcji "Aktywność" powinien się wyświetlić ręcznie zarejestrowany wpis Spacer.Zrzut ekranu przedstawiający aktywność związaną z chodzeniem.

4. Autoryzacja w OAuth 2.0 Playground

Otwórz OAuth 2.0 Playground.

Google Health API wymaga, aby w Playground używać własnych danych logowania OAuth.

  1. W prawym górnym rogu kliknij ikonę koła zębatego Konfiguracja OAuth 2.0.
  2. Kliknij Użyj własnych danych logowania OAuth.
  3. Wpisz Identyfikator klienta OAuth i Tajny klucz klienta OAuth uzyskane podczas konfigurowania projektu w chmurze Google.

Interfejs Playground jest podzielony na 3 główne kroki, które wykonamy:

  1. Wybieranie i autoryzowanie interfejsów API
  2. Wymiana kodu autoryzacji na tokeny
  3. Wysyłanie żądania do interfejsu API

Wybieranie i autoryzowanie interfejsów API

W tym miejscu wybierasz zakresy interfejsu API, o które chcesz poprosić.

  1. W kroku 1 na liście interfejsów API znajdź Google Health API v4 i rozwiń je.
  2. Kliknij https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly. Jeśli potrzebny zakres nie jest widoczny na liście, możesz go wpisać ręcznie w polu „Wpisz własne zakresy”.
  3. Kliknij Autoryzuj interfejsy API.
  4. Żądanie zostanie wysłane do punktu końcowego autoryzacji Google OAuth 2.0. Wybrane zakresy zostaną uwzględnione w żądaniu, a następnie nastąpi przekierowanie na ekran zgody konta Google.
  5. Zaloguj się na konto użytkownika testowego skonfigurowane w sekcji Konfigurowanie projektu Google Cloud (jeśli nie jesteś jeszcze zalogowany(-a)).
  6. Sprawdź wymagane uprawnienia i kliknij Dalej, aby przyznać dostęp.

Gdy wyrazisz zgodę, Google przekieruje Cię z powrotem do Playground i przekaże narzędziu kod autoryzacji, który zostanie użyty w następnym kroku.

W panelu Żądanie / Odpowiedź po prawej stronie wyświetla się pełny przepływ przekierowania HTTP.

Odpowiedź na początkowe żądanie autoryzacji to przekierowanie 302 Found:

HTTP/1.1 302 Found
Location: https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&prompt=consent&response_type=code&client_id=your_client_id&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgooglehealth.activity_and_fitness.readonly&access_type=offline

Wynikowe żądanie przekierowane z powrotem do Playground zawiera kod autoryzacji:

GET /oauthplayground/?iss=https://accounts.google.com&code=authorization_code&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly HTTP/1.1
Host: developers.google.com

Kod autoryzacji to wartość alfanumeryczna reprezentowana przez authorization_code między code= a &scope w adresie URL żądania GET. W tym przykładzie wartość jest podobna do: 4/0AbPOj...

Wymiana kodu autoryzacji na tokeny

W tym kroku kod jest wymieniany na tokeny, które umożliwiają wysyłanie żądań do interfejsu API.

Po wykonaniu czynności opisanych w sekcji Wybieranie i autoryzowanie interfejsów API Playground automatycznie wypełnia pole kodu autoryzacji. Aby wymienić go na tokeny:

  1. W kroku 2 kliknij przycisk Kod autoryzacji wymiany dla tokenów.
  2. W panelu Żądanie/Odpowiedź po prawej stronie pojawią się access_token i refresh_token.

Powinna się wyświetlić odpowiedź podobna do tej:

{
  "access_token": "ya29.a0AFH6S....",
  "refresh_token_expires_in": 604799,
  "expires_in": 3599,
  "token_type": "Bearer",
  "scope": "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly",
  "refresh_token": "1/og..."
}

Informacje o tokenach odświeżania

Gdy wymieniasz kod autoryzacji, odpowiedź może zawierać oprócz access_token także refresh_token. access_token mają krótki okres ważności (zwykle 1 godzina). Gdy access_token wygaśnie, musisz użyć refresh_token, aby uzyskać nowy access_token bez konieczności ponownego logowania się użytkownika lub wyrażania przez niego zgody. Jest to możliwe, ponieważ w żądaniu autoryzacji uwzględniliśmy access_type=offline.

Jeśli w odpowiedzi nie otrzymasz refresh_token, może to być spowodowane tym, że użytkownik wyraził już zgodę na tę aplikację i zakresy. Tokeny odświeżania są zwykle wydawane tylko wtedy, gdy użytkownik po raz pierwszy wyrazi zgodę na Twoją aplikację lub gdy do adresu URL autoryzacji zostanie dodany parametr prompt=consent, aby wymusić wyświetlenie ekranu zgody nawet w przypadku kolejnych autoryzacji.

refresh_token ma długi okres ważności, ale może wygasnąć lub stać się nieważny, jeśli nie będzie używany przez 6 miesięcy, jeśli użytkownik cofnie dostęp do Twojej aplikacji lub z innych powodów. Aby móc używać refresh_token w przyszłości, przechowuj go w bezpiecznym miejscu.

5. Wysyłanie żądania do interfejsu API

Teraz możesz używać tokena dostępu do wysyłania żądań do Google Health API. W kroku 3 w Playground skonfiguruj żądanie HTTP, podając identyfikator URI żądania, metodę HTTP, nagłówki i treść żądania.

  1. Ustaw Metodę HTTP na GET.
  2. Ustaw Identyfikator URI żądania na https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints.
  3. Kliknij Wyślij żądanie.

Odpowiedź powinna wyglądać podobnie do tej:

{
  "dataPoints": [
    {
      "name": "users/2515055256096816351/dataTypes/exercise/dataPoints/8896720705097069096",
      "dataSource": {
        "recordingMethod": "MANUAL",
        "platform": "FITBIT"
      },
      "exercise": {
        "interval": {
          "startTime": "2026-02-23T13:10:00Z",
          "startUtcOffset": "-18000s",
          "endTime": "2026-02-23T13:25:00Z",
          "endUtcOffset": "-18000s"
        },
        "exerciseType": "WALKING",
        "metricsSummary": {
          "caloriesKcal": 16,
          "distanceMillimiters": 1609344,
          "steps": "2038",
          "averagePaceSecondsPerMeter": 0.55923407301360051,
          "activeZoneMinutes": "0"
        },
        "exerciseMetadata": {},
        "displayName": "Walk",
        "activeDuration": "900s",
        "exerciseEvents": [
          {
            "eventTime": "2026-02-23T13:10:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "START"
          },
          {
            "eventTime": "2026-02-23T13:25:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "STOP"
          }
        ],
        "updateTime": "2026-02-24T01:19:22.450466Z"
      }
    },
    {
      "name": "users/2515055256096816351/dataTypes/exercise/dataPoints/5870930690409355408",
      "dataSource": {
        "recordingMethod": "MANUAL",
        "platform": "FITBIT"
      },
      "exercise": {
        "interval": {
          "startTime": "2026-02-23T06:00:00Z",
          "startUtcOffset": "-18000s",
          "endTime": "2026-02-23T06:15:00Z",
          "endUtcOffset": "-18000s"
        },
        "exerciseType": "WALKING",
        "metricsSummary": {
          "caloriesKcal": 17,
          "distanceMillimiters": 1609344,
          "steps": "2038",
          "averagePaceSecondsPerMeter": 0.55923407301360051,
          "averageHeartRateBeatsPerMinute": "81",
          "activeZoneMinutes": "0",
          "heartRateZoneDurations": {
            "lightTime": "900s"
          }
        },
        "exerciseMetadata": {},
        "displayName": "Walk",
        "activeDuration": "900s",
        "exerciseEvents": [
          {
            "eventTime": "2026-02-23T06:00:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "START"
          },
          {
            "eventTime": "2026-02-23T06:15:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "STOP"
          }
        ],
        "updateTime": "2026-02-23T08:29:39.480437Z"
      }
    }
  ],
  "nextPageToken": ""
}

Wiele punktów końcowych obsługuje parametry zapytania do filtrowania lub podziału na strony. Aby na przykład wyświetlić listę ćwiczeń w określonym przedziale czasu, zmień identyfikator URI żądania, aby uwzględnić parametr filtra:

https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"

Aby zobaczyć przefiltrowane wyniki, ponownie kliknij Wyślij żądanie.

6. Gratulacje

Gratulacje!

Ukończono podstawowy samouczek i udało się nauczyć, jak używać OAuth2 Playground do testowania autoryzacji OAuth 2.0 i wywoływania punktów końcowych Google Health API.

Mamy nadzieję, że tworzenie aplikacji zintegrowanych z ekosystemem Google Health API będzie dla Ciebie przyjemne. Więcej informacji znajdziesz w dokumentacji referencyjnej, w której opisano inne punkty końcowe Google Health API, oraz w artykule o Google OAuth 2.0 w internetowych aplikacjach serwerowych.