appId + appKey도 사용할 수 있습니다. Web에서는 프론트엔드 JavaScript에 appKey를 넣지 마세요.
네이티브 (Android / iOS / macOS / Windows / Linux / Flutter)
엔진을 만들 때 다음 중 하나를 전달합니다.
우선순위:
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 셀프 다운로드를 더 이상 제공하지 않습니다. 오프라인 라이선스가 필요하면 영업 또는 관리자에게 문의하세요.
- 이메일: hello@facebetter.net (제목 예시:
[Business Partnership] Offline license) - 기타 방법: 문의하기
licenseToken / license_token으로 전달하세요. 유효 기간은 현재 구독과 같습니다. 갱신하거나 요금제를 바꾼 뒤에는 새 파일을 요청해 앱에 교체하세요.
참고
- 오프라인 라이선스는 대시보드에 설정한 앱 식별자에 바인딩됩니다. 불일치하면 검증이 실패합니다.
- 만료되지 않음: 기능은 구독 요금제를 따릅니다.
- 만료됨: 엔진은 초기화할 수 있지만, 기능은 Free 요금제로 떨어집니다(워터마크 체험, 키포인트 콜백 없음). 갱신 후 새 라이선스를 요청하세요.
- Web은 오프라인 라이선스를 사용할 수 없으며, 온라인 v2 인증 경로를 완료해야 합니다.
엔진 이벤트
onEngineEvent / Flutter engine.events로 라이선스와 초기화 결과를 수신합니다.

