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