Configurer Google Cloud et OAuth

L'accès à l'API Google Health est fourni par Google Cloud. Pour activer l'API et autoriser un compte Google, vous aurez besoin d'un projet Google Cloud.

Que vous soyez un développeur d'API Fitbit existant ou que vous débutiez avec l'API Google Santé, vous devrez effectuer cette étape pour pouvoir appeler l'API.

Créer un projet et un client OAuth

Cliquez sur le bouton Activer l'API et obtenir un ID client OAuth 2.0 pour activer l'API Google Health et obtenir un ID client OAuth 2.0 :

  1. Si vous disposez déjà d'un projet Google Cloud que vous souhaitez utiliser pour l'API Google Health, assurez-vous d'abord d'être connecté au compte administrateur de ce projet. Sélectionnez ensuite le projet existant dans la liste des projets disponibles après avoir cliqué sur le bouton. Sinon, créez un projet.
  2. Sélectionnez Serveur Web lorsque vous êtes invité à indiquer d'où vous appelez.
  3. Saisissez https://www.google.com comme valeur pour URI de redirection autorisés. Un URI de redirection est nécessaire pour obtenir un code d'autorisation à l'aide d'OAuth 2.0.
  4. Une fois la configuration terminée, copiez les valeurs de l'ID client et du code secret du client OAuth 2.0, puis téléchargez le fichier JSON des identifiants sur votre ordinateur local.
Activer l'API et obtenir un ID client OAuth 2.0

Si vous souhaitez configurer manuellement votre projet Google Cloud, ou vérifier la configuration et récupérer à nouveau vos identifiants :

  1. Activez l'API Google Health sur la page Activation des API.
  2. Obtenez un ID client OAuth 2.0 sur la page Identifiants.

Pour en savoir plus sur la configuration d'OAuth 2.0 à l'aide de la console Google, consultez Utiliser OAuth 2.0 pour accéder aux API Google.

Ajouter des utilisateurs de test

Par défaut, les clients OAuth nouvellement créés sont dans un état non validé et sont limités à 100 utilisateurs à des fins de test et de production. Pour activer l'autorisation pendant cette période, vous devez ajouter manuellement l'adresse e-mail de chaque utilisateur à la liste des utilisateurs de test dans la configuration de votre projet.

Mettez à jour la liste des utilisateurs de test sur la page Audience :

  1. Sur cette page, vous devriez voir l'état de publication défini sur Test et le type d'utilisateur défini sur Externe.
  2. Dans la section "Test users" (Utilisateurs de test), cliquez sur + Add users (+ Ajouter des utilisateurs). Saisissez l'adresse e-mail des utilisateurs de test qui doivent être autorisés à accorder à votre application l'autorisation d'accéder à leurs données de santé.
  3. Cliquez sur Enregistrer.

Pour prendre en charge plus de 100 utilisateurs avec l'API Google Health, vous devez effectuer un examen de sécurité par un tiers. Pour en savoir plus, consultez le Centre d'aide sur la validation des applications OAuth.

Ajouter des niveaux d'accès

Vous devez spécifier les niveaux d'accès que votre client est autorisé à appeler sur la page Accès aux données :

  1. Sur cette page, cliquez sur Ajouter ou supprimer des niveaux d'accès.
  2. Dans la colonne "API", recherchez "API Google Health". Sélectionnez les niveaux d'accès dont vous avez besoin pour votre application.
  3. Après avoir sélectionné tous les niveaux d'accès dont vous avez besoin, cliquez sur Mettre à jour pour revenir à la page "Accès aux données".
  4. Cliquez sur Enregistrer.

Avant de sélectionner vos niveaux d'accès, consultez l'implémentation des niveaux d'accès.

Vous avez terminé de configurer votre ID client et devriez maintenant pouvoir effectuer des appels à l'API Google Health.

Mettre à jour les niveaux d'accès

Vous pouvez inviter l'utilisateur à réautoriser votre application en définissant le paramètre "prompt" sur "consent" dans votre demande d'authentification. Lorsque prompt=consent est inclus, l'écran de consentement s'affiche chaque fois que votre application demande l'autorisation des champs d'application d'accès, même si tous les champs d'application ont déjà été accordés à votre projet Google APIs.

