メインコンテンツへスキップ
SDK 2.0 は ライセンストークン で認証します。ネイティブプラットフォームでは、オンライン認証に appId + appKey も使えます。Web では、フロントエンドの JavaScript に appKey を埋め込まないでください。
先に サブスクリプション を完了してください。ダッシュボードでアプリ識別子(Bundle ID / パッケージ名 / ドメイン)をバインドし、プランを有効にします。

ネイティブ(Android / iOS / macOS / Windows)

エンジン作成時に、次のいずれか一方を渡します。 優先順位: licenseToken が空でない場合、SDK はそのトークンをローカルで検証し、appId / appKey でネットワーク呼び出しは行いません。
推奨(Web と同じ考え方): appId / appKey は自社サーバーに置き、短命の licenseToken を発行してアプリへ渡します。署名リクエストの platform はクライアントに合わせてください(ios / android / macos / windows)。下記の Web → サーバープロキシ を参照してください。直接の appId + appKey とオフライン .lic も引き続き利用できます。
iOS / macOS
Android
C++(Windows)
ネイティブでのオンライン代替:
オフライン .lic はソースにハードコードせず、アプリアセットとして同梱し、実行時に読み込むことを推奨します。入手方法は下記の オフラインライセンス を参照してください。

Web

ブラウザ SDK には appId / appKey フィールドはありません。エンジンは licenseToken のみを受け取り、ローカルで検証します。init() の前に、自社サーバーからトークンを取得してください。

推奨フロー

  1. ダッシュボードでアプリを作成し、Web ドメインをバインドして appId / appKey をコピーします(サブスクリプション を参照)
  2. キーは自社バックエンドに保管し、エンドポイント(例: POST /api/facebetter/auth)を公開します
  3. バックエンドが https://facebetter.pixpark.net/facebetter/v2/auth へ署名付きリクエストを送り、生のレスポンス本文をページへ返します
  4. その文字列を EngineConfig.licenseToken に渡し、init() を呼び出します
公式デモ(demo/web/react)も同じパターンです。フロントエンドは src/fetchLicenseToken.js、サーバープロキシは api/facebetter/auth.js です。
appKey をフロントエンドバンドルに入れないでください。Web のオフライン .lic はページ origin(例: https://app.example.com)と一致する必要があります。Electron は origin を確認しません。オンライントークンは数分で期限切れになるため、エンジンを再作成する前に新しいトークンを取得してください。

フロントエンド

サーバープロキシ(Node の例)

FB_APP_ID / FB_APP_KEY を環境変数に保存します。Express / Fastify / サーバーレス関数に次を組み込めます。
他の言語でも同じ手順です。署名文字列を組み立て → HMAC-SHA256(hex)→ 上流へ POST → body をフロントエンドへ渡します。実行可能な参考実装: GitHub Demo 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 で購読します。