Produkt-APIs & OAuth
Die Produkt-APIs — Methacore, ShellBase und useNotification — sprechen OAuth2 statt API-Keys. Der gesamte Zugang läuft über api.artim-industries.com: dein Client wird dort autorisiert, tauscht dort und verlängert dort. Die Produkt-Systeme selbst betrittst du nie direkt.
Der Weg zum Token
| Schritt | Wo | Was passiert |
|---|---|---|
| 1 · Autorisieren | GET /v1/oauth/authorize | Consent-Screen deiner Anwendung, dann Anmeldung beim Produkt, dann Organisationsfreigabe. |
| 2 · Tauschen | POST /v1/oauth/token | Der einmalige Code wird gegen einen 30-Tage-Bearer getauscht (mcapi_…, sbapi_…, unapi_…). |
| 3 · Aufrufen | https://<sektion>.api.methacore.de | Jede API antwortet nur unter ihrer eigenen Subdomain. |
| 4 · Verlängern | POST /v1/oauth/token | grant_type=refresh_token — immer auf höchstens 30 Tage ab jetzt. |
Autorisieren
PKCE ist verpflichtend: erzeuge je Autorisierung einen zufälligen code_verifier, schicke nur seinen SHA-256-Hash als code_challenge mit und bewahre das Original bis zum Tausch auf.
GET https://api.artim-industries.com/v1/oauth/authorize
?response_type=code
&client_id={deine client_id}
&redirect_uri={registrierte Redirect-URI}
&scope=mc.members:read mc.members.profile:read
&code_challenge={S256(code_verifier)}
&code_challenge_method=S256
&state={zufällig}
Die Nutzer sehen zuerst deinen Consent-Screen (Name, Logo, Scopes in Klartext), melden sich dann beim Produkt an und geben eine Organisation frei. Bei internen Anwendungen steht die Organisation fest — es ist die, die bei der API-Verknüpfung gewählt wurde, und nur ihre Mitglieder kommen durch. Bei externen wählen die Nutzer frei unter den Organisationen, die sie verwalten.
Tauschen und verlängern
curl -X POST https://api.artim-industries.com/v1/oauth/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "authorization_code",
"code": "{code}",
"redirect_uri": "{deine Redirect-URI}",
"client_id": "{client_id}",
"client_secret": "{nur vertrauliche Clients}",
"code_verifier": "{das Original}"
}'
Die Antwort trägt access_token (mcapi_…), expires_in (2592000 Sekunden = 30 Tage) und api_base — die Subdomain deiner API. Verlängert wird mit demselben Endpunkt:
curl -X POST https://api.artim-industries.com/v1/oauth/token \
-H "Content-Type: application/json" \
-d '{ "grant_type": "refresh_token", "refresh_token": "mcapi_…" }'
Immer auf höchstens 30 Tage ab jetzt — ein Token lässt sich beliebig oft verlängern, aber nie weiter als 30 Tage in die Zukunft.
Woran ein Token gebunden ist
| Bindung | Bedeutung |
|---|---|
| Konto | Das Produktkonto, das autorisiert hat. |
| Organisation | Genau die eine freigegebene Organisation. |
| Scopes | Die Scopes deines Clients — feiner geht immer, weiter nie. |
| API | Über die Subdomain: ein Token der Mitglieder-API kommt an der Buchhaltung nicht vorbei. |
GET https://api.methacore.de/tokeninfo zeigt jederzeit, woran ein Token gebunden ist.