FITsociety Help FR

Connecter InBody à FITsociety

14 min de lecture

Cet article explique complètement l’intégration aux équipes d’assistance, d’implémentation et aux clients souhaitant connecter InBody à FITsociety via LookinBody Web/LB Web. Ne publiez cet article qu’une fois l’intégration rendue visible au groupe de clients concerné.

Résumé

L’intégration InBody permet à FITsociety de récupérer les mesures corporelles d’un appareil InBody et de les enregistrer pour le bon membre. Elle n’utilise pas OAuth : aucun bouton « se connecter avec InBody » ne permet donc au membre de donner lui-même son accord. Un compte InBody/LB Web est connecté par entreprise avec :

  • un nom de compte/identifiant de compte InBody ;

  • une clé API InBody ;

  • une URL de webhook FITsociety fixe ;

  • un secret de webhook ;

  • une liste d’adresses IP autorisées chez InBody pour nos appels API sortants.

Après l’installation, FITsociety peut :

  • associer automatiquement les membres aux utilisateurs InBody grâce au numéro de téléphone, avec vérification supplémentaire de l’e-mail et de la date de naissance si InBody les fournit ;

  • traiter automatiquement les nouvelles mesures lorsqu’InBody envoie un webhook ;

  • récupérer toutes les mesures InBody existantes des membres associés ;

  • enregistrer poids, BMI, pourcentage de graisse, masse grasse, masse musculaire, eau corporelle totale et BMR dans les mesures FITsociety existantes ;

  • enregistrer un résultat PDF pour le membre si InBody inclut une URL PDF ou un PDF base64 dans la réponse API.

Important : la documentation API actuelle d’InBody ne présente aucun endpoint PDF/report distinct. Les PDF peuvent être enregistrés automatiquement uniquement si InBody les inclut dans la réponse des données de mesure.

À qui s’adresse cette intégration ?

Elle s’adresse aux entreprises disposant de leur propre compte InBody/LB Web et souhaitant retrouver les mesures InBody sous le bon membre dans FITsociety.

L’intégration est propre à chaque entreprise. Chacune possède son installation, sa clé API/configuration de compte et son URL de webhook. Les données restent ainsi séparées.

Que faut-il avant la connexion ?

Préparez les éléments suivants avant d’activer l’intégration.

Élément requis

Explication

Compte InBody/LB Web

Le nom de compte/identifiant du client dans LookinBody Web.

Clé API InBody

Clé API créée par InBody ou dans LB Web.

Accès API InBody

Le compte doit pouvoir accéder aux endpoints Web API.

Liste d’IP autorisées chez InBody

InBody accepte uniquement les appels API provenant d’adresses IP enregistrées.

Réglage du webhook dans InBody

L’URL de webhook FITsociety doit être configurée dans LB Web/InBody.

Membres avec numéro de téléphone

FITsociety utilise les numéros de téléphone pour l’association automatique.

De préférence, e-mail et date de naissance

Si InBody les fournit, FITsociety les vérifie pour éviter les associations incorrectes.

Liste d’IP autorisées

D’après sa réponse, InBody ne prend pas en charge les autorisations fondées sur un nom d’hôte. api.fitsociety.io ne peut donc pas être autorisé comme nom d’hôte pour les appels API sortants.

Pour InBody, l’adresse IP sortante fixe de FITsociety doit être autorisée :

3.123.63.205/32

Où configurer InBody dans FITsociety ?

Dans FITsociety, accédez à :

Bedrijfsinstellingen > Plugins / Integraties > InBody

Chemin direct :

/company/settings/plugins/inbody

La page s’appelle Configurer InBody et contient les champs et boutons présentés ci-dessous.

Champs de la page de paramètres InBody

Compte

Saisissez le nom ou l’identifiant du compte InBody/LB Web.

Exemples :

<inbody-accountnaam><lbweb-account-id>

Utilisez exactement le nom fourni par InBody. Si ce champ est incorrect, FITsociety ne peut pas appeler l’API InBody.

Clé API

Saisissez ici la clé API InBody.

La clé API est stockée chiffrée. Après l’enregistrement, elle n’est plus affichée dans l’interface. Pour la remplacer, saisissez une nouvelle clé et cliquez à nouveau sur Enregistrer la configuration.

URL de base de l’API

Normalement, elle est définie sur :

https://eur.developers.lookinbody.com

Pour la sandbox/les tests :

https://eur.developers.lookinbody.com/sandbox

Pour un client réel, utilisez normalement l’URL de production.

Environnement

Choisissez :

  • Live pour les données réelles ;

  • Test pour les données de sandbox/test.

Attention : le mode sandbox InBody peut renvoyer des données de démonstration sur certains endpoints de lecture, mais certaines actions create/update/delete peuvent tout de même modifier les données LB Web réelles. Utilisez le mode test en connaissance de cause.

