V-ROOM API
Cette documentation couvre les APIs :
1. LOGIN API
Description
Permet de s'authentifier en utilisant une adresse email et un mot de passe. Si l'authentification est réussie, un jeton JWT (JSON Web Token) sera retourné.
Détails de l'API
- Méthode :
POST
- URL :
https://<servername>/api/login/
- Paramètres :
- email (obligatoire) : Adresse email de l'utilisateur.
- password (obligatoire) : Mot de passe.
- En-tête : Aucun en-tête spécial requis.
Exemple Request
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://<servername>/api/login/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
'email' => 'email@domain.com',
'password' => 'password'
]
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://<servername>/api/login/"
data = {
'email': 'email@domain.com',
'password': 'password'
}
response = requests.post(url, data=data)
print(response.json())
const axios = require('axios');
const url = 'https://<servername>/api/login/';
const data = {
email: 'email@domain.com',
password: 'password'
};
axios.post(url, data)
.then(response => console.log(response.data))
.catch(error => console.error(error));
curl -X POST https://<servername>/api/login/ \
-F "email=email@domain.com" \
-F "password=password"
Réponses
Succès (HTTP 200)
{
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"user": {
"id": 1,
"email": "email@domain.com",
"name": "John Doe"
}
}
access
: Jeton JWT à utiliser pour les requêtes protégées.refresh
: Jeton pour renouveler l'accès.
Erreur (HTTP 401)
{
"detail": "Invalid email or password."
}
2. JOIN_MEET API
Description
Permet de rejoindre directement une réunion en utilisant un jeton d'authentification JWT (Bearer token).
Détails de l'API
- Méthode :
GET
- URL :
https://<servername>/api/join_meeting_directly/
- En-tête :
Authorization: Bearer <access_token>
Exemple Request
<?php
$accessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://<servername>/api/join_meeting_directly/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer $accessToken"
]
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://<servername>/api/join_meeting_directly/"
headers = {
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
}
response = requests.get(url, headers=headers)
print(response.json())
const axios = require('axios');
const url = 'https://<servername>/api/join_meeting_directly/';
const headers = {
Authorization: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
};
axios.get(url, { headers })
.then(response => console.log(response.data))
.catch(error => console.error(error));
curl -X GET https://<servername>/api/join_meeting_directly/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Réponses
Succès (HTTP 200)
{
"iframe": "<iframe src='https://<servername>/roomname?jwt=dfjdhfeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJ2cm9vbSIsIm...' width='100%' height='500px'></iframe>",
"guest_url": "https://<servername>/roomname"
}
-
iframe
: Code HTML pour intégrer la réunion directement dans une page web. -
guest_url
: URL accessible aux invités pour rejoindre la réunion.
Erreur (HTTP 401)
{
"detail": "Invalid or expired token."
}
3. PROGRAMMED_MEET API
Description
Permet de planifier une réunion avec une date et une heure spécifiques en utilisant un jeton d'authentification JWT (Bearer token).
Détails de l'API
- Méthode :
POST
- URL :
https://<servername>/api/join_meeting_programmed/
- Paramètres :
- start_date (obligatoire) : Date de début de la réunion (format
YYYY-MM-DD
). - start_time (obligatoire) : Heure de début de la réunion (format
HH:MM
). - duration (obligatoire) : Durée de la réunion en minutes.
- password (optionnel) : Mot de passe de la salle si configuré.
- En-tête :
Authorization: Bearer <access_token>
Exemple Request
<?php
$accessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://<servername>/api/join_meeting_programmed/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer $accessToken"
],
CURLOPT_POSTFIELDS => [
'start_date' => '2024-12-16',
'start_time' => '13:42',
'duration' => '60'
]
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://<servername>/api/join_meeting_programmed/"
headers = {
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
}
data = {
'start_date': '2024-12-16',
'start_time': '13:42',
'duration': '60'
}
response = requests.post(url, headers=headers, data=data)
print(response.json())
const axios = require('axios');
const url = 'https://<servername>/api/join_meeting_programmed/';
const headers = {
Authorization: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
};
const data = {
start_date: '2024-12-16',
start_time: '13:42',
duration: 60
};
axios.post(url, data, { headers })
.then(response => console.log(response.data))
.catch(error => console.error(error));
curl -X POST https://<servername>/api/join_meeting_programmed/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-F "start_date=2024-12-16" \
-F "start_time=13:42" \
-F "duration=60"
Réponses
Succès (HTTP 200)
{
"iframe": "<iframe src='https://<servername>/roomname?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
width='100%' height='500px'></iframe>",
"guest_url": "https://<servername>/roomname",
"start_time_unix": 1734352920.0,
"duration": 3600
}
-
iframe
: Code HTML pour intégrer la réunion directement dans une page web. -
guest_url
: URL accessible aux invités pour rejoindre la réunion. -
start_time_unix
: Horodatage UNIX du début de la réunion. -
duration
: Durée de la réunion en secondes.
Erreur (HTTP 400)
{
"detail": "Invalid date or time format."
}
Notes supplémentaires
- Validation des entrées : Assurez-vous que les paramètres requis sont toujours fournis.
- Gestion des erreurs :
401 Unauthorized
: Jeton manquant ou invalide.400 Bad Request
: Paramètres invalides ou manquants.- Sécurité :
- Toujours utiliser HTTPS pour protéger les données sensibles.
- Ne partagez pas les jetons d'authentification publiquement.