# 署名付き埋め込みの設定方法

## 設定方法

### 署名付き埋め込みの準備

* APIキーとAPIシークレットの準備
  * `ワークスペース設定`を開き、`APIキー`メニューをクリックします。
  * `APIキーを追加`ボタンをクリックして新しいAPIキーを作成します。
  * APIキーとAPIシークレット（後でAPIコールに使用します）をメモしておきます。
* ノートブックを開く
  * 共有したいノートブックを開きます。
  * ヘッダーの`共有`ボタンをクリックし、`署名付き埋め込み`タブを選択します。
* 署名付き埋め込みの公開
  * 公開対象のページの選択や、公開時のオプションを設定します。
  * `公開`ボタンをクリックします。
* 署名付き埋め込みの設定
  * `権限を付与するAPIキー`セクションで使用するAPIキーを追加します。
  * サーバーサイドでのトークン発行時に値を指定するパラメータを、`サーバーサイドパラメータ`セクションで設定します。

### サーバーからトークンを発行する

* トークンを発行するには以下のAPIを使用します
  * APIを呼び出すために必要な引数は `セットアップガイド`タブで確認できます。
  * **APIシークレット**が外部に漏れないようにするため、サーバーサイドでAPIコールを実行してください。
  * ユーザーセッションごとにトークンを発行し、再利用しないでください（デフォルトでは1時間後に期限切れになります）。

{% openapi src="<https://api.codatum.com/api/notebook/spec.json>" path="/api/notebook/issueToken" method="post" %}
<https://api.codatum.com/api/notebook/spec.json>
{% endopenapi %}

### フロントエンドへの組み込み

* [Codatum Embed SDK](https://github.com/codatum/codatum-embed-js) を使ってフロントエンドに組み込みます
  * 組み込みに必要な `embedUrl` は `セットアップガイド`タブで確認できます
  * `tokenProvider` には、サーバーサイドでトークンを発行するAPIを指定します
  * その他の設定可能な全オプションに関しては、[SDKのREADME](https://github.com/codatum/codatum-embed-js/tree/main/packages/embed#readme)を参照してください。

## 付録

### よくある質問

#### トークン発行時に "Missing param: xxx" エラーが出る場合

* トークン発行時には、全てのサーバーサイドパラメータをリクエスト内に含める必要があります
* "xxx" というパラメータIDのパラメータがリクエスト内に含まれていない場合、このエラーが発生します

#### クライアントサイドパラメータの送信時に "The following parameters must be set by the server" エラーが出る

* クライアントサイドパラメータの送信時にサーバーサイドパラメータを変更しようとしています
* サーバーサイドパラメータを変更するためには、新しいトークン発行が必要です

#### クライアントサイドパラメータの送信時にパラメータが変更されない場合

* 送信したパラメータがサーバーサイドパラメータとして指定されていないか確認してください
* `param_value`が正しいJSON文字列形式か確認してください
* `param_id`が実在するパラメータIDと一致しているか確認してください


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.codatum.jp/sharing/signed-embed/integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