Boutons de la page de paramètres InBody

Enregistrer la configuration

Ce bouton enregistre la configuration InBody :

  • identifiant du compte ;

  • clé API ;

  • URL de base de l’API ;

  • environnement ;

  • données d’installation ;

  • secret de webhook s’il n’existe pas encore.

Après l’enregistrement, FITsociety crée une URL et un secret de webhook propres à l’entreprise. Le secret est affiché uniquement juste après sa création ou son renouvellement. Copiez-le immédiatement dans les paramètres du webhook InBody.

Renouveler le secret du webhook

Utilisez ce bouton uniquement pour remplacer le secret existant.

Après renouvellement, l’ancien secret ne fonctionne plus. Mettez également à jour le webhook InBody avec le nouveau secret.

Associer automatiquement les membres

Ce bouton tente d’associer automatiquement les membres FITsociety aux utilisateurs InBody.

FITsociety utilise le numéro du membre pour interroger InBody via l’endpoint officiel :

POST /User/GetUser

Plusieurs formats du numéro sont essayés. Par exemple :

062436680562436680531624366805+31624366805310624366805+310624366805003162436680500310624366805

L’association automatique a lieu uniquement si la correspondance est sûre et unique :

  • un numéro de téléphone est disponible ;

  • ce numéro n’appartient pas à plusieurs membres locaux ;

  • InBody renvoie exactement un utilisateur ;

  • si InBody renvoie un e-mail, il doit correspondre à celui de FITsociety ;

  • si InBody renvoie une date de naissance, elle doit correspondre à celle de FITsociety.

En cas de doute, le membre n’est pas associé automatiquement. L’assistance ou le coach doit vérifier.

Récupérer toutes les mesures

Ce bouton récupère toutes les mesures InBody disponibles des membres associés.

Déroulement technique :

  1. À l’échelle de l’entreprise, FITsociety tente d’abord d’associer automatiquement les membres.

  2. Tous les utilisateurs InBody associés sont ensuite traités.

  3. Pour chaque utilisateur, FITsociety récupère tous les horodatages InBody disponibles via :

POST /InBody/GetDatetimesByID

  1. Pour chaque horodatage, FITsociety récupère les données de mesure complètes via :

POST /InBody/GetFullInBodyDataByID

  1. FITsociety convertit l’horodatage InBody en instant de mesure UTC.

  2. FITsociety associe les valeurs aux types de mesures existants.

  3. FITsociety enregistre les mesures pour le membre.

  4. Si la réponse contient un PDF, il est enregistré dans les documents du membre.

Ce bouton ne crée pas de doublons. Les mesures InBody existantes sont insérées ou mises à jour selon :

  • l’entreprise ;

  • le membre ;

  • le type de mesure ;

  • l’instant de mesure ;

  • la source inbody.

Si un import précédent était incomplet, une nouvelle synchronisation complète peut compléter ou actualiser les valeurs sans créer de lignes en double.

Configurer le webhook dans InBody/LB Web

InBody doit envoyer un webhook à FITsociety après chaque mesure. Ce webhook sert uniquement de déclencheur. Son contenu n’est pas considéré comme la mesure définitive : FITsociety l’utilise pour appeler ensuite l’API officielle InBody.

Webhook Name

Utilisez un nom clair, par exemple :

FITsociety - <bedrijfsnaam>

Webhook URL

Utilisez l’URL affichée par FITsociety dans les paramètres InBody.

Sans secret dans la requête, elle ressemble à ceci :

https://api.fitsociety.io/public/v1/webhooks/inbody/<installatiesleutel>

Si InBody ne prend pas en charge les en-têtes personnalisés, utilisez l’URL contenant le secret :

https://api.fitsociety.io/public/v1/webhooks/inbody/<installatiesleutel>?secret=<webhook-secret>

Utilisez toujours l’URL fournie par FITsociety. Ne recopiez pas manuellement la clé d’installation si ce n’est pas nécessaire.

Custom Header

Si InBody accepte les en-têtes personnalisés, préférez un secret dans l’en-tête plutôt que dans la requête.

Header name:

x-fitsociety-inbody-secret

Header value:

<webhook-secret>

Le secret provient de FITsociety et n’est affiché qu’après l’enregistrement de la configuration ou le renouvellement du secret.

