APIを使用したサイト埋め込み
概要
- APIユーザーは APIキー を持ち、アクセス許可ドメイン で利用元ドメインを制限できます
- 用途に応じて API種類(
readonly
/fullaccess
)を選択。閲覧のみならreadonly
推奨 - 認証方式は「APIキー」または「JWT」の2種類(どちらか一方でOK)
準備
- 既存のデフォルトAPIユーザーを利用(初期アカウント発行時に自動作成)
- 必要なら
/filmaadmin/user/new
で新規APIユーザーを作成(「APIユーザー」をON)
- 必要なら
/filmaadmin/apisettings/edit/:user_id
を開き、「アクセス許可ドメイン」に自サイトのドメイン名を登録(サブドメイン可)- URLで入力しても保存時にドメイン名(ホスト部)へ自動変換されます
example.com
と入力すると、その配下のサブドメイン(www.example.com / app.example.com など)も許可されます- 特定のサブドメインのみ許可したい場合は
app.example.com
のようにサブドメインまで入力してください - 未設定ドメインからのアクセスは拒否されます
実装フロー(例)
- APIキーとエンドポイントで再生用URL/トークンを取得
- 自サイトのプレイヤーへURL/トークンを設定
- ドメイン照合エラーの場合は、許可ドメイン設定を確認
認証方式の選び方(非エンジニア向け)
どちらの方式でも再生は可能です。用途に合わせて選んでください。
A. APIキーを直接使う
- 使い方: リクエストで
X-Api-Key
ヘッダー(推奨)または?api_key=
を付けて呼び出します - ドメイン制限: アクセス許可ドメインのチェックが働きます(未設定だと自社サイトから再生できません)
- 長所
- 導入が簡単(追加の発行手順が不要)
- ドメインでのアクセス制限が効く(Referer/Origin)
- 短所
- APIキーが長期固定になりがちで、漏えい時のリスクが高い
- フロント側の実装でキーを扱う場合は取り扱いに注意(直接埋め込みは避け、サーバー経由に)
B. JWTを使う
- 使い方: まずAPIキーで「短期のJWTトークン」を発行し、そのJWTを使って再生用URLを呼び出します
- ドメイン制限: 適用されません(JWTの有効性で保護)。どのドメインからでもアクセス可
- 長所
- 短期の使い捨てトークンで安全(期限切れで自動無効化、Cookie運用も可能)
- ファイル単位(
mediafile_id
)で限定したJWTも発行できる
- 短所
- 初回に「JWT発行」のひと手間が必要
- ドメイン制限が効かないため、トークンの保管と配布に注意(短寿命運用が前提)
迷ったら…
- 「まずは簡単に」→ APIキーで開始(必ずアクセス許可ドメインを設定)
- 「より安全に」→ 短期JWTを採用(必要に応じてファイル限定JWT)
推奨アーキテクチャ(JWTのバックエンド発行)
JWT はできるだけ自社バックエンドで発行・配布する運用を推奨します。APIキーをフロントに露出させず、短期トークンで安全に配信できます。
基本フロー
- フロント → 自社バックエンド: 対象メディアIDを渡して JWT を要求
- バックエンド → Filma API: APIキーで
POST /filmaapi/token
(必要に応じてmediafile_id
指定、expires_in
で短期化) - バックエンド → フロント: 短期JWT(または埋め込みHTML/URL)を返却
- フロント: JWT 付きURLでプレイヤーを初期化
ポイント(運用)
- 有効期限は短め(例: 数分〜15分)を基本に、必要時に自動リフレッシュ
- 外部共有や限定公開は「ファイル限定JWT(
mediafile_id
)」で最小権限 - バックエンドで発行ログ/失効ポリシーを持ち、問題時は短期運用+差し替えで対応
- JWTはドメイン制限が効かないため、短寿命+限定スコープで担保(APIキーは常にバックエンド保管)
画面から得られる情報(管理画面とAPIの対応)
- 管理画面の「埋め込みHTML」でコピーできるコードは、プレイヤー用JS/CSS込みの完全版です
- APIでも同等の「埋め込みHTML(完全版/シンプル版)」が取得できます(
embed_code
/simple_embed_code
) - タグ/カテゴリなど管理画面のメタ情報は
user_metadata
として取得できます
技術メモ: 認証の優先順位や詳細は Filma API 仕様書 を参照してください(非エンジニアの方は本ページの方針だけ把握で十分です)。 参照先: Filma API 仕様書
注意
fullaccess
は強力な権限です。キー管理(保護・ローテーション)を徹底してください
次にやること / 関連
- HTML埋め込みへ戻る: 埋め込みHTML
- 期限付きURLの発行・管理: 期限付きURLの発行