パラメータ仕様
サーバーサイドパラメータとクライアントサイドパラメータの詳細仕様
署名付き埋め込みにおけるパラメータの動作とその制御方法について詳しく説明します。
パラメータの種類と動作
Signed Embedでは、パラメータの制御方法により3つの種類に分類されます。埋め込みを行う実装者は、それぞれの特性を理解して適切に選択する必要があります。
サーバーサイド固定値 (FIXED
)
FIXED
)設定場所: ノートブック公開時の「パラメータ外部化」設定で選択
制御: 完全にサーバーサイドで制御される
表示: エンドユーザーには入力欄が表示されない
変更: エンドユーザーおよび埋め込み実装側のフロントエンドからは変更不可。サーバーサイドからは新しいトークンを発行する際(
issueToken
API呼び出し)にパラメータを指定することで変更可能用途: セキュリティが重要なパラメータ(顧客ID、権限レベルなど)
サーバーサイド初期値 (DEFAULT
)
DEFAULT
)設定場所: ノートブック公開時の「パラメータ外部化」設定で選択
制御: サーバーサイドで初期値を設定、ユーザーが変更可能
表示: エンドユーザーに入力欄が表示される(初期値付き)
変更: エンドユーザーのフォーム入力で変更可能。埋め込み実装側から変更する場合は、サーバーサイドから
issueToken
時にパラメータを指定することで変更可能用途: デフォルト値を提供したいが、ユーザーに変更権限を与えたいパラメータ
クライアントサイドパラメータ
設定場所: パラメータを外部化設定しない
制御: 完全にクライアントサイドで制御
表示: 通常の入力欄として表示される
変更: PostMessage API経由で親アプリケーションから制御可能
用途: 動的に変更したいパラメータ(フィルタ条件、表示期間など)
パラメータの変更におけるトークン発行の必要性
Token発行が必要なケース
初回Signed Embed表示
サーバーサイドパラメータ(
FIXED
/DEFAULT
)の値を変更する場合新しいページに移動する場合
Token有効期限が切れた場合
Token発行が不要なケース
クライアントサイドパラメータのみ変更する場合 → PostMessage APIで即座に変更可能
必須パラメータの指定
外部化設定されたパラメータはすべて必須です。
{
"params": [
{"param_id": "customer_id", "param_value": "12345"},
{"param_id": "date_range", "param_value": "[\"2024-01-01\", \"2024-12-31\"]"}
]
}
一つでも漏れるとエラーになります
外部化されていないパラメータを送信してもエラーになります
パラメータ値の変更方法
PostMessage APIによる変更
クライアントサイドパラメータ(外部化されていないパラメータ)は、PostMessage APIでのみiframeの外から変更可能です。既存のTokenを使って変更できます:
iframe.contentWindow.postMessage({
type: 'SET_TOKEN',
token: '現在のToken', // 新しいToken発行不要
parameters: [
{
param_id: 'date_range_param_id',
param_value: '["2024-06-01", "2024-06-30"]'
}
]
}, '*');
適用条件:
◯ クライアントサイドパラメータ(外部化されていない)
×
DEFAULT
設定パラメータ(新しいToken発行が必要)×
FIXED
設定パラメータ(新しいToken発行が必要)
新しいToken発行による変更
サーバーサイドパラメータを変更する場合は、新しいTokenの発行が必要です。
よくある質問
"Missing param: xxx" エラーが出る
外部化設定されたパラメータがToken発行時に漏れています。すべての外部化パラメータを指定してください。
"The following parameters must be set by the server" エラーが出る
FIXED
またはDEFAULT
設定されたパラメータをPostMessageで変更しようとしています。該当パラメータは新しいToken発行が必要です。
PostMessageでパラメータが反映されない
パラメータが外部化設定されていないか確認
param_value
が正しいJSON文字列形式か確認param_id
がWidget IDと一致しているか確認
最終更新
役に立ちましたか?