Sobald für eine Domain im Dashboard ein Service (Datenschutz, Impressum, AGB, …) aktiviert wurde, werden für diese Domain alle notwendigen Daten zur Einbindung des Consent Managers, der Datenschutzerklärung, AGB, … über die API ausgeliefert.
Haben Sie noch keine Domain angelegt, oder Dienste dafür konfiguriert, müssen Sie dies zuvor erledigen. Eine Schnellstart Anleitung finden Sie hier: Schnellstart
Grundsätzlich wird empfohlen, legalweb.io über ein bereits bestehendes Plugin zu nutzen. Alternativ ist ein Abruf aller Daten und Funktionen über die REST-API möglich.
Nach der Aktivierung und der Konfiguration im Dashboard sind die erzeugten Daten über die API abrufbar.
Die API ist unter der folgenden URL erreichbar:
https://legalweb.io/api
Bei jedem API Request müssen die GUID und die Callback URL im HEADER mitübergeben werden. Der Content-Type des Requests muss “application/x-www-form-urlencoded” sein.
API Requests sind nur zum Zweck des Updates der lokal gespeicherten Daten zulässig. Zeitgesteuerte API Requests zum zweck des Updates sind maximal alle 24 Stunden zulässig.
Alle von der API bezogenen Daten sind lokal zu speichern.
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://legalweb.io/api',
CURLOPT_POST => 1,
CURLOPT_HTTPHEADER => array(
"content-type: application/x-www-form-urlencoded",
"Guid: 3c0e1033-3691-41d8-a758-fa3b1d402201",
"Callback: https://meine-webseite.com/?cb=legalwebxyz",
)
]);
$resp = curl_exec($curl);
curl_close($curl);
// var_dump($resp); // hier könnte der gesamte json string ausgegeben werden
$apiData = json_decode ($resp); // der komplette Response müsste nun zwischengespeichert werden (zB. in der Db, in einem File,...)
$css = $apiData->services->dppopupcss;
$js = $apiData->services->dppopupjs;
$popup_de = $apiData->services->dppopup->de;
$spDsgvoGeneralConfig = $apiData->services->dppopupconfig->spDsgvoGeneralConfig;
$spDsgvoIntegrationConfig = $apiData->services->dppopupconfig->spDsgvoIntegrationConfig;
?>
<!DOCTYPE html>
<html>
<head>
<style>
<?= $css ?>;
</style>
</head>
<body>
<h1>This is a test page</h1>
<script>
var spDsgvoGeneralConfig = JSON.parse('<?php echo json_encode($spDsgvoGeneralConfig); ?>');
var spDsgvoIntegrationConfig = JSON.parse('<?php echo json_encode($spDsgvoIntegrationConfig); ?>');
<?= $js; ?>
</script>
<?= $popup_de ?>;
</body>
</html>
Die Ausgabe der API erfolgt im JSON Format. Es wird immer der komplette Datensatz geliefert. Die Abfrage einzelner Services ist derzeit nicht geplant, da die gewünschten Services ohnehin im Backend konfiguriert wurden.
{
"lw_api": {
"mode": "",
"version": "",
"description": "API of legalweb.io",
"url": "https://legalweb.io/api",
"documentation": "https://legalweb.io/support/api",
"terms": "https://legalweb.io/shop/agb/"
},
"domain": {
"domain_id": "",
"domain_guid": "",
"domain_url": "",
"domain_callback": "",
"organisation": "",
"address": "",
"city": "",
"zip": "",
"country": "",
"phone": "",
"email": ""
},
"services": {
"imprint": {
"de": "",
"en": ""
},
"dpstatement": {
"de": "",
"en": ""
},
"dppopup": {
"de": "",
"en": ""
},
"dppopupcss": ""
,
"dppopupjs": ""
,
"dppopupconfig": {
"spDsgvoGeneralConfig": {},
"spDsgvoIntegrationConfig": {}
},
"contractterms": {
"de": "",
"en": ""
},
"contractcheckout": {
"de": "",
"en": ""
},
"contractwithdrawaldigital": {
"de": "",
"en": ""
},
"contractwithdrawalservice": {
"de": "",
"en": ""
},
"guetesiegel": {
"de": ""
},
"messages": [{
"id": "",
"msg": ""
}
]
}
}
Txt, html, js, css, … sind im JSON escaped gemäß RFC 7159 Punkt 7. https://tools.ietf.org/html/rfc7159 also z.B. \”Hallo!\”.
code | Fehlermeldung |
---|---|
10 | Keine gültige Domain |
20 | Kein gültiger Header |
30 | Keine Guid angegeben |
40 | Eine ungültige Guid |
50 | Keine Callback URL angegeben |
60 |
Bei einem Opt-In oder Opt-Out wird ein Custom Event “lw-optinout” dispatched. Dem Event wird Folgendes als Details übergeben
Mit folgendem Code kann sich auf das Event gebunden werden:
document.querySelector('.sp-dsgvo-privacy-popup').addEventListener('lw-optinout', function (e) { console.log('optinout', e.detail); });
Vorm Anzeigen des Popups bzw. der Notice, wird das entsprechende Event ausgelöst. Mit folgendem Code kann sich auf das Event gebunden werden:
document.querySelector('.sp-dsgvo-privacy-popup').addEventListener('lw-beforeshowpopup', function (e) { console.log('lw-beforeshowpopup', e.detail); });
Nach Initialisierung sind folgende Methoden via window Objekt verfügbar.
Popup und Notice können mit folgenden Methoden angezeigt werden
Falls Popup und Notice nicht via DOMContentLoaded Event geladen werden, steht eine Methode zum benutzerdefinierten Initialisieren zur Verfügung. Diese Methode initialisiert das “komplette” Frontend, zeigt aber noch nichts an. Angezeigt muss das Popup auch manuell via der im vorigen Punkt genannten Methoden.
Sobald das Javascript geparsed wurde, ist das Objekt spDsgvoGeneralConfig als window.spDsgvoGeneralConfig verfügbar.
Zusätzlich kann window.lwFrontendInitCompleted auf true/false geprüft werden.
Wird bei einer URL der Parameter lwDisableLegalweb angehängt, wird keine Popup, keine Notice angezeigt, keine Integrationen geladen, keine Inhalte blockiert.
Eine Liste mit verfügbaren Clients und eine Auflistung der Anforderungen an Clients finden sich hier.