SDK serveur

Trois fichiers à copier dans votre projet, sans dépendance : Node.js 18+, PHP 7.4+ et Python 3.8+. Version 1.1.

Node.jsPHPPythonRôle
creerLien({ id, jours, page, reference })creerLien($id, $jours, $page, $reference)creer_lien(id, jours, page, reference)Lien d’abonné
revoquerLiens(reference)revoquerLiens($reference)revoquer_liens(reference)Fin d’abonnement
publications({ publication, limite })publications($publication, $limite)publications(publication, limite)Vos numéros
numero(id)numero($id)numero(id)Un numéro
publier({ fichier, titre, … })publier($fichier, $champs)publier(fichier, titre, **champs)Envoi et publication
modifierNumero(id, champs)modifierNumero($id, $champs)modifier_numero(id, **champs)Modification
statistiques({ id, depuis })statistiques($id, $depuis)statistiques(id, depuis)Lectures
compte()compte()compte()Formule et limites
LiseusePDF.verifierWebhook(…)LiseusePDF::verifierWebhook(…)LiseusePDF.verifier_webhook(…)Signature des webhooks

Node.js

abonne.mjs
import { LiseusePDF } from "./liseuse-pdf.mjs";

const liseuse = new LiseusePDF({ cleApi: process.env.LISEUSE_CLE_API });

// espace abonné, après avoir vérifié l’abonnement :
const { url } = await liseuse.creerLien({ id: "liseuse-pdf.com:inklura-escales-n12", jours: 1, reference: abonne.id });

// chaîne de production : publier le numéro du mois
const { numero } = await liseuse.publier({
  fichier: "./sortie/escales-13.pdf", titre: "Escales n°13", publication: "escales",
  parution: "2026-11", lien_achat: "https://www.escales.fr/abonnement",
});

// résiliation
await liseuse.revoquerLiens(abonne.id);

PHP

abonne.php
require __DIR__ . '/LiseusePDF.php';

$liseuse = new LiseusePDF(getenv('LISEUSE_CLE_API'));
$lien = $liseuse->creerLien('liseuse-pdf.com:inklura-escales-n12', 1, null, (string) $abonne->id);
echo $lien['iframe'];

$numero = $liseuse->publier('/var/pdf/escales-13.pdf', ['titre' => 'Escales n°13', 'publication' => 'escales']);
$liseuse->revoquerLiens((string) $abonne->id);

Python

abonne.py
from liseuse_pdf import LiseusePDF

liseuse = LiseusePDF(os.environ["LISEUSE_CLE_API"])
lien = liseuse.creer_lien("liseuse-pdf.com:inklura-escales-n12", jours=1, reference=str(abonne.id))

numero = liseuse.publier("sortie/escales-13.pdf", "Escales n°13", publication="escales", parution="2026-11")
liseuse.modifier_numero(numero["numero"]["id"], acces="libre")

Erreurs

Les trois SDK lèvent une erreur dédiée (LiseuseError, LiseusePDFException) avec le statut HTTP et le code de l’API, par exemple 404 not_found ou 403 forbidden_scope. publier envoie une clé d’idempotence : relancé après une coupure, il ne crée pas de doublon.