Zum Hauptinhalt springen
Alle KollektionenCMS-Integrationen
Erstellung einer benutzerdefinierten CMS-Integration
Erstellung einer benutzerdefinierten CMS-Integration
Daniel Towers avatar
Verfasst von Daniel Towers
Diese Woche aktualisiert

Verwenden Sie diese API, um Ihr CMS mit Silktide zu verbinden, wenn Sie ein CMS haben, das von Silktide noch nicht unterstützt wird.

Übersicht

Silktide ist eine Plattform zur Website-Verwaltung, die Websites auf eine Vielzahl von Problemen überwacht – wie defekte Links, Unzugänglichkeit und Rechtschreibfehler. Bei der Integration mit einem CMS werden die folgenden zwei Verbesserungen möglich:

  1. Veröffentlichung – das Veröffentlichen einer Seite im CMS veranlasst Silktide, die betroffenen URL(s) sofort zu testen.

  2. Bearbeitung – Benutzer können in Silktide auf eine Schaltfläche klicken, um eine bestimmte Seite im CMS zu bearbeiten.

Authentifizierung

Silktide stellt einen API-Schlüssel zur Verfügung, um Anrufe an die API für CMS-Integrationen zu authentifizieren.

Um Ihren API-Schlüssel zu erhalten:

  1. Melden Sie sich bei Silktide an

  2. Wählen Sie Ihre Website aus

  3. Klicken Sie oben rechts auf dem Bildschirm auf Einstellungen > Integrationen.

  4. Klicken Sie auf Neues CMS, wählen Sie dann Ihr CMS aus und klicken Sie auf Hinzufügen

  • apiKey – Ihr API-Schlüssel

Dies gibt einen HTTP 200-Code zurück, wenn erfolgreich, oder 403 andernfalls.

Es ist nicht notwendig, diesen Endpunkt in Ihrer Integration zu implementieren, er ist nur nützlich zum Testen der Authentifizierung.

Beispiel für einen API-Schlüsseltest:

curl --header "Content-Type: application/json" \ --request POST \ --data '{"apiKey": "us:cd8c25ce-4132-4804-b643-cv2mc"}' \ https://api.silktide.com/cms/test-key

1. Veröffentlichung

Wenn eine Seite hinzugefügt oder aktualisiert wird, sollte das CMS eine Anfrage an die Silktide-Plattform senden, die die URLs der geänderten Seiten bereitstellt.

Um dies zu tun, führen Sie einen HTTP POST wie folgt aus:

  • apiKey – Ihr API-Schlüssel

  • url – eine URL, die Sie aktualisieren möchten ODER urls – ein Array von URLs, die Sie aktualisieren möchten

  • deferRetestSeconds – Anzahl der Sekunden, die gewartet werden soll, bevor die Seite erneut getestet wird (optional)

Zum Beispiel:

{ "apiKey": "dbb6936748454b13fe7f56660a09c027", "url": "http://example.com/page" }

Anfragen werden in die Warteschlange gestellt und asynchron verarbeitet, sodass Sie eine nahezu sofortige erfolgreiche Antwort (HTTP 200) erwarten sollten, aber jede Webseite, die Sie gesendet haben, kann 20-30 Sekunden dauern, um in Silktide erneut getestet zu werden.

2. Bearbeitung

Silktide muss wissen, welche URL Benutzer besuchen sollten, um eine bestimmte Seite in einem CMS zu bearbeiten. Zum Beispiel benötigen Sie zum Bearbeiten eines Beitrags in WordPress eine URL wie:

https://example.com/wp/wp-admin/post.php?post=123

In einigen CMS ist dies trivial abzuleiten, in anderen ist es unlösbar. Zum Beispiel fehlt einigen CMS das Konzept einer 'Seite', was es unmöglich macht, zu einem Editor für diese Seite zu verlinken.

Fügen Sie für jede von Ihrem CMS veröffentlichte Seite ein dynamisches <meta>-Tag hinzu, das Silktide mitteilt, wie diese Seite bearbeitet werden kann:

<meta name="silktide-cms" content="...">

