カスタムCMSを接続する
Silktideにお使いのCMS用プラグインがない場合は、開発者が自分で接続できます。カスタム接続では、ほかの接続と同じ2つのことを行います(CMS接続を参照)。
- 公開: ページが公開または変更されると、CMSがSilktideに通知し、Silktideがそのページを再テストします。
- 編集: 各ページには編集場所を示すメタタグが含まれ、SilktideのCMSで開くからCMS内のそのページを開けます。
どちらか一方のみ、または両方を構築できます。
1. キーとAPIアドレスを取得する
- Silktideで設定を開き、次に連携を開いて、CMSを選択します。
- カスタムCMSを選択し、接続の適用対象を選んでから、接続を選択します。
- キーとAPIアドレスをコピーします。
APIアドレスはアカウントのリージョンによって異なります(例: https://api.eu.silktide.com)。Silktideに表示されるものを使用してください。以下の例では、https://api.eu.silktide.comをそのアドレスに、キーをお使いのキーに置き換えてください。
キーが機能するか確認するには、/cms/test-keyに送信します。キーが有効な場合、Silktideは200を返し、無効な場合は403を返します。
curl --request POST \
--header "Content-Type: application/json" \
--data '{"apiKey": "eu:your-key"}' \
https://api.eu.silktide.com/cms/test-key
連携でこれを呼び出す必要はありません。テスト用に用意されています。
2. 公開: 変更内容をSilktideに通知する
ページが追加または変更されたとき、JSON本文を含むPOSTリクエストを/cms/updateに送信します。
apiKey: お使いのキー。url: 変更されたページの公開アドレス、またはurls: アドレスのリスト。deferRetestSeconds(任意): テスト前にSilktideが待機する秒数。たとえば、キャッシュがクリアされるまで待機する場合に使用します。
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はすぐに応答し、テストをキューに追加します。通常、ページは1分以内に再テストされます。
Silktideがテストするのは、接続の適用対象となるWebサイトに属し、各Webサイトのテスト対象範囲内にあるアドレスのみです。それ以外は無視されます。
3. 編集: 各ページの編集場所を指定する
CMSが公開するすべてのページの<head>にメタタグを追加します。
<meta name="silktide-cms" content="...">
contentには、Base64エンコードされたJSONオブジェクトを指定します。
{"cms": "Your CMS name", "editorUrl": "https://cms.example.com/pages/123/edit"}
cmsにはCMSの名前を指定します。自由入力のテキストです。editorUrlは、このページを編集するためにアクセスするアドレスです。
Silktideはページをテストするたびにタグを読み取ります。CMSで開くを選択すると、新しいタブでeditorUrlが開きます。
Base64は簡単にデコードできるため、ページを閲覧する人は誰でもeditorUrlを読み取れます。トークンやユーザー名など、ログインに使用できる情報は絶対に含めないでください。エディターのアドレスをまったく表示したくない場合は、タグを暗号化してください。
タグを暗号化する(任意)
お使いのキーを暗号化キーとして使用し、AES-256-CBCでJSONを暗号化します。次に、初期化ベクトル、暗号化されたバイト列のSHA-256 HMAC(これにもお使いのキーを使用)、暗号化されたバイト列の順にBase64エンコードします。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. テストする
- 変更をデプロイします。メタタグを追加した場合は、公開ページにタグが含まれるよう、すべてのキャッシュをクリアします。
- SilktideでWebサイトを再テストします。
- インスペクターでページを開きます。CMSで開くが表示され、CMS内のそのページを開けるはずです。
- CMSでページを公開します。Silktideは1分以内にそのページのテストを開始するはずです。
何かが機能しない場合は、Silktideでサポートに問い合わせるを選択してください。