Skip to content

Pour développeurs

Créez des intégrations avec la plateforme MySpeedPuzzling. Accédez aux résultats des joueurs, statistiques, collections et bien plus via notre REST API.

Documentation API

Interface Swagger UI interactive avec tous les endpoints disponibles, les paramètres de requête et les schémas de réponse.

Démo en direct

Découvrez une intégration OAuth2 fonctionnelle en action. Authentifiez-vous, récupérez des données et explorez le flux.

Code source

Application démo PHP complète montrant le flux OAuth2 authorization code. Clonez-la et commencez à construire.

Authentification

Deux façons de s'authentifier auprès de l'API, selon votre cas d'utilisation.

Personal Access Token

Générez un token pour accéder à vos propres données par programmation. Idéal pour Home Assistant, scripts personnels et automatisations.

Authorization: Token msp_pat_...

OAuth2 — Authentification utilisateur

Flux authorization code pour les applications tierces. Les utilisateurs autorisent votre application à accéder à leurs données avec des scopes détaillés. Prend en charge les opérations de lecture et d'écriture.

OAuth2 — Service

Flux client credentials pour la communication entre services. Accès en lecture seule aux données de tout joueur public sans interaction utilisateur.

Comment s'authentifier

À quoi ça sert ?

Quand vous souhaitez accéder uniquement à vos propres données. Parfait pour les automatisations personnelles — importez vos résultats dans Home Assistant, affichez vos statistiques sur un tableau de bord personnel, suivez votre progression dans un tableur ou créez un script de notifications personnalisé.


Générez un token depuis vos Paramètres de profil et utilisez-le dans l'en-tête Authorization :

curl -H "Authorization: Token msp_pat_YOUR_TOKEN_HERE" \
  https://myspeedpuzzling.com/api/v1/me

PAT vous donne un accès complet à tous les endpoints /api/v1/me/*. Aucun scope nécessaire. Impossible d'accéder aux données des autres joueurs.

À quoi ça sert ?

Quand vous développez une application où les utilisateurs se connectent avec leur compte MySpeedPuzzling. Votre application peut ensuite accéder à leurs données en leur nom — afficher leurs résultats sur votre site web, leur permettre d'ajouter des temps de résolution via votre outil de compétition ou gérer leurs collections depuis une interface personnalisée.


Étape 1 : Redirigez l'utilisateur pour qu'il autorise votre application :

https://myspeedpuzzling.com/oauth2/authorize?
  client_id=YOUR_CLIENT_ID
  &response_type=code
  &redirect_uri=https://your-app.com/callback
  &scope=profile:read results:read
  &state=RANDOM_STATE

Étape 2 : Échangez le code d'autorisation contre des tokens :

curl -X POST https://myspeedpuzzling.com/oauth2/token \
  -d "grant_type=authorization_code" \
  -d "code=AUTH_CODE_FROM_REDIRECT" \
  -d "redirect_uri=https://your-app.com/callback" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET"

Étape 3 : Utilisez l'access token :

curl -H "Authorization: Bearer ACCESS_TOKEN" \
  https://myspeedpuzzling.com/api/v1/me/results

Étape 4 : Quand l'access token expire, utilisez le refresh token pour en obtenir un nouveau :

curl -X POST https://myspeedpuzzling.com/oauth2/token \
  -d "grant_type=refresh_token" \
  -d "refresh_token=REFRESH_TOKEN" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET"

L'access token expire au bout d'1 heure. Les refresh tokens sont valides pendant 1 mois.

À quoi ça sert ?

Quand vous avez besoin de données statistiques ou souhaitez accéder aux résultats publics de n'importe quel joueur sans interaction utilisateur. Idéal pour créer des widgets de classement, des affichages de résultats de compétitions, des tableaux de bord de statistiques communautaires ou des outils d'analyse de données.


Étape 1 : Demandez un access token directement :

curl -X POST https://myspeedpuzzling.com/oauth2/token \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "scope=results:read statistics:read"

Étape 2 : Utilisez l'access token pour lire les données de n'importe quel joueur public :

curl -H "Authorization: Bearer ACCESS_TOKEN" \
  https://myspeedpuzzling.com/api/v1/players/PLAYER_UUID/results

Accès en lecture seule. Les endpoints /me ne sont pas disponibles. Les joueurs masqués/privés renvoient des résultats vides.

Scopes disponibles

profile:read par défaut

Lire le profil utilisateur

results:read

Lire les résultats des joueurs

statistics:read

Lire les statistiques des joueurs

collections:read

Lire les collections des joueurs

solving-times:write auth code uniquement

Créer et modifier les temps de résolution

collections:write auth code uniquement

Créer, modifier, supprimer des collections

Endpoints disponibles

Les endpoints que vous pouvez utiliser dépendent de votre méthode d'authentification.

Endpoint PAT Auth Code Client Credentials
Vos propres données (/me)
GET /api/v1/me
GET /api/v1/me/results
GET /api/v1/me/statistics
GET /api/v1/me/collections
POST /api/v1/me/solving-times
PUT /api/v1/me/solving-times/{id}
POST/PUT/DELETE /api/v1/me/collections/*
Données publiques des autres joueurs
GET /api/v1/players/{id}/results
GET /api/v1/players/{id}/statistics
GET /api/v1/players/{id}/collections
PAT — vos données uniquement. Aucun scope nécessaire, accès complet à tous les endpoints /me.
Auth Code — tous les endpoints. L'accès dépend des scopes accordés. Scopes d'écriture disponibles.
Client Credentials — accès en lecture seule à tout joueur public. Pas d'endpoints /me.
Politique d'utilisation raisonnable

Avant de générer des tokens ou de demander l'accès à l'API, veuillez lire et accepter notre Politique d'utilisation raisonnable de l'API.

Pour commencer

Usage personnel

Vous souhaitez accéder à vos propres données ? Générez un Personal Access Token instantanément depuis les paramètres de votre profil. Aucune approbation nécessaire.

Se connecter
Application tierce

Vous développez une application nécessitant un accès OAuth2 ? Soumettez une demande et nous l'examinerons. Vous recevrez vos identifiants une fois approuvé.

Connectez-vous pour faire une demande

Des questions ? Contactez-nous à jan@myspeedpuzzling.com.