跳转到主要内容
SDK 2.0 使用 license token 鉴权。原生平台也可以用 appId + appKey 走在线鉴权。Web 禁止在前端 JavaScript 里嵌入 appKey。
请先完成 订阅服务:在控制台绑定应用标识(Bundle ID / 包名 / 域名)并开通套餐。

原生(Android / iOS / macOS / Windows)

创建引擎时二选一: 优先级:licenseToken 非空时,SDK 本地校验该 token,不会再用 appId / appKey 请求网络。
推荐与 Web 相同:由你的服务器保管 appId / appKey 并换短时 licenseToken,再下发给 App。签名请求里的 platform 需与客户端一致(如 ios / android / macos / windows),服务端示例见下方 Web → 服务端代理。appId + appKey 直连与离线 .lic 仍可使用。
iOS / macOS
Android
C++(Windows)
原生在线鉴权写法:
离线 .lic 建议作为资源随包分发,运行时读取,不要写死在源码里。获取方式见下方 离线许可证。

Web

浏览器 SDK 没有 appId / appKey 字段。引擎只接受 licenseToken,并在本地验签。请在 init() 之前由你的服务器向 Facebetter 换好 token。

推荐流程

  1. 控制台创建应用,绑定 Web 域名,拿到 appId / appKey(见 订阅服务)
  2. 在你的后端保管密钥;对外提供一个接口(例如 POST /api/facebetter/auth)
  3. 后端用密钥签名后请求 https://facebetter.pixpark.net/facebetter/v2/auth,把响应原文返回给页面
  4. 页面把该字符串传给 EngineConfig.licenseToken,再 init()
官方 Demo(demo/web/react)也是这套模式:前端见 src/fetchLicenseToken.js,服务端代理见 api/facebetter/auth.js。
不要把 appKey 打进前端包。Web 不支持离线 .lic。在线 token 几分钟内过期,重新创建引擎前要再换一张。

前端

服务端代理(Node 示例)

把 FB_APP_ID / FB_APP_KEY 放在环境变量里。下面可直接嵌进 Express / Fastify / 无服务器函数:
其它语言只需实现同样步骤:拼签名串 → HMAC-SHA256(hex)→ POST 上游 → 把 body 交给前端。可运行的参考实现:GitHub Demo api/facebetter/auth.js。

上游请求字段

成功时上游返回 JSON(含 token 字段)。你可原样把响应文本交给 SDK,也可只抽出 token 字符串;两者 SDK 都接受。

离线许可证(仅原生)

控制台不再提供离线 .lic 自助下载。如需离线授权,请联系销售或管理员: 获得文件后,把全文赋给 licenseToken / license_token。有效期与当前订阅一致;续费或改套餐后需重新申请并替换。

注意

  • 离线许可证绑定控制台里配置的应用标识,不匹配会校验失败。
  • 未过期:能力跟随订阅套餐。
  • 已过期:引擎仍可初始化,能力回退到免费版(始终带水印,不含关键点回调)。续费后重新申请。
  • Web 不能使用离线许可证,必须走在线 v2 鉴权。

引擎事件

通过 onEngineEvent 监听授权和初始化结果: