Een aangepast CMS koppelen
Als Silktide geen plug-in voor uw CMS heeft, kunnen uw ontwikkelaars dit zelf koppelen. Een aangepaste koppeling doet dezelfde twee dingen als de andere (zie CMS-koppelingen):
- Publiceren: wanneer een pagina wordt gepubliceerd of gewijzigd, meldt uw CMS dit aan Silktide, waarna Silktide de pagina opnieuw test.
- Bewerken: elke pagina bevat een metatag die aangeeft waar deze wordt bewerkt, zodat Openen in CMS in Silktide die pagina in uw CMS opent.
U kunt een van beide onderdelen bouwen, of allebei.
1. Uw sleutel en API-adres ophalen
- Open in Silktide Instellingen, vervolgens Integraties, en kies CMS.
- Kies Aangepast CMS, selecteer waarop de koppeling van toepassing is en kies Koppelen.
- Kopieer de Sleutel en het API-adres.
Het API-adres hangt af van de regio waarin uw account zich bevindt, bijvoorbeeld https://api.eu.silktide.com. Gebruik het adres dat Silktide weergeeft. Vervang in de onderstaande voorbeelden https://api.eu.silktide.com door dat adres, en de sleutel door uw eigen sleutel.
Om te controleren of de sleutel werkt, stuurt u deze naar /cms/test-key. Silktide antwoordt met 200 als de sleutel geldig is, en met 403 als dat niet zo is:
curl --request POST \
--header "Content-Type: application/json" \
--data '{"apiKey": "eu:your-key"}' \
https://api.eu.silktide.com/cms/test-key
Uw integratie hoeft dit niet aan te roepen. Dit is bedoeld voor tests.
2. Publiceren: Silktide vertellen wat er is gewijzigd
Wanneer een pagina wordt toegevoegd of gewijzigd, stuurt u een POST-verzoek naar /cms/update met een JSON-body:
apiKey: uw sleutel.url: het openbare adres van de gewijzigde pagina, ofurls: een lijst met adressen.deferRetestSeconds(optioneel): het aantal seconden dat Silktide moet wachten voordat het test, bijvoorbeeld terwijl uw caches worden geleegd.
curl --request POST \
--header "Content-Type: application/json" \
--data '{"apiKey": "eu:your-key", "url": "https://www.example.com/news/open-day"}' \
https://api.eu.silktide.com/cms/update
Silktide antwoordt onmiddellijk en plaatst de test in de wachtrij. De pagina wordt doorgaans binnen een minuut opnieuw getest.
Silktide test alleen adressen die horen bij de websites waarop de koppeling van toepassing is, binnen het testbereik van elke website. Al het andere wordt genegeerd.
3. Bewerken: aangeven waar elke pagina wordt bewerkt
Voeg een metatag toe aan de <head> van elke pagina die uw CMS publiceert:
<meta name="silktide-cms" content="...">
De content is een JSON-object, gecodeerd met Base64:
{"cms": "De naam van uw CMS", "editorUrl": "https://cms.example.com/pages/123/edit"}
cmsgeeft de naam van uw CMS aan. Dit is vrije tekst.editorUrlis het adres dat iemand bezoekt om deze pagina te bewerken.
Silktide leest de tag telkens wanneer het de pagina test. Openen in CMS opent editorUrl in een nieuw tabblad.
Base64 is eenvoudig te decoderen, dus iedereen die de pagina bekijkt kan editorUrl lezen. Plaats er nooit iets in waarmee iemand kan inloggen, zoals een token of gebruikersnaam. Als u uw editoradressen liever helemaal niet toont, versleutel dan de tag.
De tag versleutelen (optioneel)
Versleutel de JSON met AES-256-CBC en gebruik uw sleutel als versleutelingssleutel. Codeer vervolgens met Base64, in deze volgorde: de initialisatievector, een SHA-256-HMAC van de versleutelde bytes (ook met uw sleutel) en de versleutelde bytes. In PHP:
$data = ['cms' => 'De naam van uw CMS', 'editorUrl' => 'https://cms.example.com/pages/123/edit'];
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));
$encrypted = openssl_encrypt(json_encode($data), 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
$hmac = hash_hmac('sha256', $encrypted, $key, true);
$content = base64_encode($iv . $hmac . $encrypted);
// $content is de content van de metatag.
4. Testen
- Implementeer uw wijzigingen. Als u de metatag hebt toegevoegd, leegt u eventuele caches zodat de openbare pagina's deze bevatten.
- Test de website opnieuw in Silktide.
- Open een pagina in de Inspector. Openen in CMS zou moeten verschijnen en die pagina in uw CMS moeten openen.
- Publiceer een pagina in uw CMS. Silktide zou deze binnen een minuut moeten gaan testen.
Als iets niet werkt, kiest u Contact opnemen met ondersteuning in Silktide.