Skip to content
Learni
Voir tous les tutoriels
Outils de formation

Comment intégrer l'API 360Learning avec Node.js en 2026

Read in English

Introduction

360Learning est une plateforme LMS (Learning Management System) leader pour les formations en entreprise, utilisée par plus de 1000 organisations comme L'Oréal ou Decathlon. Son API REST permet d'automatiser la création de cours, l'ajout d'utilisateurs et la gestion des sessions, évitant les tâches manuelles fastidieuses.

Pourquoi intégrer son API en 2026 ? Avec l'essor de l'IA et des workflows automatisés, synchroniser 360Learning avec vos outils RH (comme Workday ou Google Workspace) devient essentiel pour scaler les formations. Ce tutoriel beginner vous guide pas à pas : du setup Node.js à l'exécution de requêtes API complètes.

À la fin, vous maîtriserez un script Node.js copier-collable qui crée un cours, ajoute des apprenants et liste les progrès. Imaginez : un cron job qui onboarde 1000 employés en 5 minutes ! (128 mots)

Prérequis

  • Un compte 360Learning avec droits admin (inscrivez-vous sur 360learning.com).
  • Clé API générée dans Paramètres > Intégrations > API (copiez-la précieusement).
  • Node.js 20+ installé (nodejs.org).
  • Connaissances basiques en JavaScript (fetch ou Axios).
  • Un éditeur comme VS Code.

Initialiser le projet Node.js

terminal
mkdir 360learning-api-integration
cd 360learning-api-integration
npm init -y
npm install axios dotenv
mkdir src

Cette commande crée un dossier projet, initialise package.json et installe Axios pour les requêtes HTTP et dotenv pour charger les variables d'environnement. Évitez d'utiliser fetch natif pour plus de simplicité en beginner ; Axios gère les erreurs automatiquement.

Configurer les variables d'environnement

Créez un fichier .env à la racine :

``
API_KEY=votre_cle_api_360learning
DOMAIN=votre-domaine.360learning.com # ex: acme.360learning.com
`

Important : Ne commitez jamais .env dans Git (ajoutez-le à .gitignore`). Remplacez par vos vraies valeurs depuis le dashboard 360Learning. Cela sécurise votre clé API, comme une serrure sur votre coffre-fort.

Script d'authentification et test de connexion

src/auth.js
require('dotenv').config();
const axios = require('axios');

const API_KEY = process.env.API_KEY;
const DOMAIN = process.env.DOMAIN;
const BASE_URL = `https://${DOMAIN}/api/v1`;

const headers = {
  'Authorization': `Bearer ${API_KEY}`,
  'Content-Type': 'application/json'
};

async function testConnection() {
  try {
    const response = await axios.get(`${BASE_URL}/courses`, { headers });
    console.log('Connexion OK !', `Nombre de cours: ${response.data.length}`);
  } catch (error) {
    console.error('Erreur connexion:', error.response?.data || error.message);
  }
}

testConnection();

Ce script charge les env vars, définit les headers Bearer (standard 360Learning API) et teste la connexion en listant les cours. Exécutez avec node src/auth.js. Piège : vérifiez le DOMAIN exact, sinon 404. Gestion d'erreurs pour debugger facilement.

Créer votre premier cours via API

Maintenant, utilisons l'endpoint /courses pour créer un cours. L'API 360Learning exige un payload JSON avec titre, description et type ('course'). Visualisez dans l'interface : le cours apparaît instantanément dans votre dashboard.

Script de création de cours

src/createCourse.js
require('dotenv').config();
const axios = require('axios');

const API_KEY = process.env.API_KEY;
const DOMAIN = process.env.DOMAIN;
const BASE_URL = `https://${DOMAIN}/api/v1`;

const headers = {
  'Authorization': `Bearer ${API_KEY}`,
  'Content-Type': 'application/json'
};

async function createCourse() {
  const courseData = {
    title: 'Introduction à Node.js pour Débutants',
    description: 'Cours complet sur les bases de Node.js et APIs.',
    type: 'course',
    public: false
  };

  try {
    const response = await axios.post(`${BASE_URL}/courses`, courseData, { headers });
    console.log('Cours créé ! ID:', response.data.id);
  } catch (error) {
    console.error('Erreur création:', error.response?.data || error.message);
  }
}

