1. Introduction
Visual Studio Code (VS Code) et l'extension Rest Client de Huachao Mao peuvent vous permettre de tester le flux de consentement Google OAuth et l'API Google Health. Cet atelier de programmation vous explique comment configurer l'extension Rest Client, comment lancer le flux d'autorisation et comment effectuer votre premier appel à l'un des points de terminaison de l'API Google Health. Ensuite, vous pouvez lire la documentation Rest Client et la documentation Fitbit pour construire les autres points de terminaison de votre projet HTTP.
Si vous ne souhaitez pas utiliser VS Code et Rest Client, vous pouvez effectuer les appels d'API avec des commandes curl.
Points abordés
- Configurer VS Code avec l'extension Rest Client
- Configurer un ID client dans la console Google Cloud
- Comment suivre le flux d'autorisation Google OAuth 2.0 pour obtenir un jeton d'accès et un jeton d'actualisation.
- Découvrez comment effectuer des appels aux points de terminaison de l'API Google Health à l'aide d'un client REST.
Prérequis
- Application mobile Fitbit
- Visual Studio Code
- Extension Rest Client de Huacho Mao.
Pour configurer l'application mobile Fitbit :
- Recherchez l'application mobile Fitbit sur l'App Store d'Apple ou le Google Play Store, puis téléchargez-la.
- Sélectionnez l'icône de l'application.
- Cliquez sur Se connecter avec Google.
- Sélectionnez votre compte Google, puis appuyez sur le bouton Continuer.
Pour installer les outils Visual Studio :
- Téléchargez VS Code. En général, le téléchargement contient l'exécutable.
- Démarrez VS Code.
- Installez l'extension Rest Client de Huachao Mao.
- Cliquez sur l'icône d'extension
sur la gauche de l'IDE. - Recherchez REST Client by Huachao Mao, puis cliquez sur Install (Installer).
- Cliquez sur l'icône d'extension
2. Configurer un projet Google Cloud
Vous utiliserez la console Google Cloud pour créer un ID client et activer l'utilisation de l'API Google Health.
- Connectez-vous à la console Google Cloud.
- Pour créer un projet :
- Cliquez sur Sélectionner un projet dans le sélecteur de projet.
- En haut à droite, sélectionnez Nouveau projet.
- Saisissez le nom du projet.
- Saisissez votre emplacement (par exemple, "Aucune organisation").
- Cliquez sur le bouton Créer.
- Sélectionnez votre projet.
Activer l'API Google Health
- En haut à gauche, cliquez sur l'icône de menu :

- Sélectionnez APIs & Services > Library (API et services > Bibliothèque).
- Recherchez "API Google Health" et activez-la.
Configurer vos identifiants OAuth
Si vous n'êtes pas dans la console Google Cloud, accédez à la console Google Cloud.
- En haut à gauche, cliquez sur l'icône de menu :

