Centre d'aide & documentation

Tous les guides et réponses en un coup d’œil : parcours la documentation ou filtre par thème.

Une erreur s'est produite. Essaie encore une fois.

Utiliser l’API DigitalMembers

51 lecteurs

Avec l’API DigitalMembers, tu peux créer tes propres intégrations. Tu peux, par exemple, exporter les données des membres vers d’autres systèmes, afficher le nombre actuel de membres sur le site de ton association, automatiser des tâches avec n8n ou créer une extension WordPress. L’API est une API REST ouverte conforme à la norme OpenAPI 3. Elle utilise l’authentification OAuth2 (Client Credentials).

Créer une clé API

  1. Va dans Paramètres → Organisation → Clés API
  2. Clique sur Créer une clé API
  3. Donne un nom à la clé et choisis les autorisations qui lui sont accordées
  4. Après la création, le secret de la clé (Client Secret) ne s’affiche qu’une seule fois. Enregistre-le tout de suite dans un endroit sûr

Créer une clé API avec des autorisations détaillées dans les paramètres de l’organisation

Le secret de la clé ne s’affiche qu’une seule fois. Tu ne peux plus le consulter ensuite. Si tu le perds, crée une nouvelle clé.

Tu retrouves toutes les clés créées dans la liste, avec leur date de création. Tu peux supprimer une clé à tout moment :

Liste de toutes les clés API avec leur date de création

Obtenir un jeton (OAuth2 Client Credentials)

Avant de consulter des données, utilise client_id et le secret de la clé pour obtenir un jeton à durée limitée. Avec curl :

TOKEN=$(curl -s -X POST \
  https://auth.digitalmembers.ch/realms/members/protocol/openid-connect/token \
  -d grant_type=client_credentials \
  -d client_id=$CLIENT_ID \
  -d client_secret=$CLIENT_SECRET | jq -r .access_token)

Avec Python :

import requests

token = requests.post(
    "https://auth.digitalmembers.ch/realms/members/protocol/openid-connect/token",
    data={
        "grant_type": "client_credentials",
        "client_id": CLIENT_ID,
        "client_secret": CLIENT_SECRET,
    },
).json()["access_token"]

Consulter des données

Ajoute le jeton dans l’en-tête Bearer de chaque requête. Voici comment obtenir la liste des membres avec le point d’accès /v2/member/ sur api.digitalmembers.ch. Avec curl :

curl -s https://api.digitalmembers.ch/v2/member/ \
  -H "Authorization: Bearer $TOKEN"

Avec Python :

members = requests.get(
    "https://api.digitalmembers.ch/v2/member/",
    headers={"Authorization": f"Bearer {token}"},
).json()

for member in members.get("items", []):
    print(member)

Exemple en Python

Avec la bibliothèque requests, voici le même déroulement :

import requests

token = requests.post(
    "https://auth.digitalmembers.ch/realms/members/protocol/openid-connect/token",
    data={
        "grant_type": "client_credentials",
        "client_id": CLIENT_ID,
        "client_secret": CLIENT_SECRET,
    },
).json()["access_token"]

members = requests.get(
    "https://api.digitalmembers.ch/v2/member/",
    headers={"Authorization": f"Bearer {token}"},
).json()
print(members["items"])

Exporter la spécification OpenAPI

La spécification OpenAPI 3 complète se trouve sur api.digitalmembers.ch/openapi/. Tu peux l’utiliser pour générer tes propres clients ou parcourir automatiquement tous les points d’accès.

Tu dois t’authentifier pour consulter la spécification. Sans jeton valide, l’API répond avec le code 401.

Exemple en JavaScript :

const token = await fetch(
  "https://auth.digitalmembers.ch/realms/members/protocol/openid-connect/token",
  {
    method: "POST",
    headers: { "Content-Type": "application/x-www-form-urlencoded" },
    body: new URLSearchParams({
      grant_type: "client_credentials",
      client_id: CLIENT_ID,
      client_secret: CLIENT_SECRET,
    }),
  },
).then(r => r.json()).then(d => d.access_token)

const openapi = await fetch("https://api.digitalmembers.ch/openapi/", {
  headers: { Authorization: `Bearer ${token}` },
}).then(r => r.json())

console.log(openapi)

Générer un client TypeScript

Tu peux générer un client TypeScript prêt à l’emploi à partir de la spécification OpenAPI avec l’outil public openapi-generator-cli. Il fonctionne de manière autonome avec npx, sans dépendre de DigitalMembers. Tu peux faire la même chose pour Python et bien d’autres langages. Il suffit de remplacer le nom du générateur, par exemple python à la place de typescript-axios.

# 1. Télécharger la spécification OpenAPI avec le jeton
curl -s https://api.digitalmembers.ch/openapi/ \
  -H "Authorization: Bearer $TOKEN" > openapi.json

# 2. Générer le client TypeScript
npx @openapitools/openapi-generator-cli generate \
  -i openapi.json \
  -g typescript-axios \
  -o ./digitalmembers-client

Documentation interactive

Tu trouveras tous les points d’accès, paramètres et formats de réponse dans l’interface Swagger consultable sur docs.digitalmembers.ch. Connecte-toi avec ton compte DigitalMembers, choisis un service et essaie chaque point d’accès directement dans ton navigateur.

Interface Swagger de l’API DigitalMembers avec tous les services

Révoquer une clé

  1. Va dans Paramètres → Organisation → Clés API
  2. Clique sur Supprimer à côté de la clé concernée
  3. La clé cesse immédiatement de fonctionner

Conseil de sécurité

Protège tes clés API comme des mots de passe. Ne les partage pas dans des dépôts de code ou des discussions publiques. DigitalMembers décline toute responsabilité pour les dommages causés par des clés volées ou utilisées abusivement.

Articles connexes

Prêt à digitaliser ton club ?

Essayer gratuitement