appId + appKey も使えます。Web では、フロントエンドの JavaScript に appKey を埋め込まないでください。
ネイティブ(Android / iOS / macOS / Windows)
エンジン作成時に、次のいずれか一方を渡します。
優先順位:
licenseToken が空でない場合、SDK はそのトークンをローカルで検証し、appId / appKey でネットワーク呼び出しは行いません。
iOS / macOS
.lic はソースにハードコードせず、アプリアセットとして同梱し、実行時に読み込むことを推奨します。入手方法は下記の オフラインライセンス を参照してください。
Web
ブラウザ SDK にはappId / appKey フィールドはありません。エンジンは licenseToken のみを受け取り、ローカルで検証します。init() の前に、自社サーバーからトークンを取得してください。
推奨フロー
- ダッシュボードでアプリを作成し、Web ドメインをバインドして
appId/appKeyをコピーします(サブスクリプション を参照) - キーは自社バックエンドに保管し、エンドポイント(例:
POST /api/facebetter/auth)を公開します - バックエンドが
https://facebetter.pixpark.net/facebetter/v2/authへ署名付きリクエストを送り、生のレスポンス本文をページへ返します - その文字列を
EngineConfig.licenseTokenに渡し、init()を呼び出します
demo/web/react)も同じパターンです。フロントエンドは src/fetchLicenseToken.js、サーバープロキシは api/facebetter/auth.js です。
フロントエンド
サーバープロキシ(Node の例)
FB_APP_ID / FB_APP_KEY を環境変数に保存します。Express / Fastify / サーバーレス関数に次を組み込めます。
api/facebetter/auth.js。
上流リクエストのフィールド
成功時、上流は JSON(
token フィールドを含む)を返します。レスポンステキストをそのまま転送しても、token 文字列だけを取り出しても構いません。SDK はどちらも受け付けます。
オフラインライセンス
ダッシュボードの認証情報ページからオフライン.lic をダウンロードし、全文を licenseToken / license_token に渡します。
有料プランでは、保存済みの識別子はロックされます。空欄のプラットフォームは一度だけ入力できます。ロック済みの値を変えるにはサポートへ連絡してください。無料プランは識別子の変更とダウンロードがいつでもできます。
ファイルはサブスクリプション終了の 15 日後に期限切れになります。再ダウンロードしても日付は延びません。更新後は新しいファイルをダウンロードしてください。
注意事項
- オンライントークンとオフラインライセンスは、どちらもダッシュボードのアプリ識別子を確認します。iOS / macOS は Bundle ID、Android はパッケージ名、Windows / Linux は実行ファイル名、ブラウザはページ origin です。Electron は origin を確認しません。不一致だと検証に失敗します。
- 未期限切れ: 機能はサブスクリプションプランに従います。
- 期限切れ: エンジンは初期化できますが、機能は Free プランにフォールバックします(透かし付き試用)。更新後はダッシュボードから新しいファイルをダウンロードしてください。
- Web のオフラインライセンスはページ origin にバインドされます。
.licの全文をlicenseTokenに渡してください。
エンジンイベント
ライセンスと初期化の結果はonEngineEvent で購読します。

