Installation côté serveur
Logora peut être installé sur n'importe quel site en insérant les pages de débat en code natif JavaScript et en insérant la question en pied d'article (la synthèse) côté serveur. Cette installation permet d'améliorer la performance de vos pages articles et d'indexer les pages de débat sur les moteurs de recherche.
Cette documentation est à destination des développeurs. Logora propose également une documentation personnalisée pour l'installation Wordpress.
L'installation se fait en deux temps :
- Insérer l'espace de débat en Javascript
- Insérer la synthèse du débat sur vos pages côté serveur
Avant de commencer
- Si l'équipe Logora ne vous a pas créé d'espace d'administration, créez votre espace d'administration Logora : Inscription
- Munissez-vous de votre nom d'application disponible sur votre espace d'administration dans l'onglet Configuration > Général.
- Autorisez les domaines sur lesquels vous désirez installer Logora. Pour cela, rendez-vous sur votre espace d'administration dans l'onglet Configuration > Général > Sécurité > Domaines autorisés. Par exemple, si le code inséré sur la page à l'URL https://exemple.com/article/exemple-article, ajoutez le domaine https://exemple.com. Exemple : http://localhost:3000 , http://sous-domaine.exemple.com. Important : l'ajout des domaines sur l'espace d'administration fonctionne comme un ajout de tag, n'oubliez pas d'appuyer sur "Entrer" lors de l'insertion de vos URL.
1. Installer l'espace de débat
L'espace de débat est la plateforme principale où vos utilisateurs pourront participer aux débats. L'espace de débat est inséré sur une page dédiée sur votre site.
Prenons l'exemple d'un site web disponible à l'adresse https://votresite.com. L'éditeur du site web souhaite accéder à l'espace de débat via l'adresse https://votresite.com/espace-debat. Voici les étapes à suivre pour insérer l'espace de débat :
1.1. Ajouter une page pour insérer l'espace de débat
Créez une page dédiée où sera inséré l'espace de débat. Cette page est disponible à l'adresse https://votresite.com/espace-debat. Le préfixe 'espace-debat' est le préfixe par défaut. Il est modifiable dans l'espace d'administration.
1.2. Insérer le code JavaScript et vos variables de configuration
Insérez le code Javascript du débat à l'endroit où vous souhaitez voir apparaître l'espace de débat.
Le conteneur logora_app est l'endroit où l'espace de débat est chargé.
Code standard à copier/coller et compléter :
<div id="logora_app"></div>
<script>
// Variables de configuration
var logora_config = {
shortname: "NOM_APPLICATION" // Nom d'application présent dans votre espace d'administration
};
(function() {
var d = document, s = d.createElement('script');
s.src = 'https://cdn.logora.com/debat.js';
(d.head || d.body).appendChild(s);
})();
</script>
1.3. Réécriture des URLs pour les routes de l'espace de débat
Utilisez la réécriture d'URL sur votre plateforme ou CMS pour que les chemins commençant par 'espace-debat/' (ou le préfixe que vous avez choisi) pointent vers la page où est inséré l'espace de débat.
Accédez à la page https://votresite.com/espace-debat/debats. Vous êtes sur la page d'accueil de l'espace de débat !
Pour modifier le préfixe et les chemins d'URLs des pages de l'espace de débat, rendez-vous sur la configuration des chemins d'URL.
2. Récupération du code de la synthèse
Logora fournit une route d'API pour récupérer la synthèse dans vos pages côté serveur. Cette route d'API renvoie le code HTML complet de la synthèse (CSS et scripts inclus), que vous pouvez insérer dans votre modèle de page. Cette méthode remplace l'insertion du script Logora sur vos pages.
Pour accéder à une documentation plus détaillée de l'API de pré-rendu, rendez-vous sur la Documentation
Cette API est utilisée par ailleurs par le code Javascript Logora pour afficher la synthèse.
Requête
URL de base :
https://render.logora.fr/synthesis
pour la synthèsehttps://render.logora.fr/widget
pour le widget
Méthode : POST
En-tête : Content-Type: application/json
Paramètres d'URL :
shortname
(requis) : nom de votre application disponible dans votre espace d'administrationuid
(requis) : identifiant unique de la pagedevice
(optionnel) : indique le type d'appareil de l'utilisateur. Les choix possibles sont :mobile
,tablet
,desktop
. Ce paramètre est utilisé pour adapter le design du module en fonction de la taille de l'écran.language
(optionnel) : indique la langue des textes de la synthèse. Les choix possibles sont :fr
,es
,en
,de
,it
.insertType
(optionnel) : mode d'insertion, ne pas ajouter si insertion standard. Indiquer amp pour une insertion sur une page AMP ou iframe pour une insertion en iframe.cache
(optionnel) : true ou false. Permet de désactiver le cache pour tester en environnement de développement. Par défaut, les requêtes sont mises en cache quelques minutes. Ne pas désactiver le cache en production.noHtml
(optionnel) : true. Permet d'éviter la génération du code HTML pour seulement récupérer les informations nécessaires pour intégrer votre design.
Corps de la requête : Le corps de la requête doit contenir des métadonnées sur la page, en format JSON.
{
"source":
{
"source_url": "https://votresite.com/article", // (Requis) URL canonique de la page
"uid": "a3f4e033-9e13-4abb-be11-2d87a2294013", // (Requis) Identifiant unique de la page
"title": "Titre de l'article", // (Requis) Titre de la page
"description": "Description de la page", // (Optionnel) Description de la page
"origin_image_url": "https://image.com/image.png", // (Optionnel) URL de l'image de la page
"published_date": "2020-12-01T12:00:00+01:00", // (Requis) Date de publication de la page au format ISO_8601
"publisher": "Mon site", // (Optionnel) Nom du site
"tag_objects": [ // (Optionnel) Étiquettes de l'article sous forme de tableau d'objets
{
"name": "politique", // (Requis) Nom affiché de l'étiquette
"uid": "politique-001" // (Optionnel) Identifiant unique de l'étiquette. Peut être omis si les noms sont déjà uniques
},
{
"name": "santé",
"uid": "sante-003"
},
]
}
}
Exemples d'URL de requête :
https://render.logora.fr/synthesis?shortname=demo-app&uid=cc7c1624-9d5c-4206-b2d4-d18cb36c59d6
https://render.logora.fr/synthesis?shortname=demo-app&uid=cc7c1624-9d5c-4206-b2d4-d18cb36c59d6&insertType=amp
Le paramètre
source_url
doit avoir un nom de domaine identique à un des domaines autorisés de votre application (modifiable dans Configuration > Général), sinon, la source envoyée ne sera pas prise en compte.
Pour des raisons de performance, les sources publiées il y a plus de 18 mois ne sont pas prises en compte.
Réponse
La réponse renvoyée est sous cette forme :
{
"success": true, // true si un débat est associé, false si aucun débat ou une erreur
"debate": {
"slug": "mon-debat", // Identifiant unique du débat, présent dans l'URL
"name": "Faut-il introduire une dose de proportionnelle dans l'élection des députés ?", // Titre du débat
"direct_url": "https://exemple.com/espace-debat/debat/mon-debat" // Lien vers le débat
},
"content": CODE_HTML // Code HTML de la synthèse à insérer dans la page. Attribut non présent si success à false
}
Le code HTML renvoyé a pour racine le conteneur suivant :
<div id="logoraRoot" class="logoraContainer" data-id="synthesis"><div>
Récupérer la liste des articles (optionnel)
Pour éviter de faire des appels inutiles et charger la synthèse uniquement sur les pages article où un débat est lié, vous pouvez utiliser la route prévue par l'API de Logora pour récupérer la liste de vos articles liés à un débat.
Requête
URL de base :
https://app.logora.fr/api/v1/updated_sources
Méthode : GET
En-tête : Content-Type: application/json
Paramètres d'URL :
shortname
(requis) : nom de votre application disponible dans votre espace d'administrationtimestamp
(requis) : date depuis laquelle vous souhaitez récupérer les mises à jour des articles (si un débat est associé ou non), en format timestamp Unix (secondes).page
(optionnel) : numéro de pageper_page
(optionnel) : nombre d'éléments par page, par défaut 10
La route renvoie l'ensemble des articles qui ont eu une modification d'association à un débat depuis la date passée en paramètre.
Réponse
{
"success": true,
"data": {
{
"identifier": 1, // Identifiant unique de l'article que vous fournissez lors de l'insertion de la synthèse
"title": "Exemple d’Article – Démo", // Titre de l'article
"source_url": "https://demo.logora.fr/article-demo", // URL de l'article
"has_debate": false, // Indique si l'article est associé à un débat
"debate_updated_at": "2021-01-06T16:01:19.717Z" // Dernière modification de l'association à un débat (association à un débat ou suppression de l'association)
},
{
"identifier": 2,
"title": "Exemple d'article #2 - Démo",
"source_url": "https://demo.logora.fr/article2-demo",
"has_debate": true,
"debate_updated_at": "2021-01-06T15:22:32.630Z"
},
...
}
}
En-têtes de la réponse :
total
: nombre total d'éléments (sans inclure la pagination)total-pages
: nombre de pages de la réponse