Connecter un CMS personnalisé
Si Silktide ne propose pas de plugin pour votre CMS, vos développeurs peuvent le connecter eux-mêmes. Une connexion personnalisée réalise les deux mêmes actions que les autres (voir Connexions CMS) :
- Publication : lorsqu’une page est publiée ou modifiée, votre CMS en informe Silktide, qui la teste à nouveau.
- Modification : chaque page contient une balise meta indiquant où elle est modifiée ; ainsi, Ouvrir dans le CMS dans Silktide ouvre cette page dans votre CMS.
Vous pouvez créer l’une ou l’autre partie, ou les deux.
1. Obtenir votre clé et l’adresse de l’API
- Dans Silktide, ouvrez Paramètres, puis Intégrations, et choisissez CMS.
- Choisissez CMS personnalisé, sélectionnez ce à quoi la connexion s’applique, puis choisissez Connecter.
- Copiez la Clé et l’adresse de l’API.
L’adresse de l’API dépend de la région de votre compte, par exemple https://api.eu.silktide.com. Utilisez celle affichée par Silktide. Dans les exemples ci-dessous, remplacez https://api.eu.silktide.com par cette adresse, et la clé par la vôtre.
Pour vérifier que la clé fonctionne, envoyez-la à /cms/test-key. Silktide renvoie 200 si la clé est valide et 403 dans le cas contraire :
curl --request POST \
--header "Content-Type: application/json" \
--data '{"apiKey": "eu:your-key"}' \
https://api.eu.silktide.com/cms/test-key
Votre intégration n’a pas besoin d’appeler ce point de terminaison. Il est fourni à des fins de test.
2. Publication : indiquer à Silktide ce qui a changé
Lorsqu’une page est ajoutée ou modifiée, envoyez une requête POST à /cms/update avec un corps JSON :
apiKey: votre clé.url: l’adresse publique de la page qui a changé, ouurls: une liste d’adresses.deferRetestSeconds(facultatif) : le nombre de secondes pendant lesquelles Silktide doit attendre avant de tester, par exemple pendant la purge de vos caches.
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 répond immédiatement et met le test en file d’attente. La page est généralement testée à nouveau dans la minute.
Silktide teste uniquement les adresses appartenant aux sites web auxquels la connexion s’applique, dans le périmètre de test de chaque site web. Tout le reste est ignoré.
3. Modification : indiquer où chaque page est modifiée
Ajoutez une balise meta dans le <head> de chaque page publiée par votre CMS :
<meta name="silktide-cms" content="...">
Son attribut content est un objet JSON encodé en Base64 :
{"cms": "Your CMS name", "editorUrl": "https://cms.example.com/pages/123/edit"}
cmsdésigne votre CMS. Le texte est libre.editorUrlest l’adresse à laquelle une personne se rend pour modifier cette page.
Silktide lit la balise chaque fois qu’il teste la page. Ouvrir dans le CMS ouvre editorUrl dans un nouvel onglet.
Base64 est facile à décoder ; toute personne consultant la page peut donc lire editorUrl. N’y mettez jamais quoi que ce soit permettant de connecter une personne, comme un jeton ou un nom d’utilisateur. Si vous préférez ne pas afficher du tout les adresses de votre éditeur, chiffrez la balise.
Chiffrer la balise (facultatif)
Chiffrez le JSON avec AES-256-CBC en utilisant votre clé comme clé de chiffrement. Ensuite, encodez en Base64, dans cet ordre : le vecteur d’initialisation, un HMAC SHA-256 des octets chiffrés (également avec votre clé), puis les octets chiffrés. En PHP :
$data = ['cms' => 'Your CMS name', '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 the meta tag's content.
4. Le tester
- Déployez vos modifications. Si vous avez ajouté la balise meta, purgez les caches afin qu’elle soit présente sur les pages publiques.
- Testez à nouveau le site web dans Silktide.
- Ouvrez une page dans l’Inspecteur. Ouvrir dans le CMS devrait apparaître et ouvrir cette page dans votre CMS.
- Publiez une page dans votre CMS. Silktide devrait commencer à la tester dans la minute.
Si quelque chose ne fonctionne pas, choisissez Contacter l’assistance dans Silktide.