Que se passe-t-il après une nouvelle mesure InBody ?

  1. Le membre monte sur l’appareil InBody.

  2. Il saisit son numéro de téléphone ou son identifiant InBody selon la configuration du compte.

  3. InBody traite la mesure dans LB Web.

  4. InBody envoie un webhook à FITsociety.

  5. FITsociety vérifie la clé d’installation et le secret du webhook.

  6. FITsociety renvoie immédiatement 202 Accepted à InBody.

  7. En arrière-plan, FITsociety récupère les mesures via l’API InBody.

  8. Si le webhook contient userID et datetimes FITsociety importe précisément cette mesure.

  9. Sans horodatage précis dans le webhook, FITsociety vérifie les mesures du jour pour les membres associés.

  10. FITsociety enregistre les valeurs dans les mesures de progression du membre.

  11. Les mesures apparaissent dans le profil sous progression/mesures, si le type est activé pour ce membre. Les nouveaux types de mesures InBody importés sont ajoutés automatiquement aux paramètres du membre.

Quelles valeurs récupérons-nous ?

FITsociety récupère les valeurs présentes dans la réponse full-data d’InBody lorsqu’un type de mesure correspondant existe.

Valeur InBody

Type de mesure FITsociety

Unité

Weight

Poids

kg

BMI / BMI(BodyMassIndex)

BMI

aucune

PBF / PBF(PercentBodyFat)

Pourcentage de graisse

%

BFM / BFM(BodyFatMass)

Masse grasse

kg

VFL / VFL(VisceralFatLevel)

Graisse viscérale

valeur du fournisseur

FFM / FFM(FatFreeMass)

Masse maigre / lean body mass

kg

SMM / SMM(SkeletalMuscleMass)

Masse musculaire / masse musculaire squelettique

kg

TBW / TBW(TotalBodyWater)

Eau corporelle totale

kg

Protein

Masse protéique

kg

Minerals

Contenu minéral

kg

BMR / BMR(BasalMetabolicRate)

Métabolisme de base

kcal

BodyAge / metabolicAge

Âge métabolique

années

Tous les appareils ou comptes InBody ne renvoient pas toutes les valeurs. FITsociety ne peut pas enregistrer une valeur qu’InBody ne fournit pas.

Où les mesures sont-elles enregistrées ?

Les valeurs sont enregistrées comme des mesures FITsociety ordinaires pour le membre.

La source des mesures est :

inbody

La note de la mesure est :

Imported from InBody

Les mesures apparaissent ensuite dans la vue de progression du membre, comme les autres valeurs.

Comment fonctionne l’association des membres ?

FITsociety conserve pour chaque membre une association externe InBody composée de l’identifiant InBody userID.

L’association automatique fonctionne ainsi :

  1. FITsociety examine tous les membres de l’entreprise.

  2. Des variantes du numéro sont créées pour chaque membre.

  3. FITsociety recherche l’utilisateur dans InBody avec chaque variante.

  4. Si un seul utilisateur correspond, ce candidat est vérifié.

  5. Si l’e-mail ou la date de naissance diffère, aucune association n’est créée.

  6. En cas de correspondance sûre, l’identifiant InBody userID est enregistré pour le membre.

Aucune association automatique n’est créée dans les cas suivants :

  • aucun numéro de téléphone ;

  • plusieurs membres locaux avec le même numéro ;

  • plusieurs utilisateurs InBody pour le même numéro ;

  • e-mail différent ;

  • date de naissance différente ;

  • aucun utilisateur InBody trouvé.

Et si les membres sont déjà associés ?

Une association InBody active est conservée. Le membre est compté comme déjà associé et son association n’est pas simplement écrasée.

Une association manuelle ou technique peut toutefois être réenregistrée si l’assistance modifie volontairement l’identifiant utilisateur InBody.

Que se passe-t-il si les mesures existent déjà ?

FITsociety ne crée pas de doublons InBody pour le même type et le même instant de mesure.

Lors d’un nouvel import, FITsociety utilise une opération upsert :

  • si la mesure n’existe pas, elle est créée ;

  • si elle existe, la ligne est actualisée ;

  • les types de mesures manquants peuvent être ajoutés ;

  • un PDF peut être associé ultérieurement si InBody le rend disponible.

Cela est important pour les imports historiques et les corrections.

PDF des mesures InBody

Ce n’est malheureusement pas possible actuellement. Nous avons transmis une demande à inBody. Pour partager ces résultats avec vos membres, vous pouvez les ajouter manuellement dans les documents. Vous pouvez aussi demander à inBody si cette fonction sera prise en charge un jour.

Que ne fait pas l’intégration ?

L’intégration InBody actuelle ne propose pas :

  • de parcours OAuth où les membres se connectent eux-mêmes via InBody ;

  • d’enregistrement automatique de FITsociety comme Connected App dans LB Web ;

  • de configuration automatique du webhook dans InBody ;

  • de garantie de disponibilité des PDF tant qu’InBody ne les inclut pas dans la réponse API ;

  • de synchronisation des paiements ou abonnements ;

  • de partage de données entre entreprises FITsociety.

Sécurité et séparation des données

