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

terminal
npm install @lunionlab/meet-server-sdk

4. 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.

server.ts
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.

terminal
npm install @lunionlab/meet-react
Call.tsx
"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 via https://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.