Démarrage rapide
Du compte vide à votre premier appel vidéo intégré. Comptez 5 minutes.
1. Créez un compte et une application
Créez votre compte, puis dans le tableau de bord créez un projet et une application. Une application représente une intégration (votre site, votre app mobile…) et regroupe ses clés, ses salles et sa facturation.
Ouvrir le tableau de bord
Créez votre compte, votre projet et votre première application.
2. Générez une clé d'API
Dans votre application, ouvrez Clés d'API et créez une clé. Elle a la forme lk_xxx.secret et n'est affichée qu'une seule fois, copiez-la immédiatement dans un endroit sûr.
Gardez votre clé côté serveur
Une clé d'API donne un accès complet à votre application. Ne l'exposez jamais dans le code de votre site ou de votre app mobile : utilisez-la uniquement depuis votre backend.3. Installez le SDK serveur
npm install @lunionlab/meet-server-sdk4. Créez une salle et un jeton (serveur)
Depuis votre backend, créez une salle puis émettez un jeton de connexion pour l'utilisateur qui doit la rejoindre. Renvoyez le jeton et l'URL du serveur média à votre client.
import { RoomServiceClient } from "@lunionlab/meet-server-sdk"; const rooms = new RoomServiceClient( "https://meet.lunion-lab.com/api/v1", process.env.LUNION_API_KEY!, // votre clé "lk_xxx.secret"); // 1) Créer une salleconst room = await rooms.createRoom("Réunion produit"); // 2) Émettre un jeton pour un utilisateur de votre appconst access = await rooms.createToken(room.slug, "user-42", { name: "Awa Diop",}); // → renvoyez access.token et access.url à votre clientconsole.log(access.url, access.token);5. Connectez le client
Côté front, installez @lunionlab/meet-react et utilisez le hook useLunionRoom avec le jeton reçu de votre serveur. La caméra, le micro et l'abonnement aux autres participants sont gérés pour vous.
npm install @lunionlab/meet-react"use client";import { useLunionRoom, VideoTrack } from "@lunionlab/meet-react"; export function Call({ url, room, token }: { url: string; room: string; token: string }) { const { localStream, participants, toggleMic, toggleCamera, leave } = useLunionRoom({ sfuUrl: url, room, name: "Awa", token, // émis par votre serveur }); return ( <div> <VideoTrack stream={localStream} muted className="w-48" /> {participants.map((p) => ( <VideoTrack key={p.id} stream={p.stream} className="w-48" /> ))} <button onClick={toggleMic}>Micro</button> <button onClick={toggleCamera}>Caméra</button> <button onClick={leave}>Quitter</button> </div> );}Le saviez-vous
Une salle reste joignable directement dans le navigateur viahttps://votre-domaine/room/<slug>. Pratique pour partager un lien sans écrire de client, par exemple pour une réunion ponctuelle.Et ensuite
- Restreignez les droits d'un participant (spectateur, modérateur…) à l'émission du jeton - voir
grants. - Recevez les événements de session (arrivées, départs, fin) via les webhooks.