legalweb.io

Dokumentation DSGVO API

DSGVO REST-API, Javascript Methoden & Events 

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.

API

Nach der Aktivierung und der Konfiguration im Dashboard sind die erzeugten Daten über die API abrufbar.

API Request

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.

Beispiel: API-Call via Curl in PHP

<?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>

API-Ausgabe

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": "" } ] } }

Feldbeschreibung

legalWebApi

domain: enthält Daten zur Domain

services: Impressum, Datenschutz, Vertrag

Strings

Txt, html, js, css, … sind im JSON escaped gemäß RFC 7159 Punkt 7. https://tools.ietf.org/html/rfc7159 also z.B. \”Hallo!\”.

API Fehlercodes

codeFehlermeldung
10Keine gültige Domain
20Kein gültiger Header
30Keine Guid angegeben
40Eine ungültige Guid
50Keine Callback URL angegeben
60 

Client-Side Javascript: Events und Methoden

Events

lw-optinout

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); });

lw-beforeshowpopup und lw-beforeshownotice

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); });

Methoden

Nach Initialisierung sind folgende Methoden via window Objekt verfügbar.

Aktivieren, Deaktivieren, Statusabfrage von Integrationen/Diensten

Manuelles Anzeigen des Popups/der Notice

Popup und Notice können mit folgenden Methoden angezeigt werden

Manuelle Initialisierung des Legalweb Javascripts

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.

Prüfung ob Legalweb geladen und initialisiert ist

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.

Temporäres Deaktivieren der Legalweb Funktionen für einen Request

Wird bei einer URL der Parameter lwDisableLegalweb angehängt, wird keine Popup, keine Notice angezeigt, keine Integrationen geladen, keine Inhalte blockiert.

Clients / Plugins

Eine Liste mit verfügbaren Clients und eine Auflistung der Anforderungen an Clients finden sich hier.

Logo
Datenschutzinformation
Der datenschutzrechtliche Verantwortliche (legal web GmbH, Österreich) würde gerne mit folgenden Diensten Ihre personenbezogenen Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl: