API & Webhooks
Chess Scanner kann als OAuth-2.0-Provider auftreten, sodass du eine eigene Anwendung darauf aufbauen kannst. Mit Erlaubnis des Nutzers liest deine App dessen Schach-Datenbanken und -Partien und wird in Echtzeit benachrichtigt, wenn sich etwas ändert.
Du arbeitest mit vier Bausteinen:
- OAuth-App. Registriere eine Anwendung und erhalte Client-ID und Client-Secret.
- Autorisierung. Schicke den Nutzer durch den OAuth-Flow, um in seinem Namen ein Access-Token zu erhalten.
- API. Lies mit diesem Token Datenbanken und Partien als JSON oder PGN.
- Webhooks. Erhalte einen signierten HTTP-Callback, wenn eine Partie erstellt, geändert oder gelöscht wird.
Die API ist schreibgeschützt. Sie dient anderen Systemen zum Importieren von Daten und verändert nie die Partien oder Datenbanken eines Nutzers.
Der typische Ablauf
- OAuth-App erstellen und die nötigen Berechtigungen wählen.
- Den Autorisierungs-Flow umsetzen, um ein Access-Token für einen Nutzer zu erhalten.
- Die API mit
Authorization: Bearer <token>aufrufen. - Einen Webhook einrichten, wenn du nicht pollen möchtest.
Basis-URLs
| Zweck | Basis-URL (Beispiel) |
|---|---|
| OAuth-Provider (authorize, token) | https://chessscanner.com |
| API (Datenbanken & Partien lesen) | https://api.chessscanner.com |
Diese Basis-URLs sind nur Beispiele. Verwende deine echten Produktions-Hosts. Die OAuth-Endpunkte liegen in der Haupt-App von Chess Scanner, die Daten-API läuft auf einem separaten Server.
Berechtigungen (Scopes)
| Scope | Erlaubt das Lesen von |
|---|---|
user.read | Basisprofil des Nutzers (Name, E-Mail, Avatar) |
databases.read | Datenbanken des Nutzers |
games.read | Partien, Einzelpartien, PGN-Export und Changes-Feed |
offline_access | Stellt ein Refresh-Token für dauerhaften Zugriff aus |
Deine App sieht nur, was der Nutzer freigegeben hat, und die API prüft die Scopes bei jeder Anfrage.