署名付き埋め込みの設定方法
外部サービスにノートブックをシームレスに統合します。
設定方法
統合の準備
APIキーとAPIシークレットの準備
「ワークスペース設定」を開き、「APIキー」メニューをクリックします。
「新規APIキー」ボタンをクリックして新しいAPIキーを作成します。
APIキーとAPIシークレット(後でAPIコールに使用します)をメモしておきます。
ノートブックを開く
共有したいノートブックを開きます。
ヘッダーの「共有」ボタンをクリックし、「署名付き埋め込み」を選択します。
ページの選択
公開したいページを選択します。
公開
「公開」ボタンをクリックします。
統合設定の構成
「権限を付与するAPIキー」セクションで使用するAPIキーを追加します。
APIを通じてパラメータ値を上書きしたい場合は、外部化パラメータセクションで設定します。
サーバーからトークンを発行する
トークンを発行するには以下のAPIを使用します
APIを呼び出すために必要な引数は"Setup guide"タブで確認できます。
APIシークレットが外部に漏れないようにするため、サーバーサイドでAPIコールを実行してください。
ユーザーセッションごとにトークンを発行し、再利用しないでください(1時間後に期限切れになります)。
iframeの埋め込み
「署名付き埋め込みURL」を使用してHTMLをサービスに埋め込みます。 トークンと一緒に表示オプションを設定できます。詳細については"Setup guide"を確認してください。
[推奨] パターン1. postMessageを介したトークンの受け渡し
「署名付き埋め込みURL」をsrc属性としたiframe要素を作成します
postMessageを介してiframeから
{type: "READY_FOR_TOKEN"}
メッセージを待ちますpostMessageを介して
{type: "SET_TOKEN", token: "{{ TOKEN_HERE }}"}
メッセージをiframeに送り返します (オプションでdisplayOptions
も送信できます)
パターン2. URLパラメータを介したトークンの受け渡し
「署名付き埋め込みURL」にクエリパラメータとしてトークンを追加します(
?token=xxx
)オプションで
displayOptions
をクエリパラメータとして追加します (値はencodeURIComponent(JSON.stringify(displayOptions))
である必要があります)修正されたURLをsrc属性としたiframe要素を作成します
付録:メッセージ一覧
iframeのpostMessage機能を使用してメッセージを交換できます。
メッセージは
console.debug()
にも出力されるため、実際のメッセージ内容をそこで確認できます。例えば、この機能は以下のような用途に使用できます:
ユーザーによって変更されたパラメータ情報を永続化する。
異なる統合やページ間でパラメータを共有する。
送受信できるメッセージの一覧は以下の通りです。
iframeへのメッセージ
SET_TOKEN
認証トークンを設定し、ノートブックのレンダリングを開始します。このメッセージはREADY_FOR_TOKEN
メッセージを受信した後に送信する必要があります。
このメッセージは同じiframeに複数回送信することができ、その場合iframeは新しいトークンとパラメータで内部的にリロードされます。
parameters
フィールドを使用すると、サーバーサイドで固定化やデフォルト設定されていないパラメータの初期値を設定できます。これは、アプリケーション側でパラメータ入力欄を提供したい場合に便利です。
iframeからのメッセージ
READY_FOR_TOKEN
ノートブックがトークンを受信する準備ができたことを通知します。
PARAM_CHANGED
ユーザーがノートブック内のパラメータを変更するたびに送信されます。
EXECUTE_SQLS_TRIGGERED
ノートブック内で「すべて実行」が実行されたときに送信されます。
最終更新
役に立ちましたか?