Lingara Lingara 문서 학습 가이드 API 라이브러리 앱 만들기 임베드 웹 앱
언어: 한국어

Lingara 임베드하기

이 페이지는 영어에서 번역되었습니다. 두 내용이 다를 경우 영어 페이지가 정확합니다. 영어 페이지 읽기

Lingara는 여러분의 게임이나 웹사이트 안에서 동작할 수 있습니다. 여러분의 세계 속 캐릭터가 플레이어의 레벨에 맞춰 대화할 수 있고, 플레이어가 마친 연습은 Lingara 연습으로 인정됩니다. 임베드는 두 부분으로 이루어지며, 가장 먼저 정할 것은 어느 부분이 어디에서 실행되는지입니다.

누가 무엇을 보관하는가

여러분의 서버는 OAuth 클라이언트의 시크릿과 웹훅 서명 시크릿을 보관합니다. 둘 다 서버 밖으로 나가지 않습니다.

플레이어의 기기가 보관하는 것은 하나뿐입니다. lgr_et_로 시작하는 임베드 토큰입니다. 게임 바이너리나 웹 페이지에 담아 배포하는 것은 모두 공개되므로, 기기는 클라이언트 시크릿, 웹훅 시크릿, 여러분 클라이언트 자체의 액세스 토큰을 절대 보관하지 않습니다. 임베드 토큰은 한 명의 플레이어만을 위해 동작하고, 몇 시간이 아니라 몇 분 동안 유효하며, 여러분의 서버가 부여한 스코프만 가집니다.

플레이어에게는 Lingara 계정이 필요하지 않습니다. 여러분의 서버가 한 플레이어를 위해 처음 발급한 토큰이 그 플레이어의 게스트 학습자를 만들고, 이후의 모든 토큰은 같은 학습자에게 연결됩니다. 이미 Lingara 계정이 있는 플레이어는 그 계정을 가져올 수 있습니다. 여러분의 서버가 둘을 연결하는 방법은 서버 키트 페이지에서 설명합니다.

토큰이 플레이어에게 전달되는 방식

  1. 게임이나 페이지 안의 플레이어 키트는 토큰이 필요하면 토큰 소스를 통해 여러분의 서버에 요청합니다.
  2. 여러분의 서버는 그 플레이어에 대한 자체 세션을 확인하고, 서버 키트로 그 플레이어의 토큰을 발급합니다.
  3. 여러분의 서버는 토큰과 그 만료 시각이라는 두 필드로 토큰을 돌려줍니다. 자체 세션을 통해 전달하며, URL에 담는 일은 절대 없습니다.
  4. 플레이어 키트는 만료가 가까워질 때까지 토큰을 사용하고, 그런 다음 여러분의 서버에 다시 요청합니다. Lingara는 토큰을 갱신하지 않습니다.
 player's device                your server                    Lingara
 ───────────────                ───────────                    ───────
 player kit ── needs a token ──▶ your token route
                                 server kit ── mint ─────────▶ token for one player
 player kit ◀── token, expiry ── your token route ◀──────────
 player kit ── API calls with the token ─────────────────────▶

웹사이트용 토큰은 하나의 오리진, 즉 페이지 자체의 스킴, 호스트, 포트에 묶입니다. 서버 키트 페이지에서 설명하듯이, 위젯이 실행되는 모든 오리진을 그 오리진용 토큰을 발급하기 전에 등록하세요. 게임용 토큰에는 오리진이 없습니다.

토큰이 할 수 있는 일

여러분의 서버는 토큰을 발급할 때 다음 다섯 가지 중에서 각 토큰의 스코프를 고릅니다: events:read, events:write, lesson_plans:read, lesson_plans:write, embed:play. 토큰은 여러분의 클라이언트가 이미 가진 스코프만 가질 수 있습니다. embed:play가 있으면 플레이어가 여러분의 캐릭터와 대화하고 마친 연습을 보고할 수 있습니다.

누가 비용을 내는가

토큰을 발급할 수 있는 것은 사용량 기반 결제 요금제의 클라이언트뿐입니다. 플레이어가 토큰으로 하는 모든 일은 여러분 클라이언트의 사용량으로 집계되어, 플레이어가 아닌 여러분에게 청구됩니다.

플레이어 삭제

플레이어가 여러분의 게임에서 계정을 삭제하면, 여러분의 서버도 Lingara에서 그 플레이어를 삭제합니다. 이렇게 하면 그 플레이어의 학습자와 Lingara가 그 플레이어에 대해 보관하는 모든 것이 삭제되고, 그 플레이어가 가진 모든 토큰이 취소됩니다.

필요한 키트

모든 통합에는 두 가지 키트가 쓰입니다. 여러분의 서버에 두는 서버 키트와, 플레이어가 플레이하는 곳에 두는 플레이어 키트입니다.

만드는 것여러분의 서버플레이어가 플레이하는 곳
Bevy 게임서버 키트Bevy
Unity 게임서버 키트Unity
Godot 게임서버 키트Godot
Unreal 게임서버 키트Unreal
JVM 또는 Android 게임서버 키트JVM 및 Android
웹사이트서버 키트웹사이트 위젯

이어서 모든 키트에서 똑같이 동작하는 NPC 대화와 연습 결과를 읽어 보세요.

시작하기

  • 서버 키트

    여러분의 서버에서 플레이어를 위한 토큰을 발급하고, 그들의 이벤트를 라우팅하고, 플레이어를 삭제합니다.

실행 환경

  • Bevy

    Bevy 게임에 Lingara 플러그인을 추가하고, 토큰 요청에 응답하고, 이벤트를 Message로 읽습니다.

  • Unity

    NuGetForUnity로 Lingara.Embed를 설치하고, 서버에서 토큰을 받고, Update에서 이벤트를 비웁니다.

  • Godot

    Godot 4 게임에서 GDScript 또는 C#으로, 여러분 자체의 서버에서 받은 토큰으로 Lingara를 사용합니다.

  • Unreal

    플레이어 코어의 C 인터페이스 위에 만든 Unreal Engine 5용 Lingara 플러그인.

  • JVM 및 Android

    데스크톱과 Android에서 쓰는 Kotlin 플레이어 키트와 그 Java 파사드, libGDX를 실제 사례로 다룹니다.

  • 웹사이트 위젯

    페이지에 lingara-embed 요소를 마운트하고, 여러분 자체의 서버에서 토큰을 제공합니다.

나만의 세계에서 배우기

  • NPC 대화

    플레이어의 목표 언어를 그 레벨에 맞춰 말하는, 여러분의 세계 속 캐릭터. 한 번에 한 턴씩 스트리밍됩니다.

  • 연습 결과

    게임 안에서 수업 계획을 연습하고, 결과를 보고하고, 서버에서 그 소식을 받습니다.