Der Inhalt dieses Meta-Tags ist ein Base64-codiertes JSON-Objekt dieser Form:

{ "cms": "Wordpress", "editorUrl": "..." }

Wo:

  • cms ist ein Freitext-Beschreiber des aktuellen CMS, der dem Benutzer in Silktide angezeigt werden kann.

  • editorUrl ist die URL, die jemand besuchen sollte, um die Seite zu bearbeiten.

Dies ermöglicht es Benutzern von Silktide, auf die Bearbeiten-Schaltfläche im Seiteninspektor zu klicken und zum Seiteneditor im Content-Management-System zu gelangen, um die gemeldeten Probleme zu beheben.

Da Base64 trivial rückgängig zu machen ist, sollten Sie diesen Ansatz nicht verwenden, um URLs zu codieren, die einen Benutzer authentifizieren könnten, z.B. solche, die ein Token oder einen Benutzernamen oder Ähnliches enthalten. Wenn dies ein Problem darstellt, können Sie diese Daten optional verschlüsseln.

Erweitert: Verschlüsselung hinzufügen

Sie können Ihre JSON-Daten optional verschlüsseln, bevor sie Base64-codiert werden, unter Verwendung von AES-256-CBC. Zum Beispiel in PHP:

// Erstellen Sie Ihre $data zum Verschlüsseln, z.B. $data = [ "cms" => "Wordpress", "editorUrl" => "...", ]; $ivlen = openssl_cipher_iv_length('AES-256-CBC'); $iv = openssl_random_pseudo_bytes($ivlen); $ciphertext_raw = openssl_encrypt( json_encode($data), 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); $hmac = hash_hmac('sha256', $ciphertext_raw, $key, true); $ciphertext = base64_encode($iv.$hmac.$ciphertext_raw); // $ciphertext enthält jetzt den Inhalt für Ihr Meta-Tag

Testen Ihrer Integration

Sobald Ihre Integration bereit zum Testen ist:

  • Erhalten Sie einen API-Schlüssel, wie oben erklärt (unter Einstellungen > CMS), und stellen Sie sicher, dass Ihre Integration ihn verwendet.

  • Implementieren Sie Ihre Integration in Ihrem CMS.

  • Stellen Sie sicher, dass, wenn Metadaten oder Codeänderungen an Ihren öffentlichen Webseiten vorgenommen wurden, diese nicht in einem alten Zustand zwischengespeichert sind. Leeren Sie die Caches der Website, falls erforderlich.

  • Bitten Sie Silktide, die Website erneut zu testen.

  • Klicken Sie im Website-Bericht auf Informationen > Seiten und klicken Sie auf eine beliebige Seite, um sie im Inspektor anzuzeigen.

  • Eine Bearbeiten-Schaltfläche sollte in der oberen rechten Ecke des Bildschirms erscheinen, wenn der Bearbeitungs-Teil dieser Integration erfolgreich war. Ein Klick auf dieses Symbol sollte das CMS in einem neuen Tab öffnen und die aktuelle Seite bearbeiten.

  • Wenn Sie eine Seite in Ihrem CMS veröffentlichen und dann sofort zu Silktide wechseln, sollten Sie ein blaues Fortschrittsbanner oben auf dem Bildschirm sehen, während die aktualisierte Seite getestet wird.

Wenn Sie Schwierigkeiten mit einer Integration haben, kontaktieren Sie uns bitte über den Live-Chat in Ihrem Silktide-Konto.

Fehlerbehebung

  • Stellen Sie sicher, dass Ihr API-Schlüssel die Berechtigung hat, auf die Website(s) zuzugreifen, mit denen Sie sich integrieren. Wenn Sie einen Konto-API-Schlüssel verwenden, sollte dies kein Problem sein.

  • Sie können nur URLs testen, die den erlaubten und verweigerten URLs für die Website(s) entsprechen, die Sie testen. Das bedeutet, wenn Ihre Website als example.com definiert ist, können Sie keine Seiten von another-example.com testen. Sie werden stillschweigend ignoriert.

Hat dies deine Frage beantwortet?