L’intégration est séparée par entreprise :

  • chaque entreprise possède son installation InBody ;

  • chaque installation possède sa clé ;

  • chaque installation possède son secret de webhook ;

  • les clés API sont stockées chiffrées ;

  • les secrets de webhook sont stockés sous forme de hachage ;

  • les données de mesure sont enregistrées avec les bons identifiants companyId et clientId;

  • les imports sont journalisés séparément par entreprise, installation, utilisateur InBody et horodatage.

Les erreurs de traitement des webhooks ou imports sont signalées à Sentry sans clés API brutes, secrets de webhook ni en-têtes d’autorisation.

Problèmes fréquents

L’intégration InBody n’est pas visible

Elle peut être privée/en pilote. Vérifiez que l’entreprise est autorisée à utiliser le fournisseur InBody et que l’intégration figure dans la liste des plugins.

InBody affiche « Connection failed » lors du test du webhook

Vérifiez :

  • l’URL correspond-elle exactement à celle affichée par FITsociety ?

  • le client utilise-t-il https://api.fitsociety.io/... plutôt que l’URL du backend Elastic Beanstalk ?

  • le secret du webhook est-il correct ?

  • InBody accepte-t-il les en-têtes personnalisés ? Sinon, utilisez l’URL avec ?secret=<webhook-secret>;

  • le secret a-t-il été renouvelé sans mise à jour dans InBody ?

  • InBody ou une couche réseau bloque-t-il le test sortant ?

Attention : la liste d’IP autorisées concerne nos appels sortants vers InBody. Le webhook d’InBody vers FITsociety utilise l’URL du webhook.

Aucun membre n’est associé

Causes possibles :

  • les membres n’ont pas de numéro dans FITsociety ;

  • les numéros sont incorrects ou en double ;

  • InBody utilise un autre numéro/jeton utilisateur ;

  • InBody ne renvoie aucun utilisateur via /User/GetUser;

  • l’e-mail ou la date de naissance diffère.

Aucune mesure n’est récupérée

Vérifiez :

  • la configuration InBody est-elle enregistrée ?

  • la clé API est-elle correcte ?

  • l’identifiant de compte est-il correct ?

  • l’IP sortante fixe de FITsociety est-elle autorisée chez InBody ?

  • des membres sont-ils associés ?

  • InBody contient-il des mesures pour ces utilisateurs ?

  • est-ce que /InBody/GetDatetimesByID renvoie des horodatages ?

Seul le poids est reçu

Cela peut arriver si InBody renvoie des noms de champs inattendus ou si seul le poids est visible dans les paramètres du membre.

FITsociety traite désormais aussi les clés full-data comme BMI(BodyMassIndex), PBF(PercentBodyFat), SMM(SkeletalMuscleMass) et BMR(BasalMetabolicRate). Lancez ensuite à nouveau Récupérer toutes les mesures pour compléter les imports existants.

Liste de contrôle de l’assistance pour un nouveau client

Utilisez cette liste pour une nouvelle installation InBody.

  1. Vérifiez que le fournisseur InBody est visible/disponible pour l’entreprise.

  2. Demandez au client ou à InBody le nom/identifiant du compte LB Web.

  3. Demandez au client ou à InBody la clé API.

  4. Faites autoriser par InBody l’IP sortante de FITsociety :

3.123.63.205/32

  1. Ouvrez la page du plugin InBody dans FITsociety.

  2. Renseignez Compte .

  3. Renseignez Clé API .

  4. Laissez URL de base de l’API en production, sauf pour une sandbox.

  5. Choisissez Live pour un client réel.

  6. Cliquez sur Enregistrer la configuration.

  7. Copiez immédiatement le secret du webhook.

  8. Copiez l’URL du webhook.

  9. Dans InBody/LB Web, renseignez :

Webhook Name: FITsociety - <bedrijfsnaam>Webhook URL: <webhook-url-uit-fitsociety>Header name: x-fitsociety-inbody-secretHeader value: <webhook-secret>

  1. Si les en-têtes ne fonctionnent pas, utilisez :

Webhook URL: <webhook-url-uit-fitsociety>?secret=<webhook-secret>

  1. Dans FITsociety, cliquez sur Associer automatiquement les membres.

  2. Vérifiez le nombre de membres associés et ceux à examiner.

  3. Cliquez sur Récupérer toutes les mesures.

  4. Vérifiez chez quelques membres que les mesures apparaissent dans la progression.

  5. Effectuez une mesure de test sur l’appareil InBody.

  6. Vérifiez que le webhook importe automatiquement cette nouvelle mesure.

  7. Vérifiez si les PDF sont inclus. Sinon, demandez à InBody s’ils sont accessibles via l’API.

Cet article vous a-t-il été utile ? Merci pour votre retour !

Merci, nous lisons chaque commentaire.

Articles liés