Preview Tutorial
Node.js
の場合、プレビュー画面を開くためのUIはユーザーが用意する必要があります。
ここでは、フロントにReactを使う想定でプレビューの設定例をガイドします。
Node.JS
const SEACRET_KEY = "SEACRET_KEY";
const payload = { subject: "Cool Subject", body: "# Headline\n This is a **Markdown** text\n ", to: [ ] };
const getDraft = async (request) => { const apiKey = request.headers.get("API-KEY"); if(apiKey !== SEACRET_KEY){ return new Response("error") } const url = new URL(request.url); const contentId = url.pathname.substring(url.pathname.lastIndexOf('/') + 1) const draft = /// contentIdを使ってデータベースから下書きを取得する。payloadと同じ型だとする return new Response(JSON.stringify(draft))}
- まずはVellでプレビュー タブを開き、
Add New
を押してCustom
を選択します。 - 追加された項目を選択し、
Headers
に、キーがAPI-KEY
、Valueが上記のSEACRET_KEY
のヘッダーを追加します。Endpoint
に、上記のgetDraft
を処理するためのエンドポイントを入力します。 - VellからNode.js側には以下のようなURLでアクセスし、下書きを取得します。https://your-service.com/<contentId>
Endpoint
にはhttps://your-service.com
の部分を入力してください。
React
const PREVIEW_ID = /// VellからコピーしたPreview ID
const contents = [ { id: "123", subject: "Cool Subject"}, { id: "456", subject: "Good Subject"}, { id: "789", subject: "Super Subject"},]
export default function Contents() { return contents.map((content) => { return <a href={`https://vell-letter.com/preview/${content.id}?previewId=${PREVIEW_ID}`}> <div> {content.subject} </div> </a> })}
- Vellでプレビュー タブを開き、
Node.js
を設定する項目を選択します。 Preview ID
の値をコピーし、上記のPREVIEW_ID
にセットします。- contentのリンクを開くとVellのプレビュー画面が立ち上がり、Node.js側にアクセスし下書きを取得後、画面に表示します。
ここではこちらの続きとしてmicroCMS
のプレビュー設定をガイドします。
- まずはVellでプレビュー タブを開き、
Add New
を押してmicroCMS
を選択します。 - 追加された項目を選択し、
Preview ID
の値をコピーします。 - 次にmicroCMSに移動し、API設定の
画面プレビュー
を開きます。 - 遷移先URLにこちらのURLを入力します。https://vell-letter.com/preview/{CONTENT_ID}?draftKey={DRAFT_KEY}&previewId=PREVIEW_ID
PREVIEW_ID
の部分は先ほどコピーしたPreview ID
の値に置き換えてください。そして変更する
で保存します。 - 次に
基本情報
でAPIのエンドポイントを確認します。こういったURLになっているはずなので、これを控えておきます。(https://xxx.microcms.io/api/v1/email
)xxx
の部分は各サービスのIDが表示されています。 - 次に、左上にある歯車アイコンを押し、サービス設定に移動します。そして
APIキー
を開きます。 default
というAPIキーがあるので、その値を控えておきます。- Vellに戻り、
microCMS
を設定しているプレビューを開きます。 Endpoint
に、先ほど控えたmicroCMSのエンドポイントを入力します。次に、Headers
にX-MICROCMS-API-KEY
というキーを持つヘッダーがあるので、そのValueに先ほどのdefault
のAPIキーの値を入力します。- microCMSに戻り、コンテンツの編集画面を開きます。もし
公開中
になっていたら下書き状態に戻しておきましょう。その後、画面プレビュー
を押して入力中のコンテンツのプレビュー画面が表示されれば成功です。
ここではこちらの続きとしてNewt
のプレビュー設定をガイドします。
- まずはVellでプレビュー タブを開き、
Add New
を押してNewt
を選択します。 - 追加された項目を選択し、
Preview ID
の値をコピーします。 - 次にNewtに移動し、
email
からschema
に移動します。 - 右上のアイコンから「プレビュー設定」を開き、
サイト上で開く
を選択します。そしてプレビューURLにこちらのURLを入力します。https://vell-letter.com/preview/{_id}?previewId=PREVIEW_IDPREVIEW_ID
の部分は先ほどコピーしたPreview ID
の値に置き換えてください。そして保存します。 - 次にスペース設定に戻り、「一般」を開きます。そして
スペース UID
の文字列を控えておきます。 - 次に「APIキー」を開きます。そして
Newt API Token
に新しいトークンを作成します。名前は自由につけてください。取得対象にするAppはemail
にして作成します。追加されたトークンの値を控えておきましょう。 - Vellに戻り、
Newt
を設定しているプレビューを開きます。 Endpoint
に、このようなURLを入力します。https://SPACE_UID.api.newt.so/v1/email/schema
。SPACE_UID
の部分は先ほど控えたスペース UID
に置き換えてください。 次に、Headers
にAuthorization
というキーを持つヘッダーがあるので、そのValueにBearer TOKEN
を入力します。TOKEN
の部分は先ほどのトークンの値に置き換えてください。Bearer
の後の半角スペースを忘れないようにしましょう。- Newtに戻り、コンテンツの編集画面を開きます。もし
公開中
になっていたら下書き状態に戻しておきましょう。その後、プレビュー
を押して入力中のコンテンツのプレビュー画面が表示されれば成功です。