- Sélectionnez API et services > Identifiants.
- En haut au centre, sélectionnez + Créer des identifiants > ID client OAuth.
- Cliquez sur le bouton Configurer l'écran d'autorisation. Si le message "Google Auth Platform pas encore configuré" s'affiche, cliquez sur le bouton Premiers pas.
- Dans la section 1 :
- Saisissez le nom de l'application.
- Saisissez l'adresse e-mail d'assistance utilisateur.
- Cliquez sur le bouton Suivant.
- Dans la section 2 :
- Sélectionnez Externe.
- Cliquez sur le bouton Suivant.
- Dans la section 3 :
- Saisissez votre adresse e-mail dans le champ Coordonnées.
- Cliquez sur le bouton Suivant.
- Dans la section 4 :
- Cochez la case pour accepter le Règlement sur les données utilisateur dans les services d'API Google.
- Cliquez sur le bouton Créer.
- Dans la section "Métriques", appuyez sur le bouton Créer un client OAuth.
- Sélectionnez le type d'application Application Web.
- Saisissez le nom de l'ID client.
- Laissez le champ Origines JavaScript autorisées vide.
- Sous URI de redirection autorisés, cliquez sur le bouton + Ajouter un URI. Saisissez "https://www.google.com" comme URI de redirection.
- Cliquez sur le bouton Créer.
- La console Google affichera un message indiquant que votre ID client a été créé. Cliquez sur le lien Télécharger au format JSON pour télécharger l'ID client et le code secret du client, ou notez les valeurs. Vous ne pourrez pas récupérer le secret de votre client par la suite.
- Cliquez sur OK. Vous serez redirigé vers la page "OAuth 2.0 Client IDs" (ID client OAuth 2.0).
- Votre ID client sera ajouté à votre projet. Cliquez sur l'URL de l'ID client pour afficher les détails.
Ajouter des utilisateurs de test
- Dans le volet de gauche, sélectionnez Audience. L'état de publication doit être défini sur Test et le type d'utilisateur sur Externe.
- Dans la section "Test users" (Utilisateurs de test), cliquez sur le bouton + Add users (+ Ajouter des utilisateurs). Saisissez l'adresse e-mail de tout utilisateur dont vous souhaitez récupérer les données.
- Cliquez sur le bouton Enregistrer.
Ajouter des champs d'application à l'ID client
- Dans le volet de gauche, sélectionnez Accès aux données.
- Cliquez sur le bouton Ajouter ou supprimer des champs d'application.
- Dans la colonne "API", recherchez "API Google Health". Pour cet atelier de programmation, nous utilisons le champ d'application
.../auth/googlehealth.activity_and_fitness.readonly. - Après avoir sélectionné le champ d'application, appuyez sur le bouton Mettre à jour pour revenir à la page "Accès aux données".
- Cliquez sur le bouton Enregistrer.
Vous avez terminé de configurer votre ID client.
3. Créer le flux d'autorisation
- Ouvrez l'application VS Code sur votre ordinateur.
- Sur l'écran d'accueil, sélectionnez Open (Ouvrir).
- Sélectionnez un dossier pour créer ce projet, puis cliquez sur Ouvrir. L'écran qui s'affiche ressemble en principe à ce qui suit, avec le nom de votre dossier ou projet dans l'explorateur.