Pour ajouter ou modifier des niveaux d'accès à l'aide du paramètre prompt=consent, procédez comme suit :

  1. Identifiez la liste complète des scopes dont votre application a besoin. Cela doit inclure les niveaux d'accès existants et tous ceux que vous devez ajouter.

  2. Modifiez le paramètre "scope" dans l'URL d'autorisation pour inclure la liste mise à jour des valeurs de portée séparées par des espaces.

  3. Ajoutez prompt=consent à vos paramètres d'URI d'authentification. Cela oblige le serveur d'autorisation à demander le consentement de l'utilisateur avant de renvoyer des informations à votre client.

    L'exemple suivant montre une requête HTTPS GET au point de terminaison d'autorisation OAuth 2.0 de Google demandant plusieurs autorisations avec prompt=consent ajouté :

    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. Lorsque l'utilisateur suit le lien mis à jour, une page de consentement listant tous les niveaux d'accès demandés s'affiche. Une fois que l'utilisateur a cliqué sur "Continuer" ou "Autoriser", vous recevrez un nouveau code d'autorisation qui pourra être échangé contre des jetons couvrant l'ensemble des niveaux d'accès.

    N'incluez prompt=consent que lorsque cela est nécessaire, par exemple lorsque vous devez obtenir un nouveau jeton d'actualisation ou lorsque les niveaux d'accès demandés ont changé.

Bibliothèques clientes OAuth2

La liste des bibliothèques clientes OAuth2 disponibles utilisées pour l'intégration aux frameworks populaires est disponible dans Utiliser OAuth 2.0 pour accéder aux API Google.

Jetons d'actualisation

Pour conserver un accès à long terme aux API Google sans nécessiter une réauthentification constante de l'utilisateur, votre application doit utiliser un jeton d'actualisation. Pour obtenir des informations détaillées sur l'implémentation, y compris les requêtes et les paramètres HTTP spécifiques requis, consultez la documentation Google Identity Platform.

Pour échanger un jeton d'actualisation contre un jeton d'accès, effectuez un appel HTTPS POST au point de terminaison de jeton Google OAuth 2.0. L'extrait suivant montre un exemple de requête et de réponse :

Requête

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'

Réponse

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

Comportement des jetons pendant les tests

Tenez compte du comportement des jetons d'actualisation en fonction de l'état de publication de votre projet Google Cloud :

  • Mode test : si l'état de publication de votre écran de consentement OAuth est défini sur "Test", les jetons d'actualisation émis sont basés sur le temps et expirent au bout de sept jours. Pendant cette période, vous recevrez un seul jeton d'actualisation qui restera valide et utilisable pour obtenir de nouveaux jetons d'accès jusqu'à sa date d'expiration.
  • Mode publié : une fois votre application passée à l'état "En production", les jetons d'actualisation n'expirent généralement pas, sauf s'ils sont révoqués ou restent inutilisés pendant une période prolongée (généralement six mois).

Pour une expérience utilisateur fluide, assurez-vous de publier votre application avant de la déplacer dans un environnement de production afin d'éviter l'expiration des jetons au bout de 7 jours.

Protection multicompte (API RISC)

Activez le partage et la coordination des risques et des incidents (RISC) si vous souhaitez être informé des modifications apportées aux jetons d'événement ou à l'association de comptes, comme les comptes dissociés ou les jetons révoqués, afin de nettoyer les jetons stockés et de mettre à jour l'état de connexion de l'UI. L'activation de l'API RISC est facultative.

Pour activer l'API RISC pour votre projet Google Cloud :

  1. Ouvrez la page API RISC dans la console Google Cloud. Assurez-vous que le projet que vous utilisez pour l'API Google Health est sélectionné.
  2. Lisez les Conditions d'utilisation de RISC et assurez-vous de comprendre les exigences.
  3. Cliquez sur Activer si vous acceptez les conditions.

Après avoir activé l'API, vous devez créer et enregistrer un point de terminaison HTTPS pour recevoir et valider les jetons d'événement envoyés par Google.

Pour en savoir plus sur la protection multicompte et RISC, consultez Protéger les comptes utilisateur avec la protection multicompte.