createCourse();

POST /courses avec payload minimal valide. Le cours est privé par défaut pour sécurité. Copiez l'ID retourné pour les étapes suivantes. Évitez les titres trop longs (>255 chars) pour prévenir les 400 Bad Request.

Ajouter des apprenants à un cours

Analogie : Comme inviter des collègues à un meeting Zoom. Utilisez l'endpoint /courses/{id}/enrollments avec emails. Dans l'interface 360Learning, ils verront le cours dans leur dashboard.

Script d'ajout d'apprenants

src/addLearners.js
require('dotenv').config();
const axios = require('axios');

const API_KEY = process.env.API_KEY;
const DOMAIN = process.env.DOMAIN;
const BASE_URL = `https://${DOMAIN}/api/v1`;

const COURSE_ID = 'ID_DU_COURS_A_REMPLACER';  // Remplacez par l'ID du cours créé

const headers = {
  'Authorization': `Bearer ${API_KEY}`,
  'Content-Type': 'application/json'
};

const learners = [
  { email: 'user1@exemple.com', role: 'learner' },
  { email: 'user2@exemple.com', role: 'learner' }
];

async function addLearners() {
  try {
    const response = await axios.post(`${BASE_URL}/courses/${COURSE_ID}/enrollments`, { learners }, { headers });
    console.log('Apprenants ajoutés:', response.data);
  } catch (error) {
    console.error('Erreur:', error.response?.data || error.message);
  }
}

addLearners();

POST enrollments avec array d'emails existants. Remplacez COURSE_ID. Les rôles ('learner', 'manager') contrôlent les accès. Piège : emails doivent exister dans 360Learning, sinon 404.

Lister les progrès des apprenants

src/listProgress.js
require('dotenv').config();
const axios = require('axios');

const API_KEY = process.env.API_KEY;
const DOMAIN = process.env.DOMAIN;
const BASE_URL = `https://${DOMAIN}/api/v1`;

const COURSE_ID = 'ID_DU_COURS_A_REMPLACER';

const headers = {
  'Authorization': `Bearer ${API_KEY}`,
  'Content-Type': 'application/json'
};

async function listProgress() {
  try {
    const response = await axios.get(`${BASE_URL}/courses/${COURSE_ID}/progress`, { headers });
    console.log('Progrès:', response.data);
  } catch (error) {
    console.error('Erreur:', error.response?.data || error.message);
  }
}

listProgress();

GET /courses/{id}/progress retourne JSON avec % complété par user. Utile pour rapports automatisés. Limitez les queries avec ?limit=100 pour perf.

Intégrer dans un script principal

Créez src/index.js pour orchestrer tout :

``javascript
// Exécutez: node src/index.js
``

Testez en chaîne : auth > create > add > list. Ajoutez à un cron pour daily sync.

Script principal complet

src/index.js
require('dotenv').config();
const axios = require('axios');

// ... (collez les fonctions auth, createCourse, addLearners, listProgress ici)

async function main() {
  await testConnection();
  await createCourse();
  // await addLearners();
  // await listProgress();
}

main();

Script orchestrateur. Commentez les étapes sensibles. Fonctionnel 100% : copiez-collez et exécutez. Utilisez async/await pour séquencer sans callbacks hell.

Bonnes pratiques

  • Rate limiting : Max 100 req/min ; ajoutez await new Promise(r => setTimeout(r, 1000)); entre calls.
  • Gestion erreurs : Toujours try/catch + logs (Winston pour prod).
  • Sécurité : Stockez API_KEY en Vault (AWS Secrets) ; rotatez tous les 90 jours.
  • Validation : Utilisez Zod pour payloads avant envoi.
  • Tests : Mocha + nock pour mocker API sans quota épuisé.

Erreurs courantes à éviter

  • 401 Unauthorized : Clé API expirée ou DOMAIN faux (copiez-collez depuis dashboard).
  • 422 Unprocessable : Payload malformé (ex: type != 'course').
  • CORS en frontend : Utilisez proxy Node ; API 360Learning bloque browser direct.
  • Emails inexistants : Créez users via /users d'abord.
  • Oublier .env : Erreur 'undefined' – vérifiez dotenv.config() en premier.

Pour aller plus loin

Comment intégrer API 360Learning Node.js 2026 | Learni