Connecteurs Web - Scripts d'import automatique
Prérequis sur le serveur LWS
cd /opt/web-import
npm install playwright
npx playwright install chromium --with-deps
Configuration
- Depuis l'application : Configuration > Connecteurs web → créer une source SFR → copier le token API
- Créer un fichier de configuration :
cp config.example.json config.json
# Éditer config.json avec vos valeurs
Contenu de config.json :
{
"sfrLogin": "votre-login@sfr.fr",
"sfrPassword": "votre-mot-de-passe",
"appUrl": "https://demat-facturation.santinova-soft.org",
"apiToken": "votre-token-api-copié-depuis-lappli",
"downloadDir": "/tmp/sfr-invoices",
"processedFile": "/tmp/sfr-processed.json"
}
Ou utiliser des variables d'environnement :
export SFR_LOGIN=votre-login@sfr.fr
export SFR_PASSWORD=votre-mot-de-passe
export APP_URL=https://demat-facturation.santinova-soft.org
export API_TOKEN=votre-token-api
Exécution manuelle
node sfr-connector.mjs
Planification (cron)
Ajouter dans le crontab (crontab -e) :
# Import SFR le 5 de chaque mois à 8h00
0 8 5 * * /usr/bin/node /opt/web-import/sfr-connector.mjs >> /var/log/sfr-import.log 2>&1
Ajouter un nouveau connecteur
Dupliquer sfr-connector.mjs et adapter :
- L'URL du portail (
portalUrl) - Les sélecteurs CSS pour le login et les liens de factures
- Le nom du fichier de suivi (
processedFile)
Fonctionnement
- Le script se connecte au site SFR avec les identifiants fournis
- Il navigue vers la section factures
- Il télécharge les PDFs non encore traités
- Il les envoie à l'application via l'endpoint
/api/web-import/push-invoice - L'application extrait les données avec l'IA et crée les factures
- Le script marque les factures comme traitées pour éviter les doublons