Dieser Artikel dient als vollständige Anleitung für Support, Implementierung und Kunden, die InBody über LookinBody Web/LB Web mit FITsociety verbinden möchten. Veröffentlichen Sie diesen Artikel erst, nachdem die InBody-Integration für die richtige Kundengruppe sichtbar gemacht wurde.
Kurz zusammengefasst
Mit der InBody-Integration kann FITsociety Körpermessungen von einem InBody-Gerät abrufen und beim richtigen Mitglied speichern. Die Integration verwendet kein OAuth. Es gibt daher keine Schaltfläche „Mit InBody anmelden“, über die ein Kunde selbst zustimmt. Pro Unternehmen wird ein InBody/LB Web-Konto verbunden mit:
einem InBody-Kontonamen/einer Konto-ID;
einem InBody-API-Schlüssel;
einer festen FITsociety-Webhook-URL;
einem Webhook-Secret;
einer IP-Freigabeliste bei InBody für unsere ausgehenden API-Aufrufe.
Nach der Einrichtung kann FITsociety:
Mitglieder anhand ihrer Telefonnummer automatisch mit InBody-Benutzern verknüpfen, mit zusätzlicher Prüfung von E-Mail-Adresse und Geburtsdatum, sofern InBody diese zurückgibt;
neue Messungen automatisch verarbeiten, sobald InBody einen Webhook sendet;
alle bestehenden InBody-Messungen für verknüpfte Mitglieder abrufen;
Werte wie Gewicht, BMI, Körperfettanteil, Fettmasse, Muskelmasse, Gesamtkörperwasser und BMR in den bestehenden FITsociety-Messungen speichern;
ein PDF-Ergebnis beim Mitglied speichern, wenn InBody eine PDF-URL oder eine Base64-PDF in der API-Antwort mitsendet.
Wichtig: Die aktuelle InBody-API-Dokumentation enthält keinen separaten PDF-/Berichts-Endpunkt. PDFs können nur automatisch gespeichert werden, wenn InBody die PDF selbst in der Messdatenantwort mitsendet.
Für wen ist diese Integration gedacht?
Die Integration ist für Unternehmen mit einem eigenen InBody/LB Web-Konto gedacht, die InBody-Messungen in FITsociety beim richtigen Mitglied sehen möchten.
Die Integration ist unternehmensspezifisch. Jedes FITsociety-Unternehmen erhält eine eigene Installation, eine eigene API-Schlüssel-/Kontokonfiguration und eine eigene Webhook-URL. Dadurch bleiben die Daten pro Unternehmen getrennt.
Was benötigen Sie vor der Verknüpfung?
Stellen Sie diese Punkte sicher, bevor Sie die Integration aktivieren.
Voraussetzung | Erläuterung |
InBody/LB Web-Konto | Der Kontoname/die Konto-ID des Kunden in LookinBody Web. |
InBody-API-Schlüssel | Ein von InBody oder in LB Web erstellter API-Schlüssel. |
InBody-API-Zugriff | Das Konto muss Zugriff auf die Web-API-Endpunkte haben. |
IP-Freigabeliste bei InBody | InBody akzeptiert API-Aufrufe nur von registrierten IP-Adressen. |
Webhook-Einstellung in InBody | Die FITsociety-Webhook-URL muss in LB Web/InBody eingerichtet werden. |
Mitglieder mit Telefonnummer | Für die automatische Verknüpfung verwendet FITsociety Telefonnummern. |
Vorzugsweise E-Mail-Adresse und Geburtsdatum | Wenn InBody diese zurückgibt, verwendet FITsociety sie zur zusätzlichen Prüfung, um falsche Zuordnungen zu vermeiden. |
IP-Freigabeliste
Laut eigener Rückmeldung unterstützt InBody keine Freigabe anhand von Hostnamen. api.fitsociety.io kann daher nicht als Hostname für ausgehende API-Aufrufe freigegeben werden.
Bei InBody muss die feste ausgehende IP-Adresse von FITsociety freigegeben werden:
3.123.63.205/32
Wo richten Sie InBody in FITsociety ein?
Gehen Sie in FITsociety zu:
Bedrijfsinstellingen > Plugins / Integraties > InBody
Direkter Pfad:
/company/settings/plugins/inbody
Die Seite heißt InBody einrichten und enthält die nachfolgend erläuterten Felder und Schaltflächen.
Felder auf der InBody-Einstellungsseite
Konto
Geben Sie hier den InBody/LB Web-Kontonamen oder die Konto-ID ein.
Beispiele:
<inbody-accountnaam><lbweb-account-id>
Verwenden Sie genau den von InBody bereitgestellten Kontonamen. Ist dieses Feld falsch ausgefüllt, kann FITsociety die InBody-API nicht aufrufen.
API-Schlüssel
Geben Sie hier den API-Schlüssel von InBody ein.
Der API-Schlüssel wird verschlüsselt gespeichert. Nach dem Speichern wird er in der Oberfläche nicht mehr angezeigt. Muss der Schlüssel ersetzt werden, geben Sie einen neuen API-Schlüssel ein und klicken Sie erneut auf Einrichtung speichern.
API-Basis-URL
Normalerweise lautet sie:
https://eur.developers.lookinbody.com
Für Sandbox/Tests lautet sie:
https://eur.developers.lookinbody.com/sandbox
Verwenden Sie für einen echten Kunden normalerweise die Live-URL.
Umgebung
Wählen Sie:
Live für echte Kundendaten;
Test für Sandbox-/Testdaten.
Achtung: Im InBody-Sandboxmodus können einige Lese-Endpunkte Demodaten liefern, während bestimmte Aktionen zum Erstellen, Aktualisieren oder Löschen dennoch echte LB Web-Daten ändern können. Verwenden Sie den Testmodus daher nur bewusst.
Schaltflächen auf der InBody-Einstellungsseite
Einrichtung speichern
Diese Schaltfläche speichert die InBody-Konfiguration:
Konto-ID;
API-Schlüssel;
API-Basis-URL;
Umgebung;
Installationsdaten;
Webhook-Secret, falls noch keines existiert.
Nach dem Speichern erstellt FITsociety eine unternehmensspezifische Webhook-URL und ein Webhook-Secret. Das Webhook-Secret wird nur unmittelbar nach dem Erstellen oder Erneuern angezeigt. Kopieren Sie es sofort in die InBody-Webhook-Einstellungen.
Webhook-Secret erneuern
Verwenden Sie diese Schaltfläche nur, wenn das bestehende Webhook-Secret ersetzt werden muss.
Nach dem Erneuern funktioniert das alte Secret nicht mehr. Die Webhook-Einstellung in InBody muss dann ebenfalls mit dem neuen Secret aktualisiert werden.
Mitglieder automatisch verknüpfen
Diese Schaltfläche versucht, FITsociety-Mitglieder automatisch mit InBody-Benutzern zu verknüpfen.
FITsociety verwendet dafür die Telefonnummer des Mitglieds und fragt InBody über den offiziellen Endpunkt ab:
POST /User/GetUser
Die Telefonnummer wird in mehreren Varianten ausprobiert. Zum Beispiel:
062436680562436680531624366805+31624366805310624366805+310624366805003162436680500310624366805
Ein Mitglied wird nur automatisch verknüpft, wenn die Zuordnung sicher und eindeutig ist:
eine Telefonnummer ist vorhanden;
dieselbe Telefonnummer gehört nicht zu mehreren lokalen Mitgliedern;
InBody gibt genau einen Benutzer zurück;
gibt InBody eine E-Mail-Adresse zurück, muss diese mit der FITsociety-E-Mail-Adresse übereinstimmen;
gibt InBody ein Geburtsdatum zurück, muss dieses mit dem FITsociety-Geburtsdatum übereinstimmen.
Bei Zweifeln wird das Mitglied nicht automatisch verknüpft; der Support oder der Coach muss dies prüfen.
Alle Messungen abrufen
Diese Schaltfläche ruft alle verfügbaren InBody-Messungen für verknüpfte Mitglieder ab.
Was technisch geschieht:
Wird die Schaltfläche auf Unternehmensebene verwendet, versucht FITsociety zuerst, Mitglieder automatisch zu verknüpfen.
Anschließend werden alle verknüpften InBody-Benutzer verarbeitet.
Pro verknüpftem Benutzer ruft FITsociety alle verfügbaren InBody-Zeitstempel ab über:
POST /InBody/GetDatetimesByID
Pro Zeitstempel ruft FITsociety die vollständigen Messdaten ab über:
POST /InBody/GetFullInBodyDataByID
FITsociety wandelt den InBody-Zeitstempel in einen UTC-Messzeitpunkt um.
FITsociety ordnet die Werte bestehenden FITsociety-Messtypen zu.
FITsociety speichert die Messungen beim Mitglied.
Enthält die Antwort eine PDF, wird diese bei den Dokumenten des Mitglieds gespeichert.
Diese Schaltfläche erstellt keine doppelten Messungen. Bestehende InBody-Messungen werden per Upsert anhand folgender Angaben gespeichert:
Unternehmen;
Mitglied;
Messtyp;
Messzeitpunkt;
Quelle
inbody.
War ein früherer InBody-Import unvollständig, kann eine erneute vollständige Synchronisierung die Messwerte ergänzen oder aktualisieren, ohne doppelte Zeilen zu erstellen.
Webhook in InBody/LB Web einrichten
InBody muss nach jeder Messung einen Webhook an FITsociety senden. Der Webhook ist lediglich ein Auslöser. FITsociety vertraut dem Webhook-Body nicht als endgültigen Messdaten, sondern verwendet den Webhook, um anschließend die offizielle InBody-API aufzurufen.
Webhook Name
Verwenden Sie einen eindeutigen Namen, zum Beispiel:
FITsociety - <bedrijfsnaam>
Webhook URL
Verwenden Sie die Webhook-URL, die FITsociety auf der InBody-Einstellungsseite anzeigt.
Ohne Query-Secret sieht sie so aus:
https://api.fitsociety.io/public/v1/webhooks/inbody/<installatiesleutel>
Unterstützt InBody keine benutzerdefinierten Header, verwenden Sie die Webhook-URL mit dem Secret in der URL:
https://api.fitsociety.io/public/v1/webhooks/inbody/<installatiesleutel>?secret=<webhook-secret>
Verwenden Sie immer die URL aus FITsociety selbst. Tippen Sie den Installationsschlüssel nicht unnötig manuell ab.
Custom Header
Wenn InBody benutzerdefinierte Header unterstützt, verwenden Sie vorzugsweise ein Header-Secret statt eines Query-Secrets.
Header name:
x-fitsociety-inbody-secret
Header value:
<webhook-secret>
Das Webhook-Secret stammt aus FITsociety und wird nur angezeigt, nachdem Sie die Einrichtung speichern oder das Secret erneuern.
Was geschieht nach einer neuen InBody-Messung?
Das Mitglied stellt sich auf das InBody-Gerät.
Das Mitglied gibt auf dem Gerät seine Telefonnummer oder InBody-Benutzer-ID ein, abhängig von der Einrichtung des InBody-Kontos.
InBody verarbeitet die Messung in LB Web.
InBody sendet einen Webhook an FITsociety.
FITsociety prüft den Installationsschlüssel und das Webhook-Secret.
FITsociety gibt sofort
202 Acceptedan InBody zurück.Im Hintergrund ruft FITsociety die Messdaten über die InBody-API ab.
Enthält der Webhook eine
userIDunddatetimes, importiert FITsociety genau diese Messung.Enthält der Webhook keinen bestimmten Zeitstempel, prüft FITsociety die heutigen Messungen für verknüpfte Mitglieder.
FITsociety speichert die Werte in den Fortschrittsmessungen des Mitglieds.
Die Messungen werden im Mitgliederprofil unter Fortschritt/Messung sichtbar, sofern der Messtyp für dieses Mitglied aktiv sichtbar ist. Neu importierte InBody-Messtypen werden automatisch zu den Mitgliedereinstellungen hinzugefügt.
Welche Messwerte rufen wir ab?
FITsociety ruft Werte ab, wenn InBody diese in der vollständigen Datenantwort mitsendet und ein passender Messtyp existiert.
InBody-Wert | FITsociety-Messtyp | Einheit |
Weight | Gewicht | kg |
BMI / BMI(BodyMassIndex) | BMI | keine |
PBF / PBF(PercentBodyFat) | Körperfettanteil | % |
BFM / BFM(BodyFatMass) | Fettmasse | kg |
VFL / VFL(VisceralFatLevel) | Viszeralfett | Anbieterwert |
FFM / FFM(FatFreeMass) | Fettfreie Masse / Lean Body Mass | kg |
SMM / SMM(SkeletalMuscleMass) | Muskelmasse / Skelettmuskelmasse | kg |
TBW / TBW(TotalBodyWater) | Gesamtkörperwasser | kg |
Protein | Proteinmasse | kg |
Minerals | Mineralstoffgehalt | kg |
BMR / BMR(BasalMetabolicRate) | Grundumsatz | kcal |
BodyAge / metabolicAge | Stoffwechselalter | Jahre |
Nicht jedes InBody-Gerät oder -Konto gibt immer alle Werte zurück. Sendet InBody einen Wert nicht mit, kann FITsociety ihn nicht speichern.
Wo werden die Messungen gespeichert?
Die Werte werden als gewöhnliche FITsociety-Messungen beim Mitglied gespeichert.
Die Messungen haben folgende Quelle:
inbody
Die Notiz zur Messung lautet:
Imported from InBody
Die Messungen erscheinen anschließend wie andere Messwerte in der Fortschrittsansicht des Mitglieds.
Wie funktioniert die Verknüpfung von Mitgliedern?
FITsociety speichert pro Mitglied eine externe InBody-Verknüpfung. Diese Verknüpfung besteht aus der InBody- userID.
Die automatische Verknüpfung funktioniert so:
FITsociety prüft alle Mitglieder des Unternehmens.
Pro Mitglied werden Telefonnummernvarianten erstellt.
FITsociety fragt InBody pro Telefonnummernvariante nach dem Benutzer.
Stimmt genau ein InBody-Benutzer überein, wird dieser Kandidat geprüft.
Weichen E-Mail-Adresse oder Geburtsdatum ab, erfolgt keine Verknüpfung.
Bei einer sicheren Übereinstimmung wird die InBody-
userIDbeim Mitglied gespeichert.
In folgenden Fällen erfolgt keine automatische Verknüpfung:
keine Telefonnummer;
mehrere lokale Mitglieder mit derselben Telefonnummer;
mehrere InBody-Benutzer für dieselbe Telefonnummer;
abweichende E-Mail-Adresse;
abweichendes Geburtsdatum;
kein InBody-Benutzer gefunden.
Was geschieht, wenn Mitglieder bereits verknüpft sind?
Hat ein Mitglied bereits eine aktive InBody-Verknüpfung, bleibt diese bestehen. Die automatische Verknüpfung zählt dieses Mitglied als bereits verknüpft und überschreibt die Verknüpfung nicht ohne Weiteres.
Eine manuelle oder technische Verknüpfung kann erneut gespeichert werden, wenn der Support die InBody-Benutzer-ID bewusst ändert.
Was geschieht, wenn Messungen bereits existieren?
FITsociety erstellt für denselben Messtyp und denselben Messzeitpunkt keine doppelten InBody-Messungen.
Beim erneuten Import verwendet FITsociety einen Upsert. Das bedeutet:
existiert die InBody-Messung noch nicht, wird sie erstellt;
existiert die InBody-Messung bereits, wird die bestehende Zeile aktualisiert;
fehlende Messtypen können nachträglich hinzugefügt werden;
eine PDF kann später noch verknüpft werden, wenn InBody sie nachträglich bereitstellt.
Dies ist für historische Importe und Korrekturen wichtig.
PDFs von InBody-Messungen
Leider ist dies derzeit nicht möglich. Wir haben bei InBody bereits eine Anfrage gestellt. Wenn Sie die Ergebnisse digital mit Ihren Kunden teilen möchten, können Sie sie derzeit manuell bei den Dokumenten ablegen. Sie können auch InBody kontaktieren und fragen, ob dies künftig unterstützt wird.
Was bietet die Integration nicht?
Die aktuelle InBody-Integration bietet Folgendes nicht:
keinen OAuth-Ablauf, bei dem Kunden sich selbst über InBody anmelden;
keine automatische Registrierung von FITsociety als Connected App in LB Web;
keine automatische Konfiguration des Webhooks in InBody;
keine Garantie für verfügbare PDFs, solange InBody keine PDF in der API-Antwort mitsendet;
keine Synchronisierung von Zahlungen oder Abonnements;
keine gemeinsame Nutzung von Daten zwischen verschiedenen FITsociety-Unternehmen.
Sicherheit und Datentrennung
Die Integration ist pro Unternehmen getrennt:
jedes Unternehmen hat eine eigene InBody-Installation;
jede Installation hat einen eigenen Installationsschlüssel;
jede Installation hat ein eigenes Webhook-Secret;
API-Schlüssel werden verschlüsselt gespeichert;
Webhook-Secrets werden als Hash gespeichert;
Messdaten werden mit der richtigen
companyIdundclientId;Importe werden getrennt nach Unternehmen, Installation, InBody-Benutzer und Zeitstempel protokolliert.
Fehler bei der Webhook- oder Importverarbeitung werden an Sentry gemeldet, ohne unverschlüsselte API-Schlüssel, Webhook-Secrets oder Authorization-Header.
Häufige Probleme
Die InBody-Integration ist nicht sichtbar
Die InBody-Integration kann privat oder im Pilotbetrieb sein. Prüfen Sie, ob das Unternehmen für den InBody-Anbieter freigegeben ist und ob die Integration in der Pluginliste verfügbar ist.
InBody meldet beim Webhook-Test „Connection failed“
Prüfen Sie:
ist die Webhook-URL exakt so eingetragen, wie FITsociety sie anzeigt?
verwendet der Kunde
https://api.fitsociety.io/...und nicht die Elastic-Beanstalk-Backend-URL?ist das Webhook-Secret richtig eingetragen?
unterstützt InBody benutzerdefinierte Header? Falls nicht, verwenden Sie die URL mit
?secret=<webhook-secret>;wurde das Webhook-Secret erneuert, ohne InBody zu aktualisieren?
blockiert InBody oder eine Netzwerkschicht den ausgehenden Test?
Achtung: Die IP-Freigabeliste wird für unsere ausgehenden Aufrufe an InBody benötigt. Der Webhook-Aufruf von InBody an FITsociety verwendet die Webhook-URL.
Es werden keine Mitglieder verknüpft
Mögliche Ursachen:
Mitglieder haben in FITsociety keine Telefonnummer;
Telefonnummern sind in FITsociety falsch oder doppelt eingetragen;
InBody verwendet eine andere Telefonnummer/ein anderes Benutzertoken;
InBody gibt keinen Benutzer zurück über
/User/GetUser;E-Mail-Adresse oder Geburtsdatum weichen ab.
Es werden keine Messungen abgerufen
Prüfen Sie:
wurde die InBody-Einrichtung gespeichert?
ist der API-Schlüssel richtig?
ist die Konto-ID richtig?
ist die feste ausgehende IP von FITsociety bei InBody freigegeben?
sind Mitglieder verknüpft?
sind in InBody Messungen für diese verknüpften Benutzer vorhanden?
gibt
/InBody/GetDatetimesByIDZeitstempel zurück?
Nur das Gewicht wird übertragen
Dies kann geschehen, wenn InBody andere Feldnamen als erwartet zurückgibt oder in den Mitgliedereinstellungen nur das Gewicht sichtbar ist.
FITsociety ordnet inzwischen auch die vollständigen Datenschlüssel zu, wie BMI(BodyMassIndex), PBF(PercentBodyFat), SMM(SkeletalMuscleMass) und BMR(BasalMetabolicRate). Führen Sie anschließend erneut Alle Messungen abrufen aus, um bestehende Importzeitpunkte zu ergänzen.
Support-Checkliste für einen neuen Kunden
Verwenden Sie diese Checkliste bei einer neuen InBody-Installation.
Prüfen Sie, ob der InBody-Anbieter für das Unternehmen sichtbar/verfügbar ist.
Bitten Sie den Kunden oder InBody um den LB Web-Kontonamen/die Konto-ID.
Bitten Sie den Kunden oder InBody um den API-Schlüssel.
Lassen Sie InBody die ausgehende IP von FITsociety freigeben:
3.123.63.205/32
Öffnen Sie in FITsociety die InBody-Pluginseite.
Geben Sie Konto ein.
Geben Sie API-Schlüssel ein.
Lassen Sie API-Basis-URL auf Live stehen, sofern es sich nicht um eine Sandbox handelt.
Wählen Sie Live für einen echten Kunden.
Klicken Sie auf Einrichtung speichern.
Kopieren Sie das Webhook-Secret sofort.
Kopieren Sie die Webhook-URL.
Tragen Sie in InBody/LB Web ein:
Webhook Name: FITsociety - <bedrijfsnaam>Webhook URL: <webhook-url-uit-fitsociety>Header name: x-fitsociety-inbody-secretHeader value: <webhook-secret>
Wenn Header nicht funktionieren, verwenden Sie:
Webhook URL: <webhook-url-uit-fitsociety>?secret=<webhook-secret>
Klicken Sie in FITsociety auf Mitglieder automatisch verknüpfen.
Prüfen Sie, wie viele Mitglieder verknüpft sind und welche Mitglieder überprüft werden müssen.
Klicken Sie auf Alle Messungen abrufen.
Prüfen Sie bei einigen Mitgliedern, ob die Messungen im Fortschritt sichtbar sind.
Führen Sie eine Testmessung auf dem InBody-Gerät durch.
Prüfen Sie, ob der Webhook die neue Messung automatisch importiert.
Prüfen Sie, ob PDFs mitgesendet werden. Falls nicht, fragen Sie InBody, ob PDFs über die API verfügbar sind.