Aller au contenu

SDKs serveur : démarrage rapide

Tout ce qui suit utilise votre write key secrète (paramètres du projet → API keys). Gardez-la dans une variable d’environnement ; elle ne doit jamais atteindre un navigateur.

Terminal window
composer require kilden/kilden-php
$kilden = new Kilden\Client(getenv('KILDEN_SECRET_KEY'));
$kilden->track('user_42', 'order_completed', [
'revenue' => 99.9,
'currency' => 'CLP',
]);

Les événements sont mis en file en mémoire et envoyés par lots. Appelez close() à l’arrêt du processus (en PHP, Laravel, FPM et les shutdown hooks s’en chargent ; en Go utilisez defer client.Close()) ; ce qui reste en file au-delà d’un délai de 10 secondes est abandonné plutôt que de bloquer votre processus.

identify fait un upsert des traits de la personne. Le distinct_id est explicite à chaque appel — les SDKs serveur ne gardent aucun état d’identité.

$kilden->identify('user_42', ['plan' => 'pro', 'email' => '[email protected]']);

La vérification d’identité exige que votre backend signe un JWT de courte durée pour l’utilisateur connecté. IdentitySigner le fait sans bibliothèque JWT — et votre endpoint tient en trois lignes. Ne signez jamais qu’un id que votre backend a authentifié : signer un user id tiré de l’input de la requête permet à n’importe qui de se faire passer pour n’importe qui, avec en prime le sceau « vérifié ».

$signer = new Kilden\IdentitySigner(getenv('KILDEN_IDENTITY_SECRET'), ['kid' => 'k1']);
$token = $signer->sign($user->id, [
'traits' => ['plan' => $user->plan],
]);

Vous utilisez Laravel ? kilden/laravel fournit une route POST /kilden/identity publiable derrière votre middleware d’auth, et @kildenScript dans votre layout Blade rend le SDK web déjà branché dessus — aucun code d’intégration à écrire :

routes/web.php
Kilden\Laravel\KildenRoutes::identity();
{{-- resources/views/layouts/app.blade.php --}}
<head>
@kildenScript
</head>

La directive lit KILDEN_PUBLIC_WRITE_KEY (la clé publique wk_ — la secrète n’atteint jamais une vue) et résout la route d’identité par nom (kilden.identity) : un chemin personnalisé comme KildenRoutes::identity('/api/kilden-token') est pris en compte automatiquement. Elle appelle aussi kilden.identify() pour l’utilisateur connecté.

Le plugin WordPress expose la même chose sur /wp-json/kilden/v1/identity, cache-safe par construction.

isEnabled(flag_key, distinct_id, { person_properties?, default? })
getFeatureFlag(flag_key, distinct_id, { person_properties?, default? })

Évalués par Kilden côté serveur, mis en cache in-process 30 secondes par distinct_id, une tentative avec un timeout strict, puis votre default. La sémantique complète est dans le guide des feature flags.