Przejdź do treści

DarhimLabs API

OAuth flow dla aplikacji partnerskiej

Authorization code flow, scopes i token exchange dla partner apps.

OAuth flow dla aplikacji partnerskiej

Authorization code flow, scopes i token exchange dla partner apps.

Kiedy tego uzyc

Uzyj tego przepisu, gdy chcesz: Pozwolic klientowi autoryzowac zewnetrzna aplikacje bez udostepniania API key.

Endpoint referencyjny: GET /oauth/authorize + POST /oauth/token.

Implementacja

Node.js

import { DarhimLabs } from "@darhimlabs/node";

const client = new DarhimLabs(process.env.DARHIMLABS_API_KEY!);
const url = client.oauth.authorizeUrl({ client_id, redirect_uri, scope: 'read write' });

Python

import os
from darhimlabs import DarhimLabs

client = DarhimLabs(api_key=os.environ["DARHIMLABS_API_KEY"])
url = client.oauth.authorize_url(client_id=client_id, redirect_uri=redirect_uri, scope='read write')

PHP

<?php

$client = new DarhimLabs\Client(["api_key" => $_ENV["DARHIMLABS_API_KEY"]]);
$url = $client->oauth->authorizeUrl(['client_id' => $clientId, 'redirect_uri' => $redirectUri, 'scope' => 'read write']);

Ruby

client = DarhimLabs::Client.new(api_key: ENV["DARHIMLABS_API_KEY"])
url = client.oauth.authorize_url(client_id: client_id, redirect_uri: redirect_uri, scope: 'read write')

Test it

  1. Wykonaj request w sandboxie z kluczem dl_test_....
  2. Sprawdz X-Request-ID w odpowiedzi.
  3. Dla webhookow uzyj Webhook Playground, zeby zobaczyc payload live.

Common pitfalls

  • Redirect URI musi pasowac dokladnie. Nie akceptuj wildcardow w produkcji.
  • Loguj request_id i event_id, zeby support mogl odtworzyc problem.
  • Dla mutacji dodawaj Idempotency-Key, szczegolnie jesli request moze byc retryowany.

Production checklist

  • Dodaj retry z exponential backoff i jitterem.
  • Ogranicz scopes API key do minimalnego zestawu.
  • Monitoruj rate limit headers i latency P95.
  • Przetestuj bledy 401, 409, 422 i 429.

Related