- Dans le menu principal, sélectionnez File > New Text file (Fichier > Nouveau fichier texte).
- Enregistrez le fichier pour lui donner un nom. Dans le menu principal, sélectionnez File > Save As > Codelab.http (Fichier > Enregistrer sous > Codelab.http). Le fichier devrait alors être placé dans votre projet. L'extension du fichier doit être .http ou .rest. Pour cet atelier de programmation, nous utilisons .http.
Tout au long de ce projet, nous utiliserons plusieurs valeurs à plusieurs reprises. Ces valeurs sont les suivantes :
| Valeur de l'ID client provenant de la console Google. |
| Valeur du code secret du client provenant de la console Google. |
| Point de terminaison de votre application qui traite le code d'autorisation. Pour cet atelier de programmation, nous utilisons https://www.google.com. |
| Jeton d'accès créé pour l'utilisateur une fois le parcours de consentement terminé. |
| Jeton d'actualisation créé pour l'utilisateur une fois le processus de consentement terminé. |
Ajoutez le code suivant, qui définit les variables utilisées avec ce projet. Ils doivent se trouver en haut du fichier Codelab.http. Renseignez les valeurs pour client_id et secret.
### File Variables for the Codelab
@client_id =
@secret =
@redirect_uri = https://www.google.com
@accessToken={{user.response.body.access_token}}
@refreshToken={{user.response.body.refresh_token}}
L'URL d'autorisation, utilisée pour lancer le flux de consentement, sera envoyée à chaque utilisateur dont vous souhaitez accéder aux données. Pour créer l'URL d'autorisation, nous devons connaître le point de terminaison Google OAuth et utiliser les paramètres de requête pour spécifier l'ID client, les champs d'application auxquels nous souhaitons accéder et l'endroit où rediriger l'utilisateur lorsqu'il accepte les champs d'application. La documentation complète sur la création de la chaîne d'autorisation Google est disponible dans la documentation.
Le point de terminaison OAuth 2.0 de Google se trouve à l'adresse https://accounts.google.com/o/oauth2/v2/auth. Ce point de terminaison n'est accessible que via HTTPS. Les connexions HTTP simples sont refusées.
Le serveur d'autorisation Google est compatible avec de nombreux paramètres de chaîne de requête permettant aux applications de serveur Web de personnaliser le flux d'autorisation. Nous utiliserons les paramètres de requête obligatoires suivants : client_id, redirect_uri, response_type et scope. La documentation fournit la liste de tous les paramètres de requête et leur description.
Les valeurs des paramètres de requête sont les suivantes :
| Valeur de l'ID client provenant de la console Google |
| Point de terminaison de votre application qui traite le code d'autorisation. Pour l'atelier de programmation, utilisez https://www.google.com. |
|
|
| Les niveaux d'accès proviennent de la console Google et utilisent la syntaxe https://www.googleapis.com suivie du nom du niveau d'accès. Par exemple, https://www.googleapis.com/auth/googlehealth.activity_and_fitness. |
Après les variables, écrivez notre URL d'autorisation comme indiqué. Les paramètres définis en haut du projet ne peuvent pas être utilisés dans la chaîne d'autorisation. Nous devons donc inclure les valeurs pour client_id et redirect_uri. Remplacez la chaîne client-id par votre ID client.
### Google Health API Rest Client Example
### Authorization String
https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
Lorsqu'un utilisateur donne son consentement, Google fournit un code d'autorisation que vous échangez contre un jeton d'accès en appelant le point de terminaison de jeton de Google. Ajoutez la définition suivante pour appeler le point de terminaison du jeton à Codelab.http sous la chaîne d'autorisation. Vous remplacerez authorization-code par un code d'autorisation à l'étape suivante.
### AUTHORIZATION ENDPOINTS
######################################################################
# @name user
POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded
code=authorization-code&client_id={{clientId}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code
@name user fait référence à l'utilisateur actuel dont vous consultez les données.
4. Autoriser un compte et obtenir des jetons
Nous allons maintenant parcourir le flux d'autorisation pour obtenir des jetons d'autorisation.
La chaîne d'autorisation dans Codelab.http est utilisée pour lancer le processus de consentement basé sur navigateur de Google. L'extension Rest Client peut afficher un lien Send Request (Envoyer la requête) pour cette URL. N'utilisez pas Envoyer la demande pour cette URL spécifique. Copiez-le et collez-le plutôt dans votre navigateur, ou utilisez Ctrl+clic (Windows/Linux) ou Cmd+clic (Mac) dans VS Code pour l'ouvrir dans votre navigateur par défaut.
https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
- Vous serez invité à vous connecter à votre compte Google. Vous devez vous connecter à l'aide de l'un des comptes utilisateur test que vous avez configurés dans la section Ajouter des utilisateurs test.
- Un message peut s'afficher pour vous indiquer que l'application n'est pas validée. En effet, l'application n'a pas été publiée. Appuyez sur "Continuer".

- La page de consentement liste les niveaux d'accès demandés. L'utilisateur a la possibilité de sélectionner les niveaux d'accès qu'il souhaite partager avec cette application. Cliquez sur "Continuer".
Après avoir accepté de partager les champs d'application demandés, vous êtes redirigé vers le redirect_uri que vous avez spécifié (dans cet atelier de programmation, https://www.google.com). L'application Google ajoute un code d'autorisation et d'autres paramètres à redirect_uri. L'URL dans la barre d'adresse de votre navigateur devrait donc ressembler à ceci :
https://www.google.com/?code=4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
Le code d'autorisation est la valeur alphanumérique située entre "code=" et "&scope". Dans l'exemple ci-dessus, la valeur est la suivante :
4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw
Dans une application de production, votre serveur analyserait ces informations à partir des paramètres d'URL. Pour cet atelier de programmation, copiez le code d'autorisation à partir de l'URL dans votre navigateur.
Échangez maintenant ce code d'autorisation contre un access_token et un refresh_token. Dans Codelab.http, remplacez authorization-code dans le corps de la requête POST /token par le code d'autorisation que vous avez copié.
POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded
code=authorization-code&client_id={{client_id}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code
Cliquez sur le lien Envoyer une demande juste au-dessus de la ligne POST https://oauth2.googleapis.com/token.
La réponse doit ressembler à ceci :
{
"access_token": "ya29.a0ATi6K2uasci7FyyIClNLtQou6z...",
"expires_in": 3599,
"refresh_token": "1//05EuqYpEXjJCHCgYIA...",
"scope": "https://www.googleapis.com/auth/googlehealth.activity_and_fitness",
"token_type": "Bearer",
"refresh_token_expires_in": 604799
}
Lorsque vous recevez cette réponse, Rest Client remplit automatiquement les variables @accessToken et @refreshToken définies en haut de Codelab.http pour une utilisation dans les requêtes suivantes.
À propos des jetons d'actualisation
Lorsque vous échangez le code d'autorisation, la réponse peut inclure un refresh_token en plus du access_token. Les access_token sont éphémères (généralement une heure). Lorsqu'un access_token expire, vous devez utiliser le refresh_token pour obtenir un nouveau access_token sans demander à l'utilisateur de se connecter ni de donner à nouveau son consentement. Cela est possible, car nous avons inclus access_type=offline dans notre demande d'autorisation.
Si vous ne recevez pas de refresh_token dans la réponse, cela peut être dû au fait que vous avez déjà accordé votre consentement pour cette application et ces autorisations. Les jetons d'actualisation ne sont généralement émis que la première fois qu'un utilisateur autorise votre application, ou lorsque prompt=consent est ajouté à l'URL d'autorisation pour forcer l'affichage de l'écran d'autorisation même lors des autorisations ultérieures.
Le refresh_token est de longue durée, mais il peut expirer ou devenir non valide s'il n'est pas utilisé pendant six mois, si l'utilisateur révoque l'accès à votre application ou pour d'autres raisons. Vous devez stocker refresh_token de manière sécurisée pour une utilisation ultérieure.
Pour en savoir plus, consultez Actualiser un jeton d'accès (accès hors connexion).
5. Ajouter des données à l'application mobile Fitbit
Si vous êtes un nouvel utilisateur de Fitbit, il est possible que vous n'ayez pas de données dans votre compte Fitbit à interroger. Nous allons ajouter manuellement un journal d'exercices que nous pourrons interroger via l'un des points de terminaison. Pour enregistrer manuellement un exercice, procédez comme suit :
- Ouvrez l'application mobile Fitbit sur votre appareil. Si nécessaire, connectez-vous à votre compte Fitbit.
- En bas à droite de l'écran, appuyez sur le bouton +.
- Dans la section "Enregistrer manuellement", appuyez sur Activité.
- Recherchez le type d'exercice Marche et sélectionnez-le.
- Saisissez une heure de début pour aujourd'hui.
- Définissez la durée sur 15 minutes.
- Laissez la distance sur 1,6 km.
- Appuyez sur Ajouter.
- Synchronisez l'application mobile avec les serveurs Fitbit en appuyant de manière prolongée sur l'écran et en le faisant glisser vers le bas. Lorsque vous relâchez votre doigt, la synchronisation de l'application mobile devrait s'afficher.
- Dans la section "Activité", vous devriez voir l'entrée de marche enregistrée manuellement.

6. Récupérer des données à l'aide de la méthode "list"
Pour appeler la méthode list, ajoutez le code suivant à Codelab.http, juste en dessous du point de terminaison /token.
### users.dataTypes.dataPoints
#####################################################
### LIST exercise
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints
Authorization: Bearer {{accessToken}}
Accept: application/json
Ce code appelle le point de terminaison list pour afficher les pas enregistrés par l'utilisateur dans son compte Fitbit. Le nombre de pas pour chaque minute sera renvoyé dans la réponse, comme pour le point de terminaison "Activité intraday" de l'API Web Fitbit v1.
Pour exécuter l'appel, cliquez sur le lien Send Request (Envoyer la requête) pour le point de terminaison GET. Votre réponse doit ressembler à ceci :
{
"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": ""
}
De nombreux points de terminaison acceptent les paramètres de requête pour le filtrage ou la pagination. Par exemple, l'exercice est compatible avec le filtre interval.civil_start_time. Ajoutez la requête suivante à Codelab.http pour lister les exercices dans une plage de temps spécifique :
### LIST exercise >= civil start time
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"
Authorization: Bearer {{accessToken}}
Accept: application/json
7. Félicitations
Félicitations !
Vous avez terminé l'atelier de programmation de base et avez appris à utiliser Visual Studio Code et l'extension Rest Client pour tester l'autorisation OAuth 2.0 et effectuer des appels aux points de terminaison de l'API Google Health. Vous pouvez ensuite ajouter les points de terminaison supplémentaires comme vous l'avez fait au début de la section Récupérer des données à l'aide de la méthode List.
Nous espérons que vous apprécierez de créer des applications qui s'intègrent à l'écosystème de l'API Google Health. Pour en savoir plus, explorez les autres points de terminaison de l'API Google Health dans la documentation de référence et découvrez Google OAuth 2.0 pour les applications de